Może i to działa ale ja mam błędy przez to w dodatku w takich miejscach że aż nie mogę uwierzyć
L 09/23/2011 - 15:59:41: [
AMXX] Displaying debug trace (plugin "QTM_CodMod.
amxx")
L 09/23/2011 - 15:59:41: [
AMXX] Run time error 3: stack error
L 09/23/2011 - 15:59:41: [
AMXX] [0] QTM_CodMod.sma::ZapiszDane (line 891)
new vaultkey[128],vaultdata[256], identyfikator[64];
Cała funkcja
public ZapiszDane(id)
{
if(!klasa_gracza[id])
return PLUGIN_CONTINUE;
new vaultkey[128],vaultdata[256], identyfikator[64];
format(vaultdata, charsmax(vaultdata),"#%i#%i#%i#%i#%i#%i", doswiadczenie_gracza[id], poziom_gracza[id], inteligencja_gracza[id], zdrowie_gracza[id], wytrzymalosc_gracza[id], kondycja_gracza[id]);
new typ_zapisu = get_pcvar_num(cvar_typ_zapisu);
switch(typ_zapisu)
{
case 1: copy(identyfikator, charsmax(identyfikator), nazwa_gracza[id]);
case 2: get_user_authid(id, identyfikator, charsmax(identyfikator));
case 3: get_user_ip(id, identyfikator, charsmax(identyfikator));
}
format(vaultkey, charsmax(vaultkey),"%s-%s-%i-cod", identyfikator, nazwy_klas[klasa_gracza[id]], typ_zapisu);
nvault_set(vault,vaultkey,vaultdata);
return PLUGIN_CONTINUE;
}
L 09/23/2011 - 15:59:41: [
AMXX] [1] QTM_CodMod.sma::SprawdzPoziom (line 1005)
ZapiszDane(id);
Cała funkcja
public SprawdzPoziom(id)
{
new limit_poziomu = get_pcvar_num(cvar_limit_poziomu);
new bool:zdobyl_poziom = false, bool:stracil_poziom = false;
while(doswiadczenie_gracza[id] >= PobierzDoswiadczeniePoziomu(poziom_gracza[id]) && poziom_gracza[id] < limit_poziomu)
{
poziom_gracza[id]++;
punkty_gracza[id] = (poziom_gracza[id]-1)*2-inteligencja_gracza[id]-zdrowie_gracza[id]-wytrzymalosc_gracza[id]-kondycja_gracza[id];
zdobyl_poziom = true;
}
while(doswiadczenie_gracza[id] < PobierzDoswiadczeniePoziomu(poziom_gracza[id]-1))
{
poziom_gracza[id]--;
stracil_poziom = true;
}
if(poziom_gracza[id] >= limit_poziomu)
{
poziom_gracza[id] = limit_poziomu;
ResetujPunkty(id);
inteligencja_gracza[id] = 60;
zdrowie_gracza[id] = 100;
wytrzymalosc_gracza[id] = 70;
kondycja_gracza[id] = 70;
client_print(id, print_chat, "[COD:MW] Zdobyles ostatni 100 poziom ta klasa !");
client_print(id, print_chat, "[COD:MW] Twoje statystyki sa ustawione na maxa");
}
if(stracil_poziom)
{
ResetujPunkty(id);
client_cmd(id, "spk TM_CodMod/leveldown");
COD_MSG_NEWS_N;
ShowSyncHudMsg(id, SyncHudObj2,"Spadles do %i poziomu!", poziom_gracza[id]);
}
else if(zdobyl_poziom)
{
punkty_gracza[id] = (poziom_gracza[id]-1)*2-inteligencja_gracza[id]-zdrowie_gracza[id]-wytrzymalosc_gracza[id]-kondycja_gracza[id];
COD_MSG_NEWS_P;
ShowSyncHudMsg(id, SyncHudObj2,"Awansowales do %i poziomu!", poziom_gracza[id]);
client_cmd(id, "spk TM_CodMod/newlvl");
}
ZapiszDane(id);
if(awansuje_do[klasa_gracza[id]])
{
if(poziom_gracza[id] >= awanse[ZnajdzAwans(klasa_gracza[id], awansuje_do[klasa_gracza[id]])][2])
{
COD_MSG_NEWS_P;
ShowSyncHudMsg(id, SyncHudObj2, "Osiagajac poziom %i, twoja klasa awansowala do stopnia: %s!^nOtrzymales +15 do kazdej statystyki", poziom_gracza[id], nazwy_klas[awansuje_do[klasa_gracza[id]]]);
client_cmd(id, "spk QTM_CodMod/levelup");
new temp_int = inteligencja_gracza[id], temp_zdr = zdrowie_gracza[id], temp_kon = kondycja_gracza[id], temp_wyt = wytrzymalosc_gracza[id], temp_exp = doswiadczenie_gracza[id], temp_lvl = poziom_gracza[id];
nowa_klasa_gracza[id] = awansuje_do[klasa_gracza[id]];
UstawNowaKlase(id);
poziom_gracza[id] = temp_lvl;
doswiadczenie_gracza[id] = temp_exp;
wytrzymalosc_gracza[id] = temp_wyt;
zdrowie_gracza[id] = temp_zdr;
kondycja_gracza[id] = temp_kon;
inteligencja_gracza[id] = temp_int;
punkty_gracza[id] = (poziom_gracza[id]-1)*2-inteligencja_gracza[id]-zdrowie_gracza[id]-wytrzymalosc_gracza[id]-kondycja_gracza[id];
DajBronie(id);
ZastosujAtrybuty(id);
ZapiszDane(id);
}
}
}
L 09/23/2011 - 15:59:41: [
AMXX] [2] QTM_CodMod.sma::ObrazeniaPost (line 421)
SprawdzPoziom(attacker);
Cała funkcja
public ObrazeniaPost(id, idinflictor, attacker, Float:damage, damagebits)
{
if(!is_user_connected(attacker) || !klasa_gracza[attacker])
return HAM_IGNORED;
if(get_user_team(id) != get_user_team(attacker))
{
new doswiadczenie_za_obrazenia = get_pcvar_num(cvar_doswiadczenie_za_obrazenia);
while(damage>20)
{
damage -= 20;
doswiadczenie_gracza[attacker] += doswiadczenie_za_obrazenia;
}
}
SprawdzPoziom(attacker);
return HAM_IGNORED;
}
Użytkownik =ToRRent= edytował ten post 24.09.2011 12:06