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

Crea tus rangos


  
 
 
Thread Tools Display Modes
Author Message
Manu127
Veteran Member
Join Date: Jul 2010
Location: Argentina
Old 06-15-2011 , 20:20   Crea tus rangos
#1

Bueno, como se vio el tema de los rangos...

voy a hacer mi primer aporte en el caso de ser un "tutorial" :$

Para crear rangos, hice 2 maneras...

Todo explicado en el code

Cualquier cosa, bugs, bla bla... digan y arreglo.

PHP Code:
/* Esto es un ejemplo

-- Por supuesto, esta pensado para los que ya tienen niveles creados

-- Reemplazar variable_de_nivel por su variable de nivel que hallan creado ustds

-- Con eso, y adaptarlo a lo que ustedes quieran, tendria que andar

/\ FORMA 1 /\
*/

// Includes

#include <amxmodx>
#include <amxmisc>

// Creditos y pelotudeces

#define PLUGIN "Tuto Rangos"
#define VERSION "1.0"
#define AUTHOR "Manu"

// Ni ganas de explicar :P Jaja

// Creamos la variable que contiene los nombres de los rangos...

new szRango[][] = {
    
"",
    
"Recluta",
    
"Cabo",
    
"Jefe",
    
"General",
    
"Comandante"
}

// La cantidad de niveles necesarios para avanzar de un rango a otro

new gRangoNecesario[] = {
    
0,
    
5,
    
7,
    
13,
    
17,
    
32
}

// Creamos otra variable mas la cual nos va a servir para definir el rango

new gRango[33]

// Iniciamos el plugin

public plugin_init()
{
    
// Registramos..
    
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
// Registramos el evento DeathMsg, para checkearle al atacante el rango
    
    
register_event("DeathMsg","event_death","a")
    
    
// Registramos /rango para despues mostrarselo
    
    
register_clcmd("say /rango","show_rango")
}

// Evento del deathmsg

public event_death()
{
    
// Creamos una nueva variable que contendra el id del atacante
    
    
new gAttacker read_data(1)
    
    
// Con este while, estamos haciendo esto:
    
    // Verificamos si la variable de nivel es mayor a los niveles necesarios para subir de rango
    
    // Si es asi, y si el rango es menor a 5, subimos. El si es menor a 5, es porque si hay un "sexto"
    
    // Este, se buguea, al no haber sexto
    
    
while(variable_de_nivel >= gRangoNecesario[gRango[gAttacker]] && gRango[gAttacker] < 5)
    {
        
// Si se cumple, aumentamos el rango
        
        
gRango[gAttacker]++
        
        
// Le imprimimos un msj de que subio de rango :$
        
        
client_print(gAttacker,print_center,"Has subido de RANGO")
    }
}

// Llamada por el /rango

public show_rango(index)
{
    
// Le printeamos el rango actual
    
    
client_print(index,print_chat,"[AMXX] Tu rango es: %s",szRango[gRango[index]])
    
    
// Es decir, szRango[el rango actual del user]
    
    // Pongamosle que mi rango es 4, me saltaria el string: General
    
    
return PLUGIN_HANDLED
}

// Tambien, el rango lo tienen que checkear antes de mostrarselo por primera vez, porque sino el gRango esta en 0
// Esto equivaldria a este resultado: [Tu rango es: ] es decir, nada :P 

FORMA 2


PHP Code:
/* Esto es un ejemplo

-- Por supuesto, esta pensado para los que ya tienen niveles creados

-- Reemplazar variable_de_nivel por su variable de nivel que hallan creado ustds

-- Con eso, y adaptarlo a lo que ustedes quieran, tendria que andar

-- En este, se usa directamente multiplos de la variable del level

/\ FORMA 2 /\
*/

// Includes... :O

#include <amxmodx>
#include <amxmisc>

// Los creditos, la version y el name pA'

#define PLUGIN "Tuto Rangos"
#define VERSION "1.0"
#define AUTHOR "Manu"

/* Aqui, creamos una variable para los nombres de los rangos
-- En la cual, insertamos los nombres jOjO */

new szRango[][] = {
    
"Recluta",
    
"Cabo",
    
"Jefe",
    
"General",
    
"Comandante"
}

// Inicia el plugin...

public plugin_init()
{
    
// Lo registramos
    
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
// Registramos el comando /rango para que cuando lo escriba, se lo mostremos posteriormente
    
    
register_clcmd("say /rango","show_rango")
}

// Funcion llamada por el /rango

public show_rango(index)
{
    
// Le enviamos un print diciendole su rango
    
    
client_print(index,print_chat,"[AMXX] Tu rango es: %s",szRango[variable_de_nivel/12])
    
    
/* 
    Aca, se usa esta logica:
    
    Si vos tenes el nivel en 1, esto vendria a ser 1 dividido 12 que daria 0,08
    
    Pero si vos tenes nivel 15, seria 15 dividido 15, lo cual es 1..
    
    Y como observamos, quedaria el rango 1...
    */
    
    
return PLUGIN_HANDLED
}

// Como se abran dado cuenta, si yo tengo nivel 72, Esto se buguearia ya que 72 / 12 6
// Y no existe el rango 6, para ello, yo ponia los rangos dificiles... pero de todos modos
// Con un poquito mas de logica, puedes hacerlo sin bugs...

/*
    client_print(index,print_chat,"[AMXX] Tu rango es: %s",variable_de_nivel > 60 ? szRangos[4]:szRangos[variable_de_nivel/12])
    
    Aca lo que hariamos es, si el nivel es mayor a 60, ya no tenemos porque dividir el level para sacar el rango
    
    Ya que a los 72 se buguearia, entonces se lo dejamos en el 4... el cual seria "Comandante"
*/ 
EDIT:

Me olvide de aclarar en el primer caso, que si se agregarian mas rangos, se tendrian que agregar mas:

Nombre del rango

Nivel requerido para el rango

Y, donde esta el while, aumentar la forma de que no se buguee. Es decir, enves de un 5, un 6, y asi...

Lo que no se, es si sirve con un sizeof (szRangos), pero we.

Tambien, pueden checkear si el nivel alcanzo el maximo de rangos, se los djeo a su eleccion

Lo mismo para el caso 2, si agregan mas, ponen mas. Si no entendieron es porque no saben matematicas D:

Yo la desaprobe con un 6 fuck u_U
__________________

Last edited by Manu127; 09-14-2012 at 20:17.
Manu127 is offline
Send a message via MSN to Manu127 Send a message via Skype™ to Manu127
paoliita
Senior Member
Join Date: May 2011
Old 06-15-2011 , 20:34   Re: Crea tus rangos
#2

este esta mas lindo qe la otra guasada JAAJAJ :B gj
paoliita is offline
Send a message via MSN to paoliita
makiza
BANNED
Join Date: Mar 2009
Old 06-15-2011 , 21:47   Re: Crea tus rangos
#3

Me gustaria saber como puedo subir, o bajar niveles por hits, o por frags, o por headshots o por cosas asi.
makiza is offline
Manu127
Veteran Member
Join Date: Jul 2010
Location: Argentina
Old 06-15-2011 , 22:22   Re: Crea tus rangos
#4

PHP Code:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"

new gHits[33],gKills[33],gHeads[33]

public 
plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
register_event("DeathMsg","event_death","a")
    
    
RegiserHam(Ham_TakeDamage,"player","fwTakeDamage",1)
}

public 
fwTakeDamage(victim,inflictor,attacker,Float:damage,damage_bits)
{
    if(
is_user_connected(attacker))
        
gHits[attacker]++
}

public 
event_death()
{
    new 
gAttacker read_data(1)
    
    new 
gHead read_data(3)
    
    if(
is_user_connected(gAttacker))
    {
        if(
gHead)
            
gHeads[gAttacker]++
        else
            
gKills[gAttacker]++
    }

Creo que es solo un ejemplo
__________________
Manu127 is offline
Send a message via MSN to Manu127 Send a message via Skype™ to Manu127
makiza
BANNED
Join Date: Mar 2009
Old 06-15-2011 , 22:43   Re: Crea tus rangos
#5

Supongamos que fusiono tu ejemplo con el metodo #1 del post usando headshots solamente.

si hago 5 headshots subo al nivel 2 y si hago 7 subo al nivel 3 y asi sucesivamente?
makiza is offline
Manu127
Veteran Member
Join Date: Jul 2010
Location: Argentina
Old 06-15-2011 , 23:08   Re: Crea tus rangos
#6

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

new gLevel[33],gHeads[33]

//#define ConVariable

#if defined ConVariable
new gLevelNecesario[][] = {
    
0,
    
3,
    
5,
    
8,
    
13,
    
24,
    
27,
    
32,
    
45,
    
57,
    
72,
    
9999
}
#endif

public plugin_init()
{
    
register_plugin("Levels por Head","1.0","Manu")
    
    
register_event("DeathMsg","event_death","a")
}

public 
event_death()
{
    new 
gAttacker read_data(1)
    
    if(
is_user_connected(gAttacker))
    {
        if(
read_data(3))
        {
            
gHeads[gAttacker]++
            
            
check_level(gAttacker)
        }
    }
}

public 
check_level(index)
{
    
#if defined ConVariable
    
while(gHeads[index] >= gLevelNecesario[gLevel[index]])
    {
        
client_cmd(index,"spk ^"level up^"")
        
        
client_print(index,print_center,"Subiste de NIVEL!")
        
        
gLevel[index]++
        
        
gHeads[index] = 0
    
}
    
#else
    
while(gHeads[index] >= ((gLevel[index] * 7) / 2) + (gLevel[index] * 3))
    {
        
client_cmd(index,"spk ^"level up^"")
        
        
client_print(index,print_center,"Subiste de NIVEL!")
        
        
gLevel[index]++
        
        
gHeads[index] = 0
    
}
    
#endif

No se si me salio bien los #if jaja Demasiado poco los he usado jaja

los ifs son para 2 formas, es decir, la forma actual es para que sean infinitos con una serie de calculos que puedes modificar... la otra es para elejir bien los heads que necesitas para subir, pero teniendo un limite
__________________

Last edited by Manu127; 06-16-2011 at 13:20.
Manu127 is offline
Send a message via MSN to Manu127 Send a message via Skype™ to Manu127
makiza
BANNED
Join Date: Mar 2009
Old 06-15-2011 , 23:26   Re: Crea tus rangos
#7

Quote:
Originally Posted by Manu127 View Post
hago este post para avisarte que mañana a la mañana te respondo editando, asi no te quedas con el "porque no respondio este mogolico"
jajaj oks
makiza is offline
ElYago
Junior Member
Join Date: Jul 2011
Old 07-13-2011 , 13:34   Re: Crea tus rangos
#8

Yo lo que tenia pensado era crear por ejemplo 7 rangos: comandante, soldado, recluta, coronel, mayor, etc..
Se empezaria a jugar por ejemplo en recluta y aqui la cosa seria que no habria niveles sino que subes de rango por XP, por ejemplo empiezas en recluta y el siguiente rango es soldado. Pues empiezas con 0 de experiencia y para llegar a soldado necesitas 1.000. Una vez llegues a 1.000 eres soldado y para el siguiente rango por ejemplo necesitarias llegar a 3.000 y asi consecutivamente.
Cada rango tendria unas armas, por ejemplo el recluta empieza con una smg, el soldado ya llevaria una m4 y los siguientes mejores cosas. Y la XP se ganaria matando zombies por ejemplo por cada zombie ganarias 50 de exp. Que te parece? xD
ElYago is offline
XINLEI
me too
Join Date: Jun 2011
Location: Colombian Coffee storage
Old 07-13-2011 , 16:27   Re: Crea tus rangos
#9

bien.
XINLEI is offline
Manu127
Veteran Member
Join Date: Jul 2010
Location: Argentina
Old 07-13-2011 , 19:21   Re: Crea tus rangos
#10

me parece bien, hazlo tu
__________________
Manu127 is offline
Send a message via MSN to Manu127 Send a message via Skype™ to Manu127
 



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 10:00.


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