Hola gente de AM, he creado un plugin que mas que todo sirve para hacer un poco mas "Divertido" su sv, ya que no tiene muchas bonificaciones(solo cuando llegas a lvl maximo), los que me vallan dando ideas o optimizaciones, los hire poniendo en la lista de gente que participo en el plugin, y ire actualizando el post.
Este plugin solo tiene ventaja cuando llegas a el nivel maximo.
Empezas siendo recuit(recluta), cuando llegas a 200 de xp(son 20 de xp cada vez que matas a alguien y -10 xp cada vez que te matan(limite 0 de xp)), pasas a rango Normal Player(player normal) que seria un player ni muy pro ni muy pete(para llegar al rango el mejor score a tener seria... seria 10/0
Luego con 500 de xp llegas al rango Advanced Player(jugador avanzado) como mejor score a tener seria 25/0
Con 1000 de xp llegas al rango Veteran Member(del foro xD)(Miembro veterano) como mejor score a tener seria 50/0
Atencion: cuando llegas al rango Veteran Member se te bonifica con 500 de vida extra(solo 1 vez) si estas vivo, y si no se espera a que lo estes...
Tambien se te beneficia con 5000 de plata... si quieres volver a tener estos beneficios deves escribir /reset que te resetea TODO, clase, nivel, xp y obviamente, te deja volver a usar esta ventaja, claro si llegas a la clase veteran member nuevamente jajajaja.
Tambien hay una cvar para que los admin puedan usar /resetall para resetear el score de TODOS los players.
Bueno en fin, aqui esta el code.
PHP Code:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>
#define PLUGIN "XP_MODE"
#define VERSION "1.1"
#define AUTHOR "sasske"
#define recuit 0
#define Normal_Player 1
#define Advanced_Player 2
#define Veteran 3
new cvar_enable
new cvar_AdminResetEnable
new iXp[33]
new iClass[33]
new iLevel[33]
new iMaxPlayers
new bonus_vida[33]
new bonus_money[33]
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /reset", "Reset")
register_clcmd("say /resetall", "Resetall")
cvar_enable = register_cvar("[XP_MODE] enable", "1")
cvar_AdminResetEnable = register_cvar("Admin_ResetClasses_ALL_enable", "1")
register_event("DeathMsg", "Muerte", "a")
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
iMaxPlayers = get_maxplayers()
}
public client_connect(id)
{
iXp[id] = 0
iClass[id] = recuit
iLevel[id] = 1
bonus_money[id] = 0
bonus_vida[id] = 0
}
public Muerte()
{
if(!is_user_alive(attacker) || !is_user_alive(victim) || victim == attacker || !get_pcvar_num(cvar_enable))
return
iXp[victim] -= 10
iXp[attacker] += 20
client_print(attacker, print_chat, "Ganas 20 de experiencia por matar")
client_print(victim, print_chat, "Pierdes 10 de experiencia por morir")
Check(attacker)
Check(victim)
set_task(1.0, "Print", atack)
set_task(0.3, "Check", atack)
}
public event_round_start()
{
if(!get_pcvar_num(cvar_enable))
return
for(new id = 1; id <= iMaxPlayers; id++)
{
if(!is_user_connected(id))
continue;
set_hudmessage(255, 0, 0, 0.0, 0.9, 0, 6.0, 12.0)
show_hudmessage(id, "Eres nivel %d, tu clase es: %s y tienes %d de xp", iLevel[id], iClass[id], iXp[id])
set_task(2.0, "Message", id)
}
}
public Message(id)
{
remove_task(id)
if(iClass[id] == recuit)
{
set_hudmessage(255, 0, 0, 0.0, 0.9, 0, 6.0, 12.0)
show_hudmessage(id, "Eres nivel %d, tu clase es: recuit y tienes %d de xp", iLevel[id], iXp[id])
}
else if(iClass[id] == Normal_Player)
{
set_hudmessage(255, 0, 0, 0.0, 0.9, 0, 6.0, 12.0)
show_hudmessage(id, "Eres nivel %d, tu clase es: Normal Player y tienes %d de xp", iLevel[id], iXp[id])
}
else if(iClass[id] == Advanced_Player)
{
set_hudmessage(255, 0, 0, 0.0, 0.9, 0, 6.0, 12.0)
show_hudmessage(id, "Eres nivel %d, tu clase es: Advanced_Player y tienes %d de xp", iLevel[id], iXp[id])
}
else if(iClass[id] == Veteran)
{
set_hudmessage(255, 0, 0, 0.0, 0.9, 0, 6.0, 12.0)
show_hudmessage(id, "Eres nivel %d, tu clase es: Veteran y tienes %d de xp", iLevel[id], iXp[id])
}
set_task(2.0, "Message", id)
}
public Print(id)
{
client_print(id, print_chat, "Obtines 20 de xp por matar a alguien")
}
public Check(id)
{
if(iXp[id] >= 200)
{
if(iClass[id] == recuit)
{
iClass[id] = Normal_Player
iLevel[id]++
client_print(id, print_chat, "Tienes %d de xp has ascendido al rango Normal Player", iXp[id], iClass[id])
}
}
else if(iXp[id] >= 500)
{
if(iClass[id] == Normal_Player)
{
iClass[id] = Advanced_Player
iLevel[id]++
client_print(id, print_chat, "Tienes %d de xp has ascendido al rango Advanced Player", iXp[id], iClass[id])
}
}
else if(iXp[id] >= 1000)
{
if(iClass[id] == Advanced_Player)
{
iClass[id] = Veteran
iLevel[id]++
client_print(id, print_chat, "Tienes %d de xp has ascendido al rango Veteran Member", iXp[id], iClass[id])
client_print(id, print_chat, "[XP_MODE] Has llegado a la clase maxima, se te beneficia con 500 de vida HASTA QUE MUERAS y 5000 de dinero, si te quieres resetear escribe /reset")
set_task(1.0, "vida", id)
if(bonus_money[id] == 0)
{
cs_set_user_money(id, cs_get_user_money(id) + 5000)
bonus_money[id] = 1
}
}
}
}
public vida(id)
{
if(is_user_alive(id) && bonus_vida[id] == 0)
{
set_user_health(id, get_user_health(id) + 500)
client_print(id, print_chat, "Tu bonus de 500 de vida se ha activado, que lo disfrutes, recuerda que para activarlo nuevamente deveras resetearte y llegar nuevamente a este rango")
bonus_vida[id] = 1
}
}
public Reset(id)
{
iXp[id] = 0
iClass[id] = recuit
iLevel[id] = 1
bonus_money[id] = 0
bonus_vida[id] = 0
client_print(0, print_chat, "has reseteado tus clases, perdiste tu XP, CLASE, y LEVEL")
}
public Resetall(id)
{
if(!get_pcvar_num(cvar_AdminResetEnable))
return
if(!is_user_admin(id))
return
new Name[33]
get_user_name(id, Name, charsmax(Name))
iXp[0] = 0
iClass[0] = recuit
iLevel[0] = 1
bonus_money[0] = 0
bonus_vida[0] = 0
client_print(0, print_chat, "El admin %s ha reseteado TODAS las clases, perdieron su XP, CLASE, y LEVEL", Name)
}
Gente que participo:
Por el momento solo yo(sasske) cuando alguien me ayude a optimizar el code, o me de ideas para agregar lo agrego a este lugar
Ahora tambien esta clans por hacer esto:
PHP Code:
public fw_PlayerKilled(attacker, victim)
{
if(!is_user_alive(attacker) || !is_user_alive(victim) || victim == attacker || !get_pcvar_num(cvar_enable))
return
iXp[victim] -= 10
iXp[attacker] += 20
client_print(attacker, print_chat, "Ganas 20 de experiencia por matar")
client_print(victim, print_chat, "Pierdes 10 de experiencia por morir")
Check(attacker)
Check(victim)
}