←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Klasy +Exp Bedzie dzialać?

Locked

Optymalny193's Photo Optymalny193 16.05.2011

Zaszka dal mi mod na klasy ja dodalem exp i mam pytanie czy all bedzie dobrze chodzilo

Dam po pare plusow

Dodano 17 maj 2011 - 13:45:
refresh

Attached Files

Quote

Zaszka's Photo Zaszka 17.05.2011

/* *************************C*H*A*N*G*E*L*O*G***********************************/
/* 0.01 - Silnik wykonany przez Zaszka - dzięki ********************************/
/* 0.02 - Juz wkrtotce *********************************************************/


#include <amxmodx>
#include <amxmisc>
#include <nvault>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
#include <ColorChat>

new const gszPlugin[] = "X-HNS Mod";
new const gszVersion[] = "0.01";
new const gszAuthor[] = "Zaszka";
new const gszPrefix[] = "[X-HNS Mod]";
new const gszPrefixShop[] = "[X-HNS | Sklep]";

new iExp[33],iLvl[33];
new cKill,g_vault;

new const LEVELS[20] = {0,200,400,600,800,1000,1200,1400,1600,1800,2000,2200,2500,2800,3100,3500,4800,5600,6400,7800}
new const zycieklasy[] = { 100,1000,300,100,200 }

new const klasa[5][] = {
"Brak",//0
"Barbarynca",//1
"Mnich",//2
"Nekromanta",//3
"Paladyn VIP"//4
};
new klasagracza[33] = 0

public plugin_init(){
register_plugin(gszPlugin,gszVersion,gszAuthor)
register_clcmd("say /klasa","WybierzKlase")
register_clcmd("say_team /klasa","WybierzKlase")
RegisterHam(Ham_Spawn, "player", "Odrodzenie", 1);

register_event("DeathMsg", "EventSmierci", "a");

set_task(1.0, "hud_prethink",_,_,_, "b")

g_vault = nvault_open("TestExpSave");
cKill = register_cvar("amx_exp_kill", "20");


register_forward(FM_PlayerPreThink, "hud_prethink");

}
public WybierzKlase(id){
new menu;

if(is_user_bot(id))
menu = menu_create("Wybierz klase", "handle_klasa")
menu_additem(menu, " Barbarzynca");
menu_additem(menu, " Mnich");
menu_additem(menu, " Nekromanta");
menu_additem(menu, " Paladyn VIP");
menu_display(id,menu,0)
}
public handle_klasa(id,menu,item){
switch(item) {
case 0:{
klasagracza[id]=1
menu_destroy(menu)
return PLUGIN_HANDLED
}
case 1:{
klasagracza[id]=2
menu_destroy(menu)
return PLUGIN_HANDLED
}
case 2:{
klasagracza[id]=3
menu_destroy(menu)
return PLUGIN_HANDLED
}
case 3:{
if(!access(id,ADMIN_IMMUNITY))
{
set_hudmessage(255, 0, 0, -1.0, -1.0, 0, 6.0, 2.5);
show_hudmessage(id, "Nie masz Vipa");
}
else
{
klasagracza[id]=4
menu_destroy(menu)
return PLUGIN_HANDLED
}
}
}
menu_destroy(menu)
return PLUGIN_HANDLED
}

public EventSmierci(){
new iKiller = read_data(1);
new iVictim = read_data(2);
new gNumExp = get_pcvar_num(cKill);

new Kid[32],Vid[32];
get_user_name(iKiller, Kid, 31);
get_user_name(iVictim, Vid, 31);
if(get_user_team(iKiller) != get_user_team(iVictim)) {
iExp[iKiller] += gNumExp;
ColorChat(iKiller, GREEN, "%s^x01 Otrzymales^x04 %d^x01 expa za zabicie gracza^x04 %s",gszPrefix,gNumExp, Vid);
}

SprawdzPoziom(iKiller);
Zapisz(iKiller);
}

public Odrodzenie(id){
if(!is_user_connected(id) || !is_user_alive(id))
return;

set_user_health(id, zycieklasy[klasagracza[id]])
if(klasagracza[id]==3){
set_user_armor(id, 500)
}

}
public client_connect(id){
klasagracza[id]=0;
set_task(1.0,"hud",id)
Wczytaj(id);
}
public client_disconnect(id){
klasagracza[id]=0;
Zapisz(id);
}

public Zapisz(id){
new NameID[32];
get_user_name(id,NameID,31);

new vaultkey[64],vaultdata[256];
format(vaultkey,63,"%s-Mod",NameID);
format(vaultdata,255,"%i#%i#",iExp[id], iLvl[id]);
nvault_set(g_vault,vaultkey,vaultdata);
return PLUGIN_CONTINUE;
}
public Wczytaj(id){
new NameID[32];
get_user_name(id,NameID,31);

new vaultkey[64],vaultdata[256];
format(vaultkey,63,"%s-Mod",NameID);
format(vaultdata,255,"%i#%i#",iExp[id], iLvl[id]);
nvault_get(g_vault,vaultkey,vaultdata,255);
replace_all(vaultdata, 255, "#", " ");

new PEXP[32], PLEV[32];
iExp[id] = str_to_num(PEXP);
iLvl[id] = str_to_num(PLEV);
parse(vaultdata, PEXP, 31, PLEV, 31);
return PLUGIN_CONTINUE;
}

public SprawdzPoziom(id) {
while(iExp[id] >= LEVELS[iLvl[id]]){
ColorChat(id, GREEN, "%s^x01 Gratulacje! Awansowales na kolejny poziom [%i]!",gszPrefix,iLvl[id]+1)
iLvl[id] += 1
}
Zapisz(id);
}


public hud_prethink(id){
new text[512];

format(text,511,"Klasa: %s HP Klasy %d Poziom %i Exp %i", klasa[klasagracza[id]], zycieklasy[klasagracza[id]], iLvl[id], iExp)
message_begin(MSG_ONE,get_user_msgid("StatusText"),{0,0,0}, id)
write_byte(0)
write_string(text)
message_end()
}



I małe kody lepiej w sma stawiaj
Quote

Optymalny193's Photo Optymalny193 17.05.2011

No to jak to będzie dzialać to chyba Close.
Quote

mierzwi's Photo mierzwi 18.05.2011

wydaje się że all ok (tak na szybko przeleciałem) ale tyle modułów ?
Quote

  • +
  • -
diablix's Photo diablix 18.05.2011

wydaje się że all ok (tak na szybko przeleciałem) ale tyle modułów ?


Moduły ujdą ważne żebyś używał natywy zamiast stocków :)
Quote

mierzwi's Photo mierzwi 18.05.2011

albo natyw albo wpisujesz całą funkcję która ma być w te miejsce buehue ;d
Quote

Optymalny193's Photo Optymalny193 18.05.2011

To będzie rycerski mod niewiem ile będzie modulow
Quote
Locked