Mensajes: 71
Temas: 13
Registro en: Dec 2013
Reputación:
0
10/12/2013, 11:02 PM
(Última modificación: 03/01/2014, 11:10 AM por ShaDow^.)
Nota antes de empezar: Este tutorial esta hecho para ZP 4.2 no se si anda para el 4.3 fijense ustedes...
Agradesco al usuario de AlliedModders Kiske que use su Tuto de niveles como inspiracion...
Empezemos.
Abajo de los Includes y arriba de Plugin Customization agregamos las siguientes variables:
Código PHP: new g_level[33] // Esta es la variable que usaremos para los niveles new g_exp[33] // Esta es la variable que usaremos para la cantidad de experiencia #define MAXLEVEL <cantidad> // Este define sirve para definir el nivel maximo que se puede llegar (en <cantidad> pongan el numero que uds. quieran new const LEVELS[MAXLEVEL] = { cantidades } // Este const sirve para definir la experiencia que requiere cada nivel (En cantidad pongan el monto que uds. quieran Ej: { 1, 2, 3, 4, 5 } cada numero separado por una coma.
Ahora nos vamos al public fw_TakeDamage. Buscan la siguiente linea:
Código PHP: // Reward ammo packs for every [ammo damage] dealt
Y abajo de:
Código PHP: g_damagedealt[attacker] -= ammodamage
Agregan:
Código PHP: g_exp[attacker] += <cantidad> // Esto sirve para dar la experiencia por el daño que tengas definido en tu zp (en cantidad pornga el monto que quieran) check_level(id) // esto sirve para checkear el nivel cada vez que ganemos un punto de xp por damage.
Ahora buscan la linea:
Y abajo de:
Agregan:
Código PHP: g_level[id] = 1 // Aca decimos que cuando un player entre al servidor su nivel sera 1 g_exp[id] = 0 // Aca decimos que cuando un player entre al servidor su experiencia sera 0
Ahora vamos al final del plugin y agregamos lo siguiente:
Código PHP: public check_level(id) { if (g_exp[id] > LEVELS[sizeof LEVELS - 1] - 1) return PLUGIN_HANDLED; while(g_exp[id] >= LEVELS[g_level[id]]) { g_level[id]++ zp_colored_print(id, "^x04[ZP]^x01 Has subido al nivel ^x04%d^x01.", g_level[id]) }
return PLUGIN_HANDLED; }
Para agregar el nivel al Hud vamos a
Y buscamos la linea
Código PHP: ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync2, code...
Y ahi agregamos
Código PHP: "Nivel: %d Experiencia: %d", g_level[id], g_exp[id])
En mi caso quedaria asi:
Código PHP: ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync2, "Nivel: %d Experiencia: %d", g_level[id], g_exp[id])
Y esto fue todo para crear niveles.
Saludos, Atte. ShaDow^
Mensajes: 3,020
Temas: 49
Registro en: Oct 2013
Reputación:
33
dices que no responderas algunas preguntas porque son faciles.
acaso tu tutorial es algo complejo y dificil?
yo solo lo veo como otra guia mediocre.
Ingeniero agrónomo y desarrollador de Software.
tutoriales-allied
buscas un zp?
"La imitación es la forma más sincera de admiración con la que puede pagar la mediocridad a la grandeza"
Merci Alliedmodders pour m'introduire dans la programmation.
Mensajes: 71
Temas: 13
Registro en: Dec 2013
Reputación:
0
Y por que te parece mediocre?
Mensajes: 225
Temas: 15
Registro en: Oct 2013
Reputación:
1
A mi me parece un tuto para megaprincipiantes (como yo en mayo de 2012), igual creo que puede servirle a gente que no sabe una mierda de plugins, yo me acuerdo que asi empeze a hacer plugins, viendo estas guias/tut que era buscar y reemplazar, y despues de a poco me empeze a preguntar por que se usaba siempre lo mismo xd
Mensajes: 2,600
Temas: 33
Registro en: Oct 2013
Reputación:
36
muy incompleto, nunca se llama a check_level
(17/04/2015, 03:36 PM)Neeeeeeeeeel.- escribió: No se va a volver a conectar a internet en toda su puta vida... nadie sube porno a mi foro y vive para contarlo.
Mensajes: 71
Temas: 13
Registro en: Dec 2013
Reputación:
0
(11/12/2013, 11:07 AM)RauliTop escribió: muy incompleto, nunca se llama a check_level
Es verdad, me olvide disculpa.
Mensajes: 694
Temas: 146
Registro en: Nov 2013
Reputación:
11
no entiendo (perdón la ignorancia)
Código PHP: // Reward ammo packs for every [ammo damage] dealt
no tengo eso en mi zp 4.2
en mi zp aparese esto:
Código PHP: // Ham Take Damage Forward (inflictor = weapon) public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type) { // Non-player damage or self damage if (victim == attacker || !is_user_connected(attacker)) return HAM_IGNORED; // New round starting or round ended if (g_newround || g_endround) return HAM_SUPERCEDE; // Victim shouldn't take damage or victim is frozen if (g_nodamage[victim] || g_frozen[victim]) return HAM_SUPERCEDE; // Prevent friendly fire if (g_zombie[attacker] == g_zombie[victim]) return HAM_SUPERCEDE; // Attacker is human... if (!g_zombie[attacker]) { // Armor multiplier for the final damage on normal zombies if (!g_nemesis[victim]) { damage *= get_pcvar_float(cvar_zombiearmor) SetHamParamFloat(4, damage) } // Reward ammo packs if (!g_survivor[attacker] || !get_pcvar_num(cvar_survignoreammo)) { // Store damage dealt g_damagedealt[attacker] += floatround(damage) new bool:up // Almacenamos daño por combo g_damagecombo[attacker] += floatround(damage) g_damagehits[attacker]++ show_current_combo(attacker, floatround(damage)) remove_task(attacker+TASK_RESET_COMBO) if (g_damagehits[attacker] > 5) { while (g_damagecombo[attacker] >= ammount_damage(g_combo[attacker])) { g_combo[attacker]++ up = true } if (up) { formatex(g_info_combo[attacker], 63, "Combo %d completado!", g_combo[attacker]) remove_task(attacker+TASK_INFO_COMBO) set_task(3.0, "info_combo", attacker+TASK_INFO_COMBO) } remove_task(attacker+TASK_FINISH_COMBO) set_task(3.0, "finish_combo", attacker+TASK_FINISH_COMBO) } else { set_task(1.0, "reset_combo", attacker+TASK_RESET_COMBO) } // Get damage required to get an ammo pack static ammodamage ammodamage = get_pcvar_num(cvar_ammodamage) // Reward ammo packs for every [ammo damage] dealt while (g_damagedealt[attacker] >= ammodamage) { Levels(attacker, 1) g_damagedealt[attacker] -= ammodamage } } return HAM_IGNORED; } // Attacker is zombie... // Prevent infection by HE grenade (bugfix) if (damage_type & DMG_HEGRENADE) return HAM_SUPERCEDE; // Nemesis? if (g_nemesis[attacker]) { // Set nemesis damage SetHamParamFloat(4, get_pcvar_float(cvar_nemdamage)) return HAM_IGNORED; } // Last human or swarm round or plague round if (g_swarmround || g_plagueround || fnGetHumans() == 1) return HAM_IGNORED; // human is killed // Does human armor need to be reduced before infecting? // Get victim armor static Float:armor pev(victim, pev_armorvalue, armor) // Block the attack if he has some if (armor > 0.0) { engfunc(EngFunc_EmitSound, victim, CHAN_BODY, sound_armorhit, 1.0, ATTN_NORM, 0, PITCH_NORM) set_pev(victim, pev_armorvalue, floatmax(0.0, g_hclass_armor[g_humanclass[victim]] - damage)) return HAM_SUPERCEDE; } // 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 // ammo packs given to zombie for infection Levels(attacker, get_pcvar_num(cvar_ammoinfect)) fm_set_user_health(attacker, pev(attacker, pev_health)+get_pcvar_num(cvar_zombiebonushp)) // attacker gets bonus HP for the infection return HAM_SUPERCEDE; }
Mensajes: 905
Temas: 77
Registro en: Oct 2013
Reputación:
2
Código PHP: // Reward ammo packs for every [ammo damage] dealt while (g_damagedealt[attacker] >= ammodamage) { Levels(attacker, 1) g_damagedealt[attacker] -= ammodamage } } return HAM_IGNORED; }
(?
Mensajes: 694
Temas: 146
Registro en: Nov 2013
Reputación:
11
no lo había visto
Mensajes: 233
Temas: 16
Registro en: Nov 2013
Reputación:
4
29/12/2013, 01:46 AM
(Última modificación: 29/12/2013, 01:47 AM por Nike.)
si bajas de nivel no lo checkea
Mensajes: 71
Temas: 13
Registro en: Dec 2013
Reputación:
0
(29/12/2013, 01:46 AM)Nike escribió: si bajas de nivel no lo checkea
No entendi :| que quisiste decir??
Mensajes: 2,870
Temas: 13
Registro en: Oct 2013
Reputación:
24
mmmmmm donde me parece aver visto esto.... ahh en todo el puto internet
Mensajes: 71
Temas: 13
Registro en: Dec 2013
Reputación:
0
(30/12/2013, 07:20 AM)[R]ak escribió: mmmmmm donde me parece aver visto esto.... ahh en todo el puto internet
Si venis a comentar pelotudeces mejor ni comentes. ahi gente que no puede entrar a alliedmods por el proxy y no lo encuentra por ningun lado.
y conoce unicamente este lugar. Lo posteo especialmente para ese gente que quizas le sirve este thread. si a vos no te sirve no se ni para que lo lees
Saludos, ShaDow^
Mensajes: 2,870
Temas: 13
Registro en: Oct 2013
Reputación:
24
Comento lo que quiero
Mensajes: 71
Temas: 13
Registro en: Dec 2013
Reputación:
0
(31/12/2013, 10:34 PM)[R]ak escribió: Comento lo que quiero
Bueno si vos decis...
Mensajes: 1,182
Temas: 160
Registro en: Oct 2013
Reputación:
5
Me hace gracia eso del HUD: Eso es bastante fácil como para preguntar...
Entonces, quien te enseñó a tí, el aire?...lo digo por que poner eso es como decir, no me preguntéis sobre hud que no voy a responder por que todos saben...
Ojalá tio, ojalá!!
Mensajes: 71
Temas: 13
Registro en: Dec 2013
Reputación:
0
(03/01/2014, 07:40 AM)xPecie escribió: Me hace gracia eso del HUD: Eso es bastante fácil como para preguntar...
Entonces, quien te enseñó a tí, el aire?...lo digo por que poner eso es como decir, no me preguntéis sobre hud que no voy a responder por que todos saben...
Ojalá tio, ojalá!!
:O es verdad. Disculpen mi ignorancia jeje
Mensajes: 1
Temas: 0
Registro en: Feb 2014
Reputación:
0
Mensajes: 233
Temas: 16
Registro en: Nov 2013
Reputación:
4
escribi mal.... quise decir que no chekeas cuando un player baja de nivel.... si yo quiero hacer items o que un jugador compre algo con la xp, no bajara de nivel por restarle la xp....
Mensajes: 22
Temas: 10
Registro en: Jun 2017
Reputación:
0
:'v nose un carajo necesito ayuda no se por donde empezar xD
|