Mensajes: 154
Temas: 57
Registro en: Dec 2017
Reputación:
0
07/11/2019, 04:42 PM
(Última modificación: 07/11/2019, 04:43 PM por Mariano Gyt. Edited 1 time in total.)
No entiendo! Porque al ser lvl correspondiente no me pone el rango que debe ser.. les dejo codigo:
Código PHP: new g_rangos[33]
enum _:Info_Rangos { RangosName[33], RangosNivel }
new const Rangos[][Info_Rangos] = { { "Rango 1", 1}, { "Rango 2", 2}, { "Rango 3", 3}, { "Rango 4", 4}, { "Rango 5", 5} }
public rangos(id) { if (g_level[id] >= Rangos[g_rangos[id] + 1][RangosNivel] && g_rangos[id] < 9) { g_rangos[id]++ ChatColor(id, "!g[AMX] !ySubiste al rango !g%s", Rangos[g_rangos[id]][RangosName]) } }
Y un ejemplo al subir de level:
Código PHP: public level(id) { while(g_exp[id] >= level_up(g_level[id]) && g_level[id] < 100) { g_level[id]++ ChatColor(id, "!g[AMX] !ySubiste al nivel %d", g_level[id]) rangos(id) //Deberia colocar esto al subir de level? } }
Por ejemplo siendo level 2, me aparece que soy rango 1 cuando deberia ser rango 2
Mensajes: 106
Temas: 16
Registro en: Sep 2019
07/11/2019, 07:15 PM
(Última modificación: 07/11/2019, 07:25 PM por miguel za.)
debes colocarlo en el sube nivel man
public level(id)
{
while(g_exp[id] >= level_up(g_level[id]) && g_level[id] < 100)
{
g_level[id]++
g_rangos[id]++
ChatColor(id, "!g[AMX] !ySubiste al rango, nivel %d", g_level[id])
}
}
no se si es asi bro iba hacer algo asi para mi zp ojala te sirva xd
guiate de este el de arriba esta mal :V lo saque del za
Código PHP: // Update level and range update_level(id) { static sound[64]; static level; level = g_level[id] static rangelevel; rangelevel = g_rangelevel[id] // Upload level while (g_experience[id] >= cost_levelup((g_level[id]+1)) && g_level[id] < g_max_level) g_level[id]++ // Reduce level while (g_experience[id] < cost_levelup(g_level[id]) && g_level[id] > 1) g_level[id]-- // Level changed? if (g_level[id] > level) { client_print(id, print_center,"^x04[ZA]^x01 Felicidades! Has ascendido a nivel: ^x04%d^x01", g_level[id]) ArrayGetString(sound_level_up, random_num(0, ArraySize(sound_level_up) - 1), sound, charsmax(sound)) OnePlaySound(id, sound); } else if (g_level[id] < level) { client_print(id, print_center ,"^x04[ZA]^x01 Mala suerte! Has descendido a nivel: ^x04%d^x01", g_level[id]) ArrayGetString(sound_level_down, random_num(0, ArraySize(sound_level_down) - 1), sound, charsmax(sound)) OnePlaySound(id, sound); } // Upload range while (g_level[id] >= cost_rangeup((g_rangelevel[id]+1)) && g_rangelevel[id] < g_max_range) g_rangelevel[id]++ // Reduce range while (g_level[id] < cost_rangeup(g_rangelevel[id]) && g_rangelevel[id] > 1) g_rangelevel[id]-- // Range changed? if (g_rangelevel[id] > rangelevel) { ArrayGetString(g_range_names, g_rangelevel[id]-1, g_rangename[id], charsmax(g_rangename[])) client_print(id, print_center , "^x04[ZA]^x01 Felicidades! Has ascendido a rango: ^x04%s^x01", g_rangename[id]) } else if (g_rangelevel[id] < rangelevel) { ArrayGetString(g_range_names, g_rangelevel[id]-1, g_rangename[id], charsmax(g_rangename[])) client_print(id, print_center, "^x04[ZA]^x01 Mala suerte! Has descendido a rango: ^x04%s^x01", g_rangename[id]) } }
Mensajes: 106
Temas: 16
Registro en: Sep 2019
Código PHP: new g_rango[33] new const cost_rango[] = { 1, 10, 20, 30, 40, 50, 70, 100, 130, 180, 200, 250, 300, 350 } // Los niveles de los rangos new const RANGOS[][] = { "Ciudadano", "Recluta", "Soldado", "Soldado-Primero", "Cabo", "Cabo-Primero", "Cabo-Mayor", "Brigada", "SubTeniente", "Suboficial-Mayor", "Coronel", "Teniente-Coronel", "Capitan", "Jefe", "Jefe-Mayor" } // Los nombres de los rangos
public update_ap(id, amount, check) { if (check) goto check2 // Lo que hace el "goto" es, si la Funcion esta se llamo desde "check", el Plugin lo que hara, es llamar directamente a "check2". // Aca detectamos que si es Nivel Maximo no suba mas. if (g_ammopacks[id] + amount > NIVELES[sizeof NIVELES - 1] - 1) return PLUGIN_HANDLED // Le damos los APs correspondientes. g_ammopacks[id] += amount // Ya lo dijimos antes ^^. check2: if(amount < 0) { if(g_ammopacks[id] < NIVELES[g_level[id]] ) { g_level[id]-- update_ap(id, -1, 1) } } else { if(g_ammopacks[id] >= NIVELES[g_level[id]] ) { g_level[id]++ update_ap(id, 0, 1) } checkrango(id) } return PLUGIN_HANDLED }
public checkrango(id) { while (g_level[id] >= cost_rango[g_rango[id]]) // Hacemos un chequeo que cuando sea mayor o igual al nivel necesario { g_rango[id]++ // Aumenta de rango zp_colored_print(id, "^x04[ZE]^x03 Avanzaste al rango: ^x04%s^x01", RANGOS[g_rango[id]]) // Le mandamos un mensajito para el rango al que subio. } }
yo lo hice asi no se si anda bien prueba
Mensajes: 154
Temas: 57
Registro en: Dec 2017
Reputación:
0
Nose, se queda siempre en el rango del lvl 1, alta paja, complica la vida los rangos
Mensajes: 3,238
Temas: 47
Registro en: Feb 2015
Reputación:
34
08/11/2019, 01:29 AM
(Última modificación: 08/11/2019, 01:34 AM por Skylar. Edited 5 times in total.)
(07/11/2019, 04:42 PM)Mariano Gyt escribió: No entiendo! Porque al ser lvl correspondiente no me pone el rango que debe ser.. les dejo codigo:
Código PHP: new g_rangos[33]
enum _:Info_Rangos { RangosName[33], RangosNivel }
new const Rangos[][Info_Rangos] = { { "Rango 1", 1}, { "Rango 2", 2}, { "Rango 3", 3}, { "Rango 4", 4}, { "Rango 5", 5} }
public rangos(id) { if (g_level[id] >= Rangos[g_rangos[id] + 1][RangosNivel] && g_rangos[id] < 9) { g_rangos[id]++ ChatColor(id, "!g[AMX] !ySubiste al rango !g%s", Rangos[g_rangos[id]][RangosName]) } }
Y un ejemplo al subir de level:
Código PHP: public level(id) { while(g_exp[id] >= level_up(g_level[id]) && g_level[id] < 100) { g_level[id]++ ChatColor(id, "!g[AMX] !ySubiste al nivel %d", g_level[id]) rangos(id) //Deberia colocar esto al subir de level? } }
Por ejemplo siendo level 2, me aparece que soy rango 1 cuando deberia ser rango 2
Código PHP: if (g_level[id] >= Rangos[g_rangos[id] + 1][RangosNivel] && g_rangos[id] < 9) // --> if (g_level[id] >= Rangos[g_rangos[id]][RangosNivel] && g_rangos[id] < charsmax(Rangos))
Mensajes: 154
Temas: 57
Registro en: Dec 2017
Reputación:
0
(08/11/2019, 01:29 AM)Skylar escribió: (07/11/2019, 04:42 PM)Mariano Gyt escribió: No entiendo! Porque al ser lvl correspondiente no me pone el rango que debe ser.. les dejo codigo:
Código PHP: new g_rangos[33]
enum _:Info_Rangos { RangosName[33], RangosNivel }
new const Rangos[][Info_Rangos] = { { "Rango 1", 1}, { "Rango 2", 2}, { "Rango 3", 3}, { "Rango 4", 4}, { "Rango 5", 5} }
public rangos(id) { if (g_level[id] >= Rangos[g_rangos[id] + 1][RangosNivel] && g_rangos[id] < 9) { g_rangos[id]++ ChatColor(id, "!g[AMX] !ySubiste al rango !g%s", Rangos[g_rangos[id]][RangosName]) } }
Y un ejemplo al subir de level:
Código PHP: public level(id) { while(g_exp[id] >= level_up(g_level[id]) && g_level[id] < 100) { g_level[id]++ ChatColor(id, "!g[AMX] !ySubiste al nivel %d", g_level[id]) rangos(id) //Deberia colocar esto al subir de level? } }
Por ejemplo siendo level 2, me aparece que soy rango 1 cuando deberia ser rango 2
Código PHP: if (g_level[id] >= Rangos[g_rangos[id] + 1][RangosNivel] && g_rangos[id] < 9) // --> if (g_level[id] >= Rangos[g_rangos[id]][RangosNivel] && g_rangos[id] < charsmax(Rangos))
Tampoco, deberia chekear rangos en alguna parte? ademas del subir de lvl?
|