Guia definitiva de Sistemas de Niveles (Zombie Plague y Normal) [ 10/11/18 ]
#1
Estrella 
Guia definitiva de Sistemas de Niveles (Zombie Plague y Normal)


A tomar en cuenta:
  • La lista se estara actualizando constantemente para agregar diferentes sistemas de subida de nivel, se hara la version para ZP, y la version normal.
  • Los titulos de sistemas tendran diferentes colores para diferenciar dificultad de subida de nivel: VERDE = Facil | Naranja: Medio | Rojo = Dificil
  • Los adjuntos estaran al final de la lista.
  • Estos codigos fueron creados en la version AMX 1.9.0, deberia funcionar en AMX 1.8.3. No se dara soporte a versiones anteriores.
  • Tema original: AQUI



1.- Sistema de niveles + resets por daño acumulado:

Zombie Plague:

Paso 1 - Declarar variables:

- 1.1 Declarar:
Código PHP:
#define MAX_LEVEL 30 // Maximo nivel
#define DEFAULT_DAMAGE 1200 // Daño requerido por default

// Si no quieres HappyHour Borra/Comenta la siguiente linea
#define HAPPYHOUR

#if defined HAPPYHOUR
 
new bool:g_bHappyTimeg_iHappyMulti;

 
enum _:__HappyData HH_HOUR[3], HH_DAMAGEHH_MULTI };
 new const 
_HappyHour[][__HappyData] =
 {
 
// HORA  // DAÑO REQUERIDO  // MULTIPLICADOR
 
"00"700},
 { 
"04"400},
 { 
"15"100}
 }
#endif

/* 
 Ejemplos de exp requerida:

 Nivel 0: 9
 Nivel 1: 12
 Nivel 2: 15

 Formula:

 (N + 3) x 3

 Donde N es el nivel actual

*/
#define RequiredExp(%1) (%1 + 3 * 3)


new g_iDamage[33], g_iExp[33], g_iLevel[33], g_iReset[33];
new 
cvar_expg_iDefaultDamage

- 1.2 Funcion extra en Plugin init:

Buscamos la funcion:
Código PHP:
public plugin_init() 

y dentro agregamos las siguientes lineas:
Código PHP:
register_clcmd("say /reset""FuncReset");
cvar_exp register_cvar("exp_damage""1"); // Exp al alcanzar el daño requerido
g_iDefaultDamage DEFAULT_DAMAGE

-1.3 Funcion extra en round_start:

Buscamos la funcion:
Código PHP:
public round_start() 

y dentro agregamos las siguientes lineas:
Código PHP:
#if defined HAPPYHOUR
 
RefreshHH();
#endif 



Paso 2 - Formatear variables:

- 2.1 Buscamos la siguiente funcion:
Código PHP:
reset_vars(idresetall

-2.2 Dentro de la funcion, buscamos la siguiente condicion:
Código PHP:
if (resetall)


-2.3 Reseteamos las variables dentro de esa condicion
Código PHP:
g_iDamage[id] = g_iExp[id] = g_iLevel[id] = g_iReset[id] = 0



Paso 3 - Funciones en TakeDamage:

- 3.1 Buscamos la funcion:
Código PHP:
public fw_TakeDamage(victiminflictorattackerFloat:damagedamage_type

- 3.2 Buscamos la condicion:
Código PHP:
if(!g_zombie[attacker])


- 3.3 IMPORTANTE (Si quieres que el daño solo sea para humanos, ingresa el codigo dentro de la condicion, si quieres que aplique tambien para zombies, ingresa el codigo antes de la condicion anterior)
Código PHP:
g_iDamage[attacker] += floatround(damage);
while(
g_iDamage[attacker] >= g_iDefaultDamage)
{
 
g_iDamage[attacker] -= g_iDefaultDamage;
 
SetExp(attackerget_pcvar_num(cvar_exp));




Paso 4 - Agregar demas funciones:

- 4.1: Pasamos al final del plugin y agregamos el siguiente codigo:
Código PHP:
SetExp(indexiExp)
{
 if(!
index || !is_user_connected(index) || g_iLevel[index] >= MAX_LEVEL) return; 

 static 
iLeveliLevel g_iLevel[index];

 
#if defined HAPPYHOUR 
 
g_iExp[index] += (iExp*g_iHappyMulti);
 
#else 
 
g_iExp[index] += iExp;
 
#endif

 
while(g_iExp[index] >= RequiredExp(g_iLevel[index]) && g_iLevel[index] < MAX_LEVEL) ++g_iLevel[index];

 if(
g_iLevel[index] > iLevelclient_print_color(indexprint_team_default"Felicidades! Subiste al nivel ^4%d ^1:D"g_iLevel[index]);
}

public 
FuncReset(index)
{
 if(
g_iLevel[index] < MAX_LEVEL)
 {
 
client_print_color(indexprint_team_default"Necesitas ser nivel ^4%d ^1para poder resetear!"MAX_LEVEL);
 return 
PLUGIN_HANDLED;
 }

 ++
g_iReset[index];
 
g_iExp[index] = g_iLevel[index] = 0;

 
client_print_color(indexprint_team_default"Felicidades! Reseteaste tu cuenta, ahora eres reset ^4%d"g_iReset[index]);
 return 
PLUGIN_HANDLED;
}

#if defined HAPPYHOUR
RefreshHH()
{
 
g_bHappyTime false;
 
g_iDefaultDamage DEFAULT_DAMAGE;
g_iHappyMulti 1;

 static 
icurrent_hour[3]; get_time("%H"current_hour2);
 for( 
sizeof _HappyHour ; ++)
 {
 if(
equal(_HappyHour[i][HH_HOUR], current_hour))
 {
 
g_bHappyTime true;
 
g_iHappyMulti _HappyHour[i][HH_MULTI];
 
g_iDefaultDamage _HappyHour[i][HH_DAMAGE];

 
client_print_color(0print_team_default"^4HORA FELIZ ACTIVA!!! ^3Daño requerido: ^1%d ^3Multiplicador: ^1%d"g_iDefaultDamageg_iHappyMulti);
 break;
 }
 }
}
#endif 



Paso 5 - Editar el HUD:

Buscamos la funcion:
Código PHP:
public ShowHUD(taskid

y la reemplazamos por la siguiente:
Código PHP:
public ShowHUD(taskid)
{
    static id
    id 
ID_SHOWHUD;
    
    
if (!g_isalive[id])
    {
        id pev(idPEV_SPEC_TARGET)
        if (!g_isalive[id]) return;
    }
    
    
static class[32], redgreenblue
    
    
if (g_zombie[id])
    {
        red 200
        green 
250
        blue 
0
        
        
if (g_nemesis[id])
            formatex(class, charsmax(class), "%L"ID_SHOWHUD"CLASS_NEMESIS")
        else
            copy(class, charsmax(class), g_zombie_classname[id])
    }
    else 
    {
        red 255
        green 
255
        blue 
0
        
        
if (g_survivor[id])
            formatex(class, charsmax(class), "%L"ID_SHOWHUD"CLASS_SURVIVOR")
        else
            copy(class, charsmax(class), g_human_classname[id])
    }
    
    
if (id != ID_SHOWHUD)
    {
        set_hudmessage(255255255HUD_SPECT_XHUD_SPECT_Y06.01.10.00.0, -1)
        ShowSyncHudMsg(ID_SHOWHUDg_MsgSync2"%L: %s^nHP: %d|%L: %s |%L: %d|Nivel: %d|Reset: %d"ID_SHOWHUD"SPECTATING"g_playername[id], pev(idpev_health), ID_SHOWHUD"CLASS_CLASS", class, ID_SHOWHUD"AMMO_PACKS1"g_ammopacks[id], g_iLevel[id], g_iReset[id])
    }
    else
    {
        set_hudmessage(redgreenblueHUD_STATS_XHUD_STATS_Y06.01.10.00.0, -1)

        #if defined HAPPYHOUR
        ShowSyncHudMsg(ID_SHOWHUDg_MsgSync2"%L: %d|%L: %s|%L %d|Nivel: %d/%d|Exp: %d/%d|Dmg: %d/%d|Reset: %d|HORA FELIZ: %s"id"ZOMBIE_ATTRIB1"pev(ID_SHOWHUDpev_health), ID_SHOWHUD"CLASS_CLASS", class, ID_SHOWHUD"AMMO_PACKS1"g_ammopacks[ID_SHOWHUD], g_iLevel[id], MAX_LEVELg_iExp[id], RequiredExp(g_iLevel[id]), g_iDamage[id], g_iDefaultDamageg_iReset[id], g_bHappyTime "Activada" "Desactivada")
        #else
        ShowSyncHudMsg(ID_SHOWHUDg_MsgSync2"%L: %d|%L: %s|%L %d|Nivel: %d/%d|Exp: %d/%d|Dmg: %d/%d|Reset: %d|"id"ZOMBIE_ATTRIB1"pev(ID_SHOWHUDpev_health), ID_SHOWHUD"CLASS_CLASS", class, ID_SHOWHUD"AMMO_PACKS1"g_ammopacks[ID_SHOWHUD], g_iLevel[id], MAX_LEVELg_iExp[id], RequiredExp(g_iLevel[id]), g_iDamage[id], g_iDefaultDamageg_iReset[id])
        #endif
    }



Normal:
Código PHP:
#include <amxmodx>
#include <hamsandwich>

#define MAX_LEVEL 30 // Maximo nivel
#define DEFAULT_DAMAGE 1200 // Daño requerido por default

#define TASK_HUD 134763
#define ID_HUD (task_id - TASK_HUD)

// Si no quieres HappyHour Borra/Comenta la siguiente linea
#define HAPPYHOUR

#if defined HAPPYHOUR
 
new bool:g_bHappyTimeg_iHappyMulti;

 
enum _:__HappyData HH_HOUR[3], HH_DAMAGEHH_MULTI };
 new const 
_HappyHour[][__HappyData] =
 {
 
// HORA  // DAÑO REQUERIDO  // MULTIPLICADOR
 
"00"700},
 { 
"04"400},
 { 
"15"100}
 }
#endif

/*
 Ejemplos de exp requerida:

 Nivel 0: 9
 Nivel 1: 12
 Nivel 2: 15

 Formula:

 (N + 3) x 3

 Donde N es el nivel actual

*/
#define RequiredExp(%1) (%1 + 3 * 3)


new g_iDamage[33], g_iExp[33], g_iLevel[33], g_iReset[33];
new 
g_iSynccvar_expg_iDefaultDamage;

#define VERSION "1.0"

public plugin_init()
{
 
register_plugin("Niveles + Resets por daño"VERSION"kikizon / LSSTUDIOS.XYZ");
 
 
RegisterHam(Ham_TakeDamage"player""PlayerDamagePost"true);

 
register_clcmd("say /reset""FuncReset");

 
cvar_exp register_cvar("exp_damage""1");

 
g_iSync CreateHudSyncObj();
 
g_iDefaultDamage DEFAULT_DAMAGE;

 
#if defined HAPPYHOUR 
 
register_event("HLTV""RoundStart""a""1=0""2=0");
 
#endif
}

public 
client_putinserver(index)
{
 
g_iDamage[index] = g_iExp[index] = g_iLevel[index] = g_iReset[index] = 0;

 
set_task(1.0"LevelHud"index+TASK_HUD, .flags="b");
}

public 
client_disconnected(indexremove_task(index+TASK_HUD);

public 
PlayerDamagePost(victiminflictorattackerFloat:damagedamage_type)
{
 if(!
attacker || !is_user_connected(attacker) || !is_user_connected(victim) || attacker == victim) return;

 
g_iDamage[attacker] += floatround(damage);
 while(
g_iDamage[attacker] >= g_iDefaultDamage)
 {
 
g_iDamage[attacker] -= g_iDefaultDamage;
 
SetExp(attackerget_pcvar_num(cvar_exp));
 }
}

SetExp(indexiExp)
{
 if(!
index || !is_user_connected(index) || g_iLevel[index] >= MAX_LEVEL) return; 

 static 
iLeveliLevel g_iLevel[index];

 
#if defined HAPPYHOUR 
 
g_iExp[index] += (iExp*g_iHappyMulti);
 
#else 
 
g_iExp[index] += iExp;
 
#endif

 
while(g_iExp[index] >= RequiredExp(g_iLevel[index]) && g_iLevel[index] < MAX_LEVEL) ++g_iLevel[index];

 if(
g_iLevel[index] > iLevelclient_print_color(indexprint_team_default"Felicidades! Subiste al nivel ^4%d ^1:D"g_iLevel[index]);
}

public 
FuncReset(index)
{
 if(
g_iLevel[index] < MAX_LEVEL)
 {
 
client_print_color(indexprint_team_default"Necesitas ser nivel ^4%d ^1para poder resetear!"MAX_LEVEL);
 return 
PLUGIN_HANDLED;
 }

 ++
g_iReset[index];
 
g_iExp[index] = g_iLevel[index] = 0;

 
client_print_color(indexprint_team_default"Felicidades! Reseteaste tu cuenta, ahora eres reset ^4%d"g_iReset[index]);
 return 
PLUGIN_HANDLED;
}

public 
LevelHud(task_id)
{
 if(!
is_user_alive(ID_HUD)) return;

 
set_hudmessage(2502502500.00.95);
 
 
#if defined HAPPYHOUR
 
ShowSyncHudMsg(ID_HUDg_iSync"Daño acumulado: %d de %d - Exp: %d de %d | Nivel: %d de %d - Reset %d - Hora Feliz: %s"g_iDamage[ID_HUD], g_iDefaultDamageg_iExp[ID_HUD], RequiredExp(g_iLevel[ID_HUD]), g_iLevel[ID_HUD], MAX_LEVELg_iReset[ID_HUD], g_bHappyTime "Activada" "Desactivada");
 
#else 
 
ShowSyncHudMsg(ID_HUDg_iSync"Daño acumulado: %d de %d - Exp: %d de %d | Nivel: %d de %d - Reset %d"g_iDamage[ID_HUD], g_iDefaultDamageg_iExp[ID_HUD], RequiredExp(g_iLevel[ID_HUD]), g_iLevel[ID_HUD], MAX_LEVELg_iReset[ID_HUD]);
 
#endif
}

#if defined HAPPYHOUR
public RoundStart(indexRefreshHH();

RefreshHH()
{
 
g_bHappyTime false;
 
g_iDefaultDamage DEFAULT_DAMAGE;
 
g_iHappyMulti 1;

 static 
icurrent_hour[3]; get_time("%H"current_hour2);
 for( 
sizeof _HappyHour ; ++)
 {
 if(
equal(_HappyHour[i][HH_HOUR], current_hour))
 {
 
g_bHappyTime true;
 
g_iHappyMulti _HappyHour[i][HH_MULTI];
 
g_iDefaultDamage _HappyHour[i][HH_DAMAGE];

 
client_print_color(0print_team_default"^4HORA FELIZ ACTIVA!!! ^3Daño requerido: ^1%d ^3Multiplicador: ^1%d"g_iDefaultDamageg_iHappyMulti);
 break;
 }
 }
}
#endif 


2.- Sistema de niveles por frags e infecciones (Niveles "infinitos" Sin reset)

Zombie Plague:

Paso 1 - Declarar variables:

- 1.1 Declaramos:
Código PHP:
/* 
    Ejemplos de exp requerida:

    Nivel 0: 9
    Nivel 1: 12
    Nivel 2: 15

    Formula:

    (N + 3) x 3

    Donde N es el nivel actual

    PD: Las formulas son distintas, para poder manejar distintos valores
    en caso de que los frags o infecciones se hagan mas dificiles.
*/

#define RequiredFrags(%1) (%1 * 3 * 3)
#define RequiredInfects(%1) (%1 * 2 * 2)

new g_iFrags[33], g_iInfects[33], g_iLevel[33];
new 
cvar_frags_by_killcvar_frags_by_infect

- 1.2 Codigo extra en plugin_init()
Código PHP:
cvar_frags_by_kill register_cvar("frags_by_kill""1");
cvar_frags_by_infect register_cvar("frags_by_infect""1"); 



Paso 2 - Formatear variables:

- 2.1 Buscamos la siguiente funcion:
Código PHP:
reset_vars(idresetall

-2.2 Dentro de la funcion, buscamos la siguiente condicion:
Código PHP:
if (resetall)


-2.3 Reseteamos las variables dentro de esa condicion:
Código PHP:
g_iFrags[id] = g_iInfects[id] = g_iLevel[id] = 0



Paso 3 - Funciones en Player Killed y Player Infected:

- 2.1 Buscamos la siguiente funcion:
Código PHP:
public fw_PlayerKilled(victimattackershouldgib

-2.2 Agregamos el siguiente codigo al final de la funcion:
Código PHP:
SetFrags(attackerget_pcvar_num(cvar_frags_by_kill), 0); 

-2.3 Buscamos la siguiente funcion:
Código PHP:
zombieme(idinfectornemesissilentmoderewards

-2.4 Dentro de la funcion buscamos la siguiente condicion:
Código PHP:
if (rewards && infector)


-2.5 Dentro de la condicion agregamos el siguiente codigo:
Código PHP:
SetFrags(infector0get_pcvar_num(cvar_frags_by_infect)); 



Paso 4 - Agregar demas funciones:

-4.1 Pasamos al final del plugin y agregamos el siguiente codigo:
Código PHP:
SetFrags(indexiFragsiInfects)
{
 if(!
index || !is_user_connected(index)) return;

 
g_iFrags[index] += iFrags;
 
g_iInfects[index] += iInfects;

 static 
iLeveliLevel g_iLevel[index];
 while(
g_iFrags[index] >= RequiredFrags(g_iLevel[index]) && g_iInfects[index] >= RequiredInfects(g_iLevel[index])) ++g_iLevel[index];

 if(
g_iLevel[index] > iLevelclient_print_color(indexprint_team_default"Felicidades! Subiste al nivel ^4%d"g_iLevel[index]);




Paso 5 - Editar HUD:

-5.1 Buscar la funcion:
Código PHP:
public ShowHUD(taskid

-5.2 Reemplazar la funcion, por esta:
Código PHP:
// Show HUD Task
public ShowHUD(taskid)
{
 static 
id
 id 
ID_SHOWHUD;
 
 
// Player died?
 
if (!g_isalive[id])
 {
 
// Get spectating target
 
id pev(idPEV_SPEC_TARGET)
 
 
// Target not alive
 
if (!g_isalive[id]) return;
 }
 
 
// Format classname
 
static class[32], redgreenblue
 
 
if (g_zombie[id]) // zombies
 
{
 
red 200
 green 
250
 blue 
0
 
 
if (g_nemesis[id])
 
formatex(class, charsmax(class), "%L"ID_SHOWHUD"CLASS_NEMESIS")
 else
 
copy(class, charsmax(class), g_zombie_classname[id])
 }
 else 
// humans
 
{
 
red 0
 green 
0
 blue 
255
 
 
if (g_survivor[id])
 
formatex(class, charsmax(class), "%L"ID_SHOWHUD"CLASS_SURVIVOR")
 else
 
formatex(class, charsmax(class), "%L"ID_SHOWHUD"CLASS_HUMAN")
 }
 
 
// Spectating someone else?
 
if (id != ID_SHOWHUD)
 { 
 
// Show name, health, class, and ammo packs
 
set_hudmessage(255255255HUD_SPECT_XHUD_SPECT_Y06.01.10.00.0, -1)
 
ShowSyncHudMsg(ID_SHOWHUDg_MsgSync2"%L %s^nHP: %d - %L %s - %L %d - Frags: %s - Infecciones: %s - Nivel: %d"ID_SHOWHUD"SPECTATING"g_playername[id], pev(idpev_health), ID_SHOWHUD"CLASS_CLASS", class, ID_SHOWHUD"AMMO_PACKS1"g_ammopacks[id], g_iFrags[id] >= RequiredFrags(g_iLevel[id]) ? fmt("COMPLETADO") : fmt("%d de %d"g_iFrags[id], RequiredFrags(g_iLevel[id])), g_iInfects[id] >= RequiredInfects(g_iLevel[id]) ? fmt("COMPLETADO") : fmt("%d de %d"g_iInfects[id], RequiredInfects(g_iLevel[id])), g_iLevel[id])
 }
 else
 {
 
// Show health, class and ammo packs
 
set_hudmessage(redgreenblueHUD_STATS_XHUD_STATS_Y06.01.10.00.0, -1)
 
ShowSyncHudMsg(ID_SHOWHUDg_MsgSync2"%L: %d - %L %s - %L %d - Frags: %s - Infecciones: %s - Nivel: %d"id"ZOMBIE_ATTRIB1"pev(ID_SHOWHUDpev_health), ID_SHOWHUD"CLASS_CLASS", class, ID_SHOWHUD"AMMO_PACKS1"g_ammopacks[ID_SHOWHUD], g_iFrags[ID_SHOWHUD] >= RequiredFrags(g_iLevel[ID_SHOWHUD]) ? fmt("COMPLETADO") : fmt("%d de %d"g_iFrags[ID_SHOWHUD], RequiredFrags(g_iLevel[ID_SHOWHUD])), g_iInfects[ID_SHOWHUD] >= RequiredInfects(g_iLevel[ID_SHOWHUD]) ? fmt("COMPLETADO") : fmt("%d de %d"g_iInfects[ID_SHOWHUD], RequiredInfects(g_iLevel[ID_SHOWHUD])), g_iLevel[ID_SHOWHUD])
 }


Normal (Solo frags):
Código PHP:
#include <amxmodx>
#include <hamsandwich>

#define TASK_HUD 13247
#define ID_HUD (task_id - TASK_HUD)

/* 
    Ejemplos de exp requerida:

    Nivel 0: 9
    Nivel 1: 12
    Nivel 2: 15

    Formula:

    (N + 3) x 3

    Donde N es el nivel actual

*/

#define RequiredFrags(%1) (%1 * 3 * 3)

#define VERSION "1.0"

new g_iFrags[33], g_iLevel[33];
new 
g_iSynccvar_frags_by_kill;

public 
plugin_init()
{
 
register_plugin("Niveles por frags"VERSION"kikizon / LSSTUDIOS.XYZ");
 
 
RegisterHam(Ham_Killed"player""PlayerKilledPost"true);

 
cvar_frags_by_kill register_cvar("frags_by_kill""1");
 
g_iSync CreateHudSyncObj();
}

public 
client_putinserver(index)
{
 
g_iFrags[index] = g_iLevel[index] = 0;

 
set_task(1.0"LevelHud"index+TASK_HUD, .flags="b"); 
}

public 
client_disconnected(indexremove_task(index+TASK_HUD);

public 
PlayerKilledPost(victimattacker)
{
 if(!
attacker || !is_user_connected(attacker) || !is_user_connected(victim) || victim == attacker)

 
SetFrags(attackerget_pcvar_num(cvar_frags_by_kill));
}

SetFrags(indexiFrags)
{
 if(!
index || !is_user_connected(index)) return;

 
g_iFrags[index] += iFrags;

 static 
iLeveliLevel g_iLevel[index];
 while(
g_iFrags[index] >= RequiredFrags(g_iLevel[index])) ++g_iLevel[index];

 if(
g_iLevel[index] > iLevelclient_print_color(indexprint_team_default"Felicidades! Subiste al nivel ^4%d"g_iLevel[index]);
}

public 
LevelHud(task_id)
{
 if(!
is_user_alive(ID_HUD)) return;

 
set_hudmessage(2002002000.00.95);

 
ShowSyncHudMsg(ID_HUDg_iSync"Frags: %d de %d - Nivel: %d"g_iFrags[ID_HUD], RequiredFrags(g_iLevel[ID_HUD]), g_iLevel[ID_HUD]);




Adjuntos del tema (Modos normales):


Niveles por daño requerido:
.sma   Descargar AMXX / NORMAL_pordamage.sma (Tamaño: 4.16 KB / Descargas: 108)
Niveles por frags:
.sma   Descargar AMXX / NORMAL_porfrags.sma (Tamaño: 1.68 KB / Descargas: 48)

[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder
#2
Código PHP:
new const NIVEL_MAXIMO[] = "25" // Nivel Maximo :genius:
new const DMG_NECESARIO[] = "1200" 

...y porqué las guardas como un string y las comparas como enteros?
Responder
#3
(06/09/2014, 01:14 AM)meTaLiCroSS escribió:
Código PHP:
new const NIVEL_MAXIMO[] = "25" // Nivel Maximo :genius:
new const DMG_NECESARIO[] = "1200" 

...y porqué las guardas como un string y las comparas como enteros?

:o no me di cuenta esto es parte de otra cosa en el tuto original lo tengo como definiciones ahi editoGuiño gracias metalicross :3

edit: cuando este en pc edito ya que no me abre tapatalk :c
[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder
#4
Tuve que leer el code para saber como era , no entendí tu explicación jaja.

Haber si leí bien , llegas a 1200 de daño hecho y te empieza a subir la exp?

Este sistema me gustaría para el BaseBuilder

Buen tuto.
NUEVO ZOMBIE PLAGUE + LVLS!! UNETE A LA COMUNIDAD
[Imagen: b_350_20_ffad41_e98100_000000_591f11.png]


Responder
#5
(06/09/2014, 10:54 AM)Evil Spiret escribió: Tuve que leer el code para saber como era , no entendí tu explicación jaja.

Haber si leí bien , llegas a 1200 de daño hecho y te empieza a subir la exp?

Este sistema me gustaría para el BaseBuilder

Buen tuto.

It's easy :3 por cada 1200 de daño infligido te aumenta 1 punto de exp :3


y créeme es muy buen sistema esto vicia a los users, o por lo menos a la mayoría pacman
[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder
#6
buen tuto grax =)
Sé humilde en tu enfoque.
Responder
#7
El zp ya tiene una variable que cachea el damage
Todos los MODS VHL totalmente gratuitos  Descarga Aqui

Mis plugins:
STEAM: https://steamcommunity.com/id/Metrikcz/
FB: fb.com/rwoong
Venta plugins a pedido en México mándame MP
Responder
#8
si, "g_damagedealt" pero tal vez quieran desactivar la ganancia de aps por daño que para eso es la variable o quieran ganar 1 ap por cada 100 de dmg, así que mejor este sistema aparte Guiño
[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder
#9
Código PHP:
public actualizar_nivel(id) {
    new 
subido false
    
while(g_exp[id] >= nivel_sig(g_nivel[id]) && g_nivel[id] < NIVEL_MAXIMO) {  // Mientras la exp, sea igual o mayor a la requerida y el nivel sea menor al nivel máximo
        
g_level[id]++ // Subimos de nivel
        
subido true
    
}
    if(
subido) {
        
client_print(idprint_center"Subiste al nivel: %d"g_nivel[id]) // Mandamos un mensaje al centro de la pantalla informando que subió de nivel
        
subido false
    
}


----->

Código PHP:
public actualizar_nivel(id) {
    new 
subido false
    
while(g_exp[id] >= nivel_sig(g_nivel[id]) && g_nivel[id] < NIVEL_MAXIMO) {  // Mientras la exp, sea igual o mayor a la requerida y el nivel sea menor al nivel máximo
        
g_nivel[id]++ // ...
        
subido true
    
}
    if(
subido) {
        
client_print(idprint_center"Subiste al nivel: %d"g_nivel[id]) // Mandamos un mensaje al centro de la pantalla informando que subió de nivel
        
subido false
    
}

"El camino de pies y manos" Tae Kwon Do
Responder
#10
(21/09/2014, 02:09 AM)Hackeloff escribió:
Código PHP:
public actualizar_nivel(id) {
    new 
subido false
    
while(g_exp[id] >= nivel_sig(g_nivel[id]) && g_nivel[id] < NIVEL_MAXIMO) {  // Mientras la exp, sea igual o mayor a la requerida y el nivel sea menor al nivel máximo
        
g_level[id]++ // Subimos de nivel
        
subido true
    
}
    if(
subido) {
        
client_print(idprint_center"Subiste al nivel: %d"g_nivel[id]) // Mandamos un mensaje al centro de la pantalla informando que subió de nivel
        
subido false
    
}


----->

Código PHP:
public actualizar_nivel(id) {
    new 
subido false
    
while(g_exp[id] >= nivel_sig(g_nivel[id]) && g_nivel[id] < NIVEL_MAXIMO) {  // Mientras la exp, sea igual o mayor a la requerida y el nivel sea menor al nivel máximo
        
g_nivel[id]++ // ...
        
subido true
    
}
    if(
subido) {
        
client_print(idprint_center"Subiste al nivel: %d"g_nivel[id]) // Mandamos un mensaje al centro de la pantalla informando que subió de nivel
        
subido false
    
}


pacman pacman error de dedo >.< Ahi arreglo thanks
[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder
#11
Y Gracias :3 Me re gusto el sistema este Feel like a sir
"El camino de pies y manos" Tae Kwon Do
Responder
#12
y si se combina con un party para que no sufras tu solo
Mi 250 :3
[Imagen: anigif2.gif]
Responder
#13
(21/09/2014, 05:45 PM)Frnc escribió: y si se combina con un party para que no sufras tu solo

no es sufrimiento, creo que es mejor que tener 1000 niveles e.e se podría hacer por party solo haciendo que por cada 5000 de dmg en la party se de 1 punto de exp para cada miembro, es cuestión de adaptarlo a las necesidades de cada uno Whatever
[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder
#14
y Para que un ADMIN gane x2 o dependiendo de su flag como haria??
"El camino de pies y manos" Tae Kwon Do
Responder
#15
luego hago un tuto para eso xD

Pero seria crear una variable y dependiendo de la flag darle valor a la variable y al momento de agregar la experiencia multiplicar por el valor de la variable :3
[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder
#16
(21/09/2014, 10:16 PM)kikizon2 escribió: luego hago un tuto para eso xD

Pero seria crear una variable y dependiendo de la flag darle valor a la variable y al momento de agregar la experiencia multiplicar por el valor de la variable :3

Como tendria que hacerlo? Mas explicado porfavor xD
"El camino de pies y manos" Tae Kwon Do
Responder
#17
Código PHP:
static flagsflags get_user_flags(attacker)

switch (
flags)
{
    case 
ADMIN_LEVEL_A:  g_exp[attacker]+= 834834
    
case ADMIN_LEVEL_B:  g_exp[attacker]+= 30499f8sdjfosdf8123nfsdgbsd
    
case BLA BLA :  g_exp[attacker]-= 9999999999999999999999999

Responder
#18
Tengo un bug... jeje cuando llego al lvl max que el mio es 100...

Cuando llego al lvl max y reseteo soy nivel 1 pero cuando disparo llego devuelta enseguida al lvl 100 ... sera el damage y la experiencia que no se remueve?
"El camino de pies y manos" Tae Kwon Do
Responder
#19
pega el code de reseteo pacman o mejor aun deberias de crear otro tema ya que obvio ese "bug" no es causado por mi sistema pacman
[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder
#20

.sma   Descargar AMXX / system_nuevo.sma (Tamaño: 11.2 KB / Descargas: 55) Tengo una super pregunta.
Como hago para adaptar ese sistema a este
.sma   Descargar AMXX / system_nuevo.sma (Tamaño: 11.2 KB / Descargas: 55) guardado por cuentas.
Osea, Aser que se guarden los ammopacks, el level, el exp y el damage(No importa si no se puede el damage)...
Porfa lo necesito urgente para mi server.
Y seria posible k me ayudaran a adaptar un sistema de guardado DENTRO del ZP 4.3. Gracias y Porfavor Responder rapido lo necesito urgente si se puede...

NIGGA FUERA

Cutecry
[Imagen: EvoLogo.png.fbcccbc49fb32e6a4bf8f5e72d80c317.png]
nalgas

(03/08/2018, 03:13 PM)Skylar escribió: Está bien que pidas ayudas, pero no para que crees 20 post todos los días mogolico de mierda, me tenes re podrido ya, contraté 10000 sicarios para que te busquen y te maten toda la familia, y a vos que te revienten con una bazooka.
Responder
#21
bueno ahora estoy esde el cel pero te recomiendo adv_vault, es muy facil en realidad busca en el foro de tutos... ahi veras algunos ejemplos...
[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder
#22
Actualizado y Agregado función de resets pacman
[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder
#23
Kikizon
Mira Cuando Ago el sistema de resets me tira este error:
Error: Array must be indexed (variable "kNivel") on line 11550
K ago?????????????
PD: Lo necesito Urgente Para mi server porfa
[Imagen: EvoLogo.png.fbcccbc49fb32e6a4bf8f5e72d80c317.png]
nalgas

(03/08/2018, 03:13 PM)Skylar escribió: Está bien que pidas ayudas, pero no para que crees 20 post todos los días mogolico de mierda, me tenes re podrido ya, contraté 10000 sicarios para que te busquen y te maten toda la familia, y a vos que te revienten con una bazooka.
Responder
#24
(19/10/2014, 11:07 AM)elpapimejor escribió: Kikizon
Mira Cuando Ago el sistema de resets me tira este error:
Error: Array must be indexed (variable "kNivel") on line 11550
K ago?????????????
PD: Lo necesito Urgente Para mi server porfa

Código PHP:
kNivel[index
[Imagen: 76561198066347799.png]
Responder
#25
ya corregi pacman :3 sorry
[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)