Mensajes: 22
Temas: 12
Registro en: Jan 2019
Reputación:
0
eh usado los niveles de kiske y el check level se bugea, no me sube los niveles, hasta el reinicio del mapa.
Quería saber que niveles por ammopacks me recomiendan.
Mensajes: 913
Temas: 53
Registro en: Jan 2018
Reputación:
7
No seria mejor que pases el código o modificación que usaste en tu ZP.
No se digo yo :/
Mensajes: 22
Temas: 12
Registro en: Jan 2019
Reputación:
0
(10/01/2019, 11:36 PM)El pirucho XP-007 escribió: No seria mejor que pases el código o modificación que usaste en tu ZP.
No se digo yo :/
No se en que parte se podría encontrar el bug.
Código PHP: // Abajo de los Includes de tu ZombiePlague, pones: new const NIVELES[5] = { 0, 5, 10, 20, 50 } // Como veran, ahi estamos Creando una Constante con el Nombre "NIVELES" que abarcara (Para Explicarlo de una Manera que lo Entiendan), unos 5 Niveles. // Si van a poner mas Niveles, deberan cambiar ese "5" por la Cantidad de Niveles que vayan a poner.
// Abajo de esa Constante creamos una Variable que contendra 33 Lugares. new g_level[33]
// Nos dirigimos a la Forward: public fw_PlayerKilled(victim, attacker, shouldgib) {
// Adentro de este Public, buscamos la siguiente linea: if (g_zombie[attacker] && (!g_nemesis[attacker] || !get_pcvar_num(cvar_nemignoreammo))) g_ammopacks[attacker] += get_pcvar_num(cvar_ammoinfect) // Y lo reemplazamos por esto: if (g_zombie[attacker] && (!g_nemesis[attacker] || !get_pcvar_num(cvar_nemignoreammo))) update_ap(attacker, get_pcvar_num(cvar_ammoinfect), 0)
// La Funcion "update_ap" la llamaremos mas tarde.
}
// Ahora nos dirigimos a la Forward: public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type) {
// Y adentro de este Public buscamos esta linea: g_ammopacks[attacker]++ // La reemplazamos por: update_ap(attacker, 1, 0) // El primer numero(1), que esta despues del Index(attacker), son los AmmoPacks que recibira el Index(attacker=atacante). // El otro numero no nos servira por ahora.
// En este mismo Public buscamos esta linea que se encuentra mas abajo: g_ammopacks[attacker] += get_pcvar_num(cvar_ammoinfect) // ammo packs given to zombie for infection // La reemplazamos por: update_ap(attacker, get_pcvar_num(cvar_ammoinfect), 0) // ammo packs given to zombie for infection
}
// Buscamos el CLCMD: public clcmd_buyammo(id) {
// Y adentro de este Public buscamos esta linea: g_ammopacks[id]-- // Y la reemplazamos por: update_ap(id, -1, 0)
}
// Ahora buscamos lo siguiente en el Plugin: buy_extra_item(id, itemid) {
// Aca adentro buscamos una linea que diga lo siguiente: // Deduce item cost g_ammopacks[id] -= g_extraitem_cost[itemid] // La reemplazamos por: update_ap(id, 0 - g_extraitem_cost[itemid], 0)
}
// Ahora buscamos la Funcion: infection_explode(ent) {
// Aca adentro buscamos la siguiente Linea: g_ammopacks[attacker] += get_pcvar_num(cvar_ammoinfect) // ammo packs given to zombie for infection // Y la reemplazamos por: update_ap(attacker, get_pcvar_num(cvar_ammoinfect), 0) // ammo packs given to zombie for infection
}
// Buscamos la Native: public native_set_user_ammo_packs(id, amount) {
// Reemplazamos todo lo que esta aca adentro por: return update_ap(id, 0 - g_ammopacks[id] + amount, 0)
}
// Ahora nos vamos al FINAL DEL PLUGIN, incluso abajo de un: "#endif", y ponemos lo siguiente:
// FORMA DE SPEED! [CON EL "goto"] // FORMA DE SPEED! [CON EL "goto"] // FORMA DE SPEED! [CON EL "goto"] 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]-- client_print(id, print_center, "Bajaste de nivel") update_ap(id, -1, 1) }
} else { if(g_ammopacks[id] >= NIVELES[g_level[id]] ) { g_level[id]++ client_print(id, print_center, "Subiste de nivel") update_ap(id, 0, 1) } } return PLUGIN_HANDLED }
Mensajes: 4,247
Temas: 94
Registro en: Mar 2014
Reputación:
58
Estudia siempre; el tiempo es oro, lo material se puede recuperar pero el tiempo no se puede recuperar.
(02/10/2016, 05:05 PM)meTaLiCroSS escribió: Siempre me gusta ayudar cuando alguien esta interesado realmente en ver que esta programando. (08/08/2019, 05:32 PM)meTaLiCroSS escribió: grax x el dato cr4ck
Mis aportes
PLUGINSMAPAS
Menú LANG
[SF] Sistema de Frags
Say System (Admin Prefix)
Mensajes: 336
Temas: 26
Registro en: Sep 2016
Reputación:
5
11/01/2019, 03:14 AM
(Última modificación: 11/01/2019, 03:24 AM por GoldenCosta. Edited 1 time in total.)
(11/01/2019, 01:45 AM)totopizza escribió: Te recomiendo mejor leer este: https://amxmodx-es.com/Thread-Guia-defin...l-10-11-18
ese es por damage o daño acumulado y es xp... y tampoco detecta cuando un usuario baja de nivel al gastar packs
en fin... cuando haces la deteccion de subir 1 lvl chequea tanto la bajada como subida de levels
Código PHP: public update_ap(id, amount, check) { if (check) goto check2 if (g_ammopacks[id] + amount > levels[sizeof levels - 1] - 1) return PLUGIN_HANDLED g_ammopacks[id] += amount check2: if(amount < 0) { if(g_ammopacks[id] < levels[g_level[id] - 1] ) { g_level[id]-- client_print(id, print_center, "Bajaste de nivel") update_ap(id, -1, 1) } } else { if(g_ammopacks[id] >= levels[g_level[id]] ) { g_level[id]++ client_print(id, print_center, "Subiste de nivel!") update_ap(id, 0, 1) } } return PLUGIN_HANDLED }
------------------------------->>>>>>>>>>>>>>>>>>>>
esta parte esta en fw_PlayerKilled... lo unico que hace es chequear al momento de matar si das packs o no....
Código PHP: // Adentro de este Public, buscamos la siguiente linea: if (g_zombie[attacker] && (!g_nemesis[attacker] || !get_pcvar_num(cvar_nemignoreammo))) g_ammopacks[attacker] += get_pcvar_num(cvar_ammoinfect) // Y lo reemplazamos por esto: if (g_zombie[attacker] && (!g_nemesis[attacker] || !get_pcvar_num(cvar_nemignoreammo))) update_ap(attacker, get_pcvar_num(cvar_ammoinfect), 0)
--------------------------->>>>>>
aca es la parte mas importante public fw_TakeDamage
aca solo vamos a poner
Código PHP: // Reward ammo packs for every [ammo damage] dealt while (g_damagedealt[attacker] >= ammodamage) { g_ammopacks[attacker]++ g_damagedealt[attacker] -= ammodamage }
---------------------
Código PHP: // Reward ammo packs for every [ammo damage] dealt while (g_damagedealt[attacker] >= ammodamage) { g_ammopacks[attacker]++ update_ap(attacker, 1, 0) g_damagedealt[attacker] -= ammodamage }
mas abajo tambien cuando infectamos un jugador
Código PHP: // Infection allowed SendDeathMsg(attacker, victim) // send death notice FixDeadAttrib(victim) // fix the "dead" attrib on scoreboard UpdateFrags(attacker, victim, get_pcvar_num(cvar_fragsinfect), 1, 1) // add corresponding frags and deaths zombieme(victim, attacker, 0, 0) // turn into zombie g_ammopacks[attacker] += get_pcvar_num(cvar_ammoinfect) // ammo packs given to zombie for infection update_ap(attacker, 1, 0) fm_set_user_health(attacker, pev(attacker, pev_health)+get_pcvar_num(cvar_zombiebonushp)) // attacker gets bonus HP for the infection
ahora algo que no esta en ese code.... la bajada de lvl cuando gastas packs
te vas a buy_extra_item(id, itemid)
buscas dentro del public
Código PHP: // Deduce item cost g_ammopacks[id] -= g_extraitem_cost[itemid]
cambias por-------
Código PHP: update_ap(id, g_extraitem_cost[itemid], 0)
tambien en las natives para los extra items
Código PHP: // Native: zp_set_user_ammo_packs public native_set_user_ammo_packs(id, amount) { g_ammopacks[id] = amount; }
-----------------------
Código PHP: // Native: zp_set_user_ammo_packs public native_set_user_ammo_packs(id, amount) { return update_ap(id, 0 - g_ammopacks[id] + amount, 0) }
y asi en varios lugares mas donde veas que das o restar ammopacks tienes que hacer el chequeo....
Mensajes: 22
Temas: 12
Registro en: Jan 2019
Reputación:
0
(11/01/2019, 01:45 AM)totopizza escribió: Te recomiendo mejor leer este: https://amxmodx-es.com/Thread-Guia-defin...l-10-11-18
Lo tomo como una buena opción, pero busque un party como opción y el que vi, es por aps, como debería de hacer para que el daño que se acumulo sea lo que se reparta multiplicado y no los aps
|