Jak chcesz to można to zrobić na zasadzie tabeli z Expem i odpowiednie rangi to odpowiedni lvl.
Więc próbowałem to zrobić lecz coś mi się nie udało i chciałem was prosić o poprawę kodu, jeśli to jest możliwe zmienić go na inny łatwiejszy
#include <amxmodx>
#include <amxmisc>
#include <csx>
#include <engine>
#include <nvault>
#define RANGI 21
#define PLUGIN "4fun KG"
#define VERSION "1.2"
#define AUTHOR "WiWa"
new GraczFrag[33],GraczPoziom[33],GraczRanga[33]
new g_vault
new const Rangi[RANGI][] =
{
"Wiesniak",
"Lama",
"Sierota",
"Owieczka",
"Staruszka",
"Cherlak",
"Kozak",
"Macho",
"Snajper",
"Rambo",
"Terminator",
"Wiesiek",
"Czesiek",
"Morfeusz",
"Wybraniec",
"Killer",
"Multi Killer",
"Owner",
"Cziter",
"POD BOT"
}
new const Poziomy[21] = { 29,59,119,209,324,499,729,999,1399,1849,2299,2899,3549,4199,4999,5899,6899,7999,9299,12000
}
public plugin_init(){
register_plugin(PLUGIN, VERSION, AUTHOR);
register_event("DeathMsg", "Smierc", "a")
g_vault = nvault_open("Rang Mod")
ZapiszFrag = register_cvar("ZapiszFrag","1")
}
public Smierc()
{
new Ofiara
while(GraczFrag[attacker] >= Poziomy[GraczPoziom[attacker]])
{
client_print(attacker, print_chat, "[Rang Mod] Gratulacje! Teraz jestes %s", nazwa_rangi[attacker]);
GraczPoziom[attacker] += 1
}
public ranga(id)
{
static stats[8], body[8]
get_user_stats(id, stats, body)
}
public client_PreThink(id)
{
new target;
new iHealth = get_user_health(id);
if(iHealth > 255) // credit to vittu
set_msg_arg_int(1, ARG_BYTE, 255);
if(is_user_alive(id))
{
set_hudmessage(0, 255, 0, 0.02, 0.23, 0, 0.0, 0.3, 0.0, 0.0);
ShowSyncHudMsg(id, CreateHudSyncObj(), "[Ranga: %s]^n[Zabojstw: %i]^n[Zginiec: %i]^n[Zdrowie: %d]", nazwa_rangi[id], get_user_frags(id), get_user_deaths(id), iHealth);
}
else
{
set_hudmessage(0, 255, 0, 0.6, -1.0, 0, 0.0, 0.3, 0.0, 0.0, 2);
ShowSyncHudMsg(id, CreateHudSyncObj(), "[Ranga: %s]^n[Zabojstw: %i]^n[Zginiec: %i]^n[Zdrowie: %d]", nazwa_rangi[target], get_user_deaths(target), iHealth)
}
return true;
}
public client_connect(id)
{
if(get_pcvar_num(ZapiszFrag) == 1)
{
WczytajDane(id)
}
}
public client_disconnect(id)
{
if(get_pcvar_num(ZapiszFrag) == 1)
{
/
ZapiszDane(id)
}
}
public ZapiszDane(id)
{
new AuthID[35] get_user_authid(id,AuthID,34)
new vaultklucz[64],vaultdane[256]
format(vaultklucz,63,"%s-Rang Mod",AuthID)
format(vaultdane,255,"%i#%i#",GraczXP[id],GraczPoziom[id])
nvault_set(g_vault,vaultklucz,vaultdane)
return PLUGIN_CONTINUE
}
public WczytajDane(id)
{
new AuthID[35] get_user_authid(id,AuthID,34)
new vaultklucz[64],vaultdane[256]
format(vaultklucz,63,"%s-Rang Mod",AuthID)
format(vaultdane,255,"%i#%i#",GraczXP[id],GraczPoziom[id])
nvault_get(g_vault,vaultklucz,vaultdane,255)
replace_all(vaultdane, 255, "#", " ")
new graczxp[32], graczpoziom[32]
parse(vaultdane, graczxp, 31, graczpoziom, 31)
GraczXP[id] = str_to_num(graczxp)
GraczPoziom[id] = str_to_num(graczpoziom)
return PLUGIN_CONTINUE
}


Dodatki SourceMod












