Raised This Month: $12 Target: $400
 3% 

[TUT] Modificar una linea de un archivo


  
 
 
Thread Tools Display Modes
Author Message
rak
Veteran Member
Join Date: Oct 2011
Location: banned country
Old 12-16-2012 , 17:55   [TUT] Modificar una linea de un archivo
#1

Buenas e.e.. aca vengo con un tutorial simple de como modificar una linea de un archivo; solo voy a explicar lo que tiene relacion con este tema; el resto no lo explicare

PHP Code:
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Tutorial"
#define VERSION "1.0"
#define AUTHOR "[R]ak"


public plugin_init() {
    
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
register_concmd("amx_add_immunity""cmdAddImmunity"ADMIN_RCON"<target>")
        
}

public 
cmdAddImmunity(id,level,cid) {
    
    if(!
cmd_access(idlevelcid2))  
        return
        
    new 
Name[32], player
    
    read_argv
(1Namecharsmax(Name))
    
    
player cmd_target(idNameCMDTARGET_NO_BOTS)
    
    if(!
player)
        return
        
    
/* ahora empezamos el tutorial
    
    .- vamos a ver un ejemplo para agregarle a un admin el flag immunity
    
    */
    
    
if(get_user_flags(id) & ADMIN_IMMUNITY) {
        
        
console_print(id"[AMXX] El player seleccionado ya posee inmunidad")
        
        return
        
    }
    
    new 
Authid[35]
    
    
get_user_authid(idAuthidcharsmax(Authid))
        
    new 
ConfigDir[64// creamos una variable para almacenar la ubicacion del archivo users.ini
    
    
get_configsdir(ConfigDircharsmax(ConfigDir)) // obtenemos la carpeta configs ( normalmente es addons/amxmodx/configs )
    
    
add(ConfigDircharsmax(ConfigDir), "/users.ini"// despues de obtener la carpeta le agregamos el nombre del archivo que queremos obtener los datos ( normalmente users.ini )
    
    
new FileLineData[128], Data1[35], Data2[35], Data3[30], Data4[5]
    
    
// File va a almacenar el handler para obtener los datos del archivo
    // Line va contener las lineas transcurridas hasta llegar a la que queremos modificar
    // Data va a almacenar toda la linea
    // Data1 va a almacenar el steamid
    // Data2 va a almacenar la contraseña( en este caso normalmente no tiene )
    // Data3 va a almacenar los flags de accesos del usuario
    // Data4 va a almacenar los flags de su cuenta
    
    
File fopen(ConfigDir "rt"// abrimos el archivo con los parametros "rt" los cuales significa que vamos a leer/texto
    
    
while(!feof(File)) { // mientras que no este en el final del archivo
        
        
fgets(FileDatacharsmax(Data)) // obtenemos la linea
        
        
trim(Data// removemos los espacios principio/fin
        
        
Line++ // sumamos 1 linea
        
        
if (Data[0] == ';' || !Data[0]) // chequeamos que si no esta habilitado el admin lo ignore o que si la linea esta vacia la ignore
            
continue;
        
        
parse(DataData1charsmax(Data1), Data2charsmax(Data2), Data3charsmax(Data3), Data4charsmax(Data4)) // separamos los datos
        
        
if(equal(Data1Authid)) { // chequeamos que el steamid sea igual al del usuario que queremos agregarle el flag
            
            
format(Data3charsmax(Data3), "a%s"Data3// le agregamos el flag immunity
            
            
replace(Datacharsmax(Data), Data3[1], Data3// reemplazamos los flags viejos por los nuevos
            
            
write_file(ConfigDirDataLine 1// escribimos el archivo para guardar los nuevos flags
            
            
console_print(id"[AMXX] Se le agrego satisfactoriamente la inmunidad")
            
            
server_cmd("amx_reloadadmins"// recargamos los admins para actualizar los flags
            
            
break; // terminamos el bucle para que no siga chequeando
            
        
}
    }
    
    
fclose(File// cerramos el archivo y liberamos el handler
    

Enjoy

PD: no lo probe pero si no me equivoco funciona; cualquier cosa me avisan

SaluDDoS
__________________

www.amxmodx-es.com

Steam: Luchokoldo

Last edited by rak; 01-05-2013 at 20:34.
rak is offline
Send a message via MSN to rak Send a message via Skype™ to rak
el999gonzalo
BANNED
Join Date: Aug 2012
Old 12-16-2012 , 18:56   Re: [TUT] Modificar una linea de un archivo
#2

probando por ti -.- . . . xd

seria util en los hats :B , con ello probare
el999gonzalo is offline
Roccoxx
AlliedModders Donor
Join Date: Jan 2012
Location: Argentina
Old 12-16-2012 , 19:16   Re: [TUT] Modificar una linea de un archivo
#3

buen tuto.

esto en ue parte de la recopilacion lo pongo?
__________________
Tutorials here (Spanish)

Like as another Pijudo said: "Tired and retired"
Roccoxx is offline
Send a message via MSN to Roccoxx
el999gonzalo
BANNED
Join Date: Aug 2012
Old 12-16-2012 , 19:34   Re: [TUT] Modificar una linea de un archivo
#4

Quote:
Originally Posted by Roccoxx View Post
buen tuto.

esto en ue parte de la recopilacion lo pongo?
Rac Acme Inc.

xDDD

PD: Funciono perfecto :B

Last edited by el999gonzalo; 12-16-2012 at 19:35.
el999gonzalo is offline
RauliTop97
BANNED
Join Date: Dec 2012
Location: Spain
Old 12-21-2012 , 16:00   Re: [TUT] Modificar una linea de un archivo
#5

Tambien funciona con .cfg?
RauliTop97 is offline
r0ma
Senior Member
Join Date: Apr 2012
Location: Great Tomb of Nazarick
Old 12-21-2012 , 16:02   Re: [TUT] Modificar una linea de un archivo
#6

Si
__________________
Discord:FluffyDeveloper#4753
Github: https://github.com/francoromaniello
AMX-ES: https://amxmodx-es.com/r0ma'
r0ma is offline
Send a message via MSN to r0ma
YakumoHiratsuhi
Veteran Member
Join Date: Dec 2010
Location: Dreαmlαnd.
Old 12-21-2012 , 21:10   Re: [TUT] Modificar una linea de un archivo
#7

creo que los datanumero no son necesarios, con una sola cadena parsea hasta la separación donde son los flags y luego has la magia, porque no estas usando los demas datos.

PHP Code:
new flags[24]
parse(Dataflagscharsmax(flags), flagscharsmax(flags), flagscharsmax(flags)) 
__________________
"Podra parecer ridiculo o imposible, pero este es el camino que seguimos los verdaderos hombres, si hay un muro en el camino, lo derribamos, si no hay camino, haremos uno, con nuestras propias manos, porque el magma de nuestro corazón arde en llamas."
YakumoHiratsuhi is offline
Send a message via MSN to YakumoHiratsuhi
rak
Veteran Member
Join Date: Oct 2011
Location: banned country
Old 12-21-2012 , 21:54   Re: [TUT] Modificar una linea de un archivo
#8

Quote:
Originally Posted by YakumoHiratsuhi View Post
creo que los datanumero no son necesarios, con una sola cadena parsea hasta la separación donde son los flags y luego has la magia, porque no estas usando los demas datos.

PHP Code:
new flags[24]
parse(Dataflagscharsmax(flags), flagscharsmax(flags), flagscharsmax(flags)) 
lo puse de esa forma para que sepan donde se aloja todas las partes y que sea mucho mas entendible; tranquilamente lo podria averlo hecho mejor acomodando los datos de la cadena "Data" a mi gusto; ahora no estoy en mi pc.. en un ratito edito

edit:
podria averlo hecho asi pero para no complicarlos

PHP Code:
#include <amxmodx>

#define PLUGIN "Test"
#define VERSION "1.0"
#define AUTHOR "[R]ak"


public plugin_init() {
    
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
set_task(3.0"test")
    
}

public 
test() {
    
    
    new 
Data[128] = "^"STEAM_0:1:38746233^" ^"^" ^"bcdefghijklmnopqrstu^" ^"ce^""
    
    
new Authid[35], Flags[30]
    
    
rak_get_data(DataAuthid1)
    
    
rak_get_data(DataFlags5)
    
    
server_print(Data)
    
    if(
equal(Authid"STEAM_0:1:38746233")) {
        
        
format(Flagscharsmax(Flags), "a%s"Flags)
        
        
replace(Datacharsmax(Data), Flags[1], Flags)
    
        
server_print(Data)
        
    }
}

stock rak_get_data(source[], destination[], quote_num) {
    
    new 
inum
    
    
while(source[i]) {
        
        if(
source[i] == '"')
            
num++
        else if(
num == quote_num) {
                
            
num 0
            
            
while(source[i] != '"')                
                
destination[num++] = source[i++]
                
            break;
            
        }
        
        
i++
        
    }    

__________________

www.amxmodx-es.com

Steam: Luchokoldo

Last edited by rak; 12-22-2012 at 01:07.
rak is offline
Send a message via MSN to rak Send a message via Skype™ to rak
Old 12-28-2012, 06:17
wilburbandy
This message has been deleted by lucas_7_94. Reason: Spambot
Old 02-25-2013, 06:36
Arshyvernal
This message has been deleted by lucas_7_94. Reason: Spambot
Old 02-25-2013, 08:41
Roccoxx
This message has been deleted by lucas_7_94. Reason: Spambot
Old 03-05-2013, 03:15
antanyeras
This message has been deleted by lucas_7_94. Reason: Spambot
Bernii
BANNED
Join Date: Feb 2013
Location: Weed Land *-*
Old 03-05-2013 , 06:46   Re: [TUT] Modificar una linea de un archivo
#9

buen tuto

+10
Bernii is offline
Old 03-08-2013, 02:08
Emsamrynaw
This message has been deleted by lucas_7_94. Reason: Spambot
Old 03-14-2013, 03:22
Healdad
This message has been deleted by lucas_7_94. Reason: Spambot
Old 03-16-2013, 06:05
Saemild
This message has been deleted by lucas_7_94.
Old 03-16-2013, 07:37
rak
This message has been deleted by lucas_7_94.
Old 03-16-2013, 08:26
Adchairtur
This message has been deleted by lucas_7_94.
Old 03-16-2013, 09:04
rak
This message has been deleted by lucas_7_94.
Old 03-22-2013, 00:37
Cererald
This message has been deleted by lucas_7_94. Reason: Spambot
Old 03-26-2013, 04:29
Phothvor
This message has been deleted by lucas_7_94. Reason: spambot
Old 04-02-2013, 01:53
Scheonum
This message has been deleted by lucas_7_94.
Old 04-02-2013, 07:28
rak
This message has been deleted by lucas_7_94.
Old 04-02-2013, 12:25
Roccoxx
This message has been deleted by lucas_7_94.
Old 04-06-2013, 04:49
Denimcha
This message has been deleted by lucas_7_94. Reason: s p a m b o t
MexPower
Veteran Member
Join Date: Nov 2012
Old 04-20-2013 , 12:38   Re: [TUT] Modificar una linea de un archivo
#10

Yo tengo una duda se podria hacer esto?
set_user_flags(id, get_user_flags(id) & ADMIN_RCON)

Se haria asi? o como?
En caso de que se pudiera se guardaria la flag que se le agrego?
__________________
Allied Modders En Español
MexPower is offline
 


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 06:35.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode