Raised This Month: $ Target: $400
 0% 

[TUT] Modificar una linea de un archivo


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
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
 



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:20.


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