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

[ES][TUT] Proteccion para nicks


  
 
 
Thread Tools Display Modes
Author Message
Starsailor
horrible hahah
Join Date: Aug 2008
Location: Buenos Aires
Old 07-17-2009 , 15:19   [ES][TUT] Proteccion para nicks
#1

El siguiente plugin muestra como mediante un archivo .ini se pueden proteger y/o registrar nicks y pw para que nadie mas los use

Aclaro que no es como el tutorial/plugin que armo L//, este plugin usa un archivo .ini, donde "el dueño del server" pone los nicks y las pw para proteger los nicks, no permite que se registren dentro del juego o sea, solo se puede modificando el archivo y tampoco se puede cambiar de nicks, para evitar problemas.

Por ahi el plugin no lo use nadie que es lo que creo, pero me tome el trabajo de hacerlo como un tutorial explicando funciones y demas.. asi como tambien pueden saber como sacar los datos de un archivo cfg o ini

Si hay algo mal o me falto poner algo en la explicacion, avisen asi lo corrijo.

En la cfg, si alguien usa el plugin, la pw se setea mediante

PHP Code:
setinfo _asd "password" 
el prefijo del setinfo puede ser cambiado

Aca les dejo el codigo

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

#define VERSION "1.0"
#define AUTHOR "Maartin!" 
#define TITLE "Nickname Protection"


#define MAX_NAMES 100
//Definimos la cantidad maxima de nombres que queremos que haya en el archivo ini

new szPath[128]
new 
szFilename[136]
new 
szPassStore[MAX_NAMES][32]
new 
szNameStore[MAX_NAMES][32]

new 
iNumWords

new const szPasswordTag[] = "_asd" //Prefijo del setinfo

public plugin_init() {
    
    
//registramos el plugin
    
register_plugin(TITLE,VERSION,AUTHOR)
    
    
// registramos un comando para ver todos los nombres y pw que haya en el archivo
    
register_concmd("amx_nicks_list","CmdTaglist",ADMIN_LEVEL_A
    
    
//registremos un mensaje para prevenir un bug cuando se cambia de nombre, mas adelante lo explico
    
register_message(get_user_msgid("SayText"), "MessageNameChange")
    
}

public 
plugin_cfg(){
    
get_configsdir(szPath128//Obtenemos la ubicacion de los archivos de configuracion
    
format(szFilename128"%s/registro_de_nicks.ini",szPath)//Le damos formato al archivo
    
    
if (file_exists(szFilename)){ // Si el archivo existe..
        
        
log_amx("Archivo %s ejecutado correctamente",szFilename)// logueamos que el archivo fue ejecutado
        
        //creamos variables para obtener la data del archivo
        
new szData[64], iLeniPos 
        
        
//mientras la cantidad de entradas sea menor o igual a la cantidad maxima que definimos antes
        // leemos la data del archivo mediante read_file
        
while (iNumWords <= MAX_NAMES && read_file(szFilenameiPos++, szData,63,iLen)){
             
//analicemos un poco el read_file
             //el primer parametro es el archivo del cual queremos obtener la data
             //el segundo parametro es la cantidad de lineas escritas que tiene el archivo
             //el tercer parametro recien es la data que contiene cada renglon
             // el cuarto la longitud de cada renglon (cantidad de letras de cada renglon)
             //y el quinto la longitud de todo el archivo, o sea cuantas letras se usaron en total
            
            
if (iLen == || equal(szData";"1)) //esto es para que cuando haya un ; esa linea no sea tenida en cuenta
                
continue 
            
            
//lo que hace el parse es separar en 2 variables o mas el texto inicial y la cantidad de letras que se quiere
            // en este caso tenemos el texto inicial (szData), donde queremos que se guarde (szNameStore) y la cantidad de
            // letras por asi decirlo que se guarda en cada variable, despues se repite lo mismo para la password
            
parse(szData,szNameStore[iNumWords],sizeof szNameStoreszPassStore[iNumWords],sizeof szPassStore)
            ++
iNumWords
            
//aumentamos la cantidad de entradas en el archivo
        
}
    }
    
    else { 
// Si no se creo el archivo, lo creamos
        
log_amx("Archivo %s No encontrado -- Creando...",szFilename//logueamos que no se pudo crear
        
        // A partir de aca se crea el archivo
        
write_file(szFilename,";Archivo creado correctamente..")
        
write_file(szFilename,";")
        
write_file(szFilename,";")
        
write_file(szFilename,";Ejemplo")
        
write_file(szFilename,"; ^"Starsailor^" ^"mi_password^"")
        
write_file(szFilename,";Añadi tus nicknames aca abajo..")
        
// Hasta aca
    
}
}

// esto es la funcion publica de nuestro comando amx_nicks_list
public CmdTaglist(id,level,cid){
    
    if (!
cmd_access(id,level,cid,1)) //si no tiene acceso al comando, bloqueamos
        
return PLUGIN_HANDLED
    
    console_print
(id,"^nEntradas en el archivo^nNick - Password"// Mostramos en la consola  
    
    
    
for(new 0iNumWords; ++i)// creamos un loop entre la cantidad de entradas en el archivo
        
console_print(id,"%s - %s"szNameStore[i], szPassStore[i])// mostramos los nombres y las passwords almacenadas en el archivo
    
    
console_print(id,"Total %d"iNumWords)//mostramos la cantidad total de entradas
    
    
return PLUGIN_HANDLED //bloqueamos
}

// Esto es para que no se cambie de nombre
public client_infochanged(id){
    
    if(
is_user_connected(id)){
        
        new 
szNewname[32], szOldname[32]
        
        
get_user_info(id"name"szNewname,31)// Nombre que tiene en la cfg
        
get_user_name(id,szOldname,31//Nombre que tiene cuando entra al sv
        
        
if (!equal(szOldname,szNewname)){ //Si son distintos... 
            
            
client_print(id,print_chat,"** No podes cambiate el nombre")//Mostramos el mensaje
            
set_user_info(id,"name"szOldname)// Le ponemos el nombre anterior a que lo cambie
        
}
    }
}



public 
client_connect(id){ //Lo pongo en client_connect para que checkee en el momento de entrar al sv
    // algunas variables
    
new szName[32], iOutput
    
new szPassword[32],szTemp[32]
    
    
get_user_info(id,szPasswordTag,szPassword,31//sacamos la pw que tiene en la cfg
    
get_user_name(id,szName,31// el nombre que tiene al conectar
    
    
for(new 0iNumWords; ++i){ //loop entre las entradas del archivo
        
        
if (equali(szName,szNameStore[i])){ // si el nombre que tiene esta en el archivo...
            
            
if(equali(szPassword,szPassStore[i])){ // si la pw que tiene esta en el archivo...
                
format(szTemp,31,"%s",szPassStore[i]) // le damos formato a una variable que va a ser usada mas adelante
                
iOutput //Esto es para despues mediante un switch mostrar los distintos mensajes , lo hago asi por una cuestion de prolijidad
            
}
            else { 
// si tiene el nombre pero la pw es incorrecta, le damos otro valor al output
                
iOutput 1
            
}
        }        
        
    }
    
    switch(
iOutput){ //creamos un switch del ooutput
        
        //si el output es 1..
        
case 1:{
            
server_cmd("kick #%d ^"** Tu nick esta registrado para otra persona o tenes mal la pw^""get_user_userid(id)) 
        }
        
//si el output es 2
        
case 2:{ 
            
client_cmd(id,"echo ** Tu Nick & Password han sido autorizados! (Name: %s | Pw: %s)"szName,szTemp)
        }
        
//por defecto
        
default: client_cmd(id,"echo ** Tu Nick no esta registrado, Bienvenido al server!")
    }
    
}

// esto es para bloquear el mensaje  que dice por ejemplo Asd changed name to Asd2
// esto no lo hice yo sino que lo saque de otro lado
public MessageNameChange(msg_idmsg_destreceiver)
{
    new 
szInfo[64
    
    
get_msg_arg_string(2szInfo63
    
    if(!
equali(szInfo"#Cstrike_Name_Change")) return PLUGIN_CONTINUE
    
    
return PLUGIN_HANDLED

Attached Files
File Type: sma Get Plugin or Get Source (proteccion_nicks.sma - 1184 views - 6.7 KB)
__________________
Find my plugins here..

Ex - Spanish Moderator.

Last edited by Starsailor; 03-17-2010 at 16:52.
Starsailor is offline
meTaLiCroSS
Gaze Upon My Hat
Join Date: Feb 2009
Location: Viña del Mar, Chile
Old 07-17-2009 , 15:25   Re: [ES][TUT] Proteccion para nicks
#2

Buen Tuto I like it

PD: Ya ahora a todos les da la gana de postear Tutos :E
__________________
Quote:
Originally Posted by joropito View Post
You're right Metalicross
meTaLiCroSS is offline
RaPtORaSo
Member
Join Date: Jul 2009
Old 07-17-2009 , 16:40   Re: [ES][TUT] Proteccion para nicks
#3

Quote:
Originally Posted by meTaLiCroSS View Post
I like it
esta parte del foro no es para ingles es para espaniol

a startsailor muy bueno el plugin.
RaPtORaSo is offline
meTaLiCroSS
Gaze Upon My Hat
Join Date: Feb 2009
Location: Viña del Mar, Chile
Old 07-17-2009 , 16:42   Re: [ES][TUT] Proteccion para nicks
#4

Quote:
Originally Posted by RaPtORaSo View Post
esta parte del foro no es para ingles es para espaniol

a startsailor muy bueno el plugin.
Ah no por dios vos no fuiste al colegio

Esta seccion es "Multilingual" lo que significa "Multilenguaje" y no es solo Español tonto

Disculpen el Offtopic, pero hay gente que es caradura aqui ^^

PD: Si se que solo posteaste para hacerte el groso diciendome a MI lo que tengo que hacer, el comentario a Martin estaba de mas porque para mi que nisiquiera viste el code.
__________________
Quote:
Originally Posted by joropito View Post
You're right Metalicross
meTaLiCroSS is offline
xBreak^
BANNED
Join Date: Jul 2009
Old 07-17-2009 , 16:42   Re: [ES][TUT] Proteccion para nicks
#5

Quote:
Originally Posted by RaPtORaSo View Post
esta parte del foro no es para ingles es para espaniol

a startsailor muy bueno el plugin.
Dios mio que estupido eres el ser mas gil que he visto en mi vida
xBreak^ is offline
vazmar
Veteran Member
Join Date: Apr 2009
Old 07-17-2009 , 16:44   Re: [ES][TUT] Proteccion para nicks
#6

Quote:
Originally Posted by RaPtORaSo View Post
esta parte del foro no es para ingles es para espaniol

a startsailor muy bueno el plugin.
y si vos sos gaston, q ibas a otra seccion del foro , para pedir ayuda del hud de Uqz, prque sabias q aca nadie te iba a ayudar u.U
vazmar is offline
meTaLiCroSS
Gaze Upon My Hat
Join Date: Feb 2009
Location: Viña del Mar, Chile
Old 07-17-2009 , 16:45   Re: [ES][TUT] Proteccion para nicks
#7

No dale enserio, dejemos el Off, Martin posteo aqui para que opinemos del Plug, no para desvirtuar.


--------------------------------------------------------------
__________________
Quote:
Originally Posted by joropito View Post
You're right Metalicross
meTaLiCroSS is offline
RaPtORaSo
Member
Join Date: Jul 2009
Old 07-17-2009 , 16:46   Re: [ES][TUT] Proteccion para nicks
#8

vazmar otra vez metiendo eso en el medio si savian esta ingles,frances others que seria esto no dice tmb ingles
RaPtORaSo is offline
Starsailor
horrible hahah
Join Date: Aug 2008
Location: Buenos Aires
Old 07-17-2009 , 16:48   Re: [ES][TUT] Proteccion para nicks
#9

a veeer.... si tenes algo que arreglar con alguien hacelo via pm, msn o cualquier cosa menos posteando en MI thread, que con muy buena predisposicion arme este tuto para ustedes
__________________
Find my plugins here..

Ex - Spanish Moderator.
Starsailor is offline
RaPtORaSo
Member
Join Date: Jul 2009
Old 07-17-2009 , 16:51   Re: [ES][TUT] Proteccion para nicks
#10

yo no tengo nada que arreglar Starsailor ;) y solamente puse que no se podia en ingles y dsp saltaron todos al pedo y es verdad no se puede postear en ingles
RaPtORaSo is offline
 



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 13:38.


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