Witam,
Dzisiaj mam dość bardzo nietypowy problem i mam nadzieję iż ktoś mi z nim pomoże.
Mam na serwerze wgrany plugin wytrzymalośc perku.
Problem polega na tym iż kiedy mam 10/100 wytrzymałości perku i ktoś mnie zabije to serwer się crashuje oraz w lewym górnym rogu wyświetla się że zostałem 5 razy zabity.
Error logi :
L 11/24/2014 - 00:00:58: Start of error session. L 11/24/2014 - 00:00:58: Info (map "de_dust2") (file "addons/amxmodx/logs/error_20141124.log") L 11/24/2014 - 00:00:58: [AMXX] Displaying debug trace (plugin "QTM_CodMod.amxx") L 11/24/2014 - 00:00:58: [AMXX] Run time error 3: stack error L 11/24/2014 - 00:00:58: Unhandled dynamic native error L 11/24/2014 - 00:00:58: [AMXX] Displaying debug trace (plugin "wytrzymalosc_perku.amxx") L 11/24/2014 - 00:00:58: [AMXX] Run time error 10: native error (native "cod_get_user_perk") L 11/24/2014 - 00:00:58: [AMXX] [0] wytrzymalosc_perku_2610429.sma::Death (line 43) L 11/24/2014 - 00:07:14: [AMXX] Displaying debug trace (plugin "QTM_CodMod.amxx") L 11/24/2014 - 00:07:14: [AMXX] Run time error 3: stack error L 11/24/2014 - 00:07:14: Unhandled dynamic native error L 11/24/2014 - 00:07:14: [AMXX] Displaying debug trace (plugin "wytrzymalosc_perku.amxx") L 11/24/2014 - 00:07:14: [AMXX] Run time error 10: native error (native "cod_get_user_perk") L 11/24/2014 - 00:07:14: [AMXX] [0] wytrzymalosc_perku_2610429.sma::Death (line 43)
Plugin wytrzymalosc perków :
#include <amxmodx>
#include <codmod>
#define PLUGIN "[CODMOD] Wytrzymalosc w hud"
#define VERSION "2.0"
#define AUTHOR "QTM_Peyote"
#define ZADANIE_POKAZ_WYTRZYMALOSC 35200
new cvar_max_wytrzymalosc, cvar_uszkodzenia_za_smierc;
new wytrzymalosc_perku[33];
new SyncHudObj;
new wytrzymalosc[33];
/*---------
Aby korzystac z natywow
cod_get_perk_durability oraz cod_set_perk_durability
musisz dodac do swojego pluginu:
native cod_set_perk_durability(id, wytrzymalosc); // Ustawia wytrzymalosc perku gracza.
native cod_get_perk_durability(id); // Pobiera wytrzymalosc perku gracza.
-----------*/
public plugin_init(){
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("ResetHUD", "ResetHUD", "abe");
register_event("DeathMsg", "Death", "ade");
cvar_max_wytrzymalosc = register_cvar("cod_maxperkdurability", "10");
cvar_uszkodzenia_za_smierc = register_cvar("cod_perkdamage", "2");
SyncHudObj = CreateHudSyncObj();
}
public plugin_natives(){
register_native("cod_get_perk_durability", "PobierzWytrzymalosc", 1);
register_native("cod_set_perk_durability", "UstawWytrzymalosc", 1);
}
public cod_perk_changed(id, perk)
wytrzymalosc_perku[id] = perk? get_pcvar_num(cvar_max_wytrzymalosc): 0;
public Death(){
new id = read_data(2);
if(!is_user_connected(id)) return;
if(!cod_get_user_perk(id)) return;
new uszkodzenia_za_smierc = get_pcvar_num(cvar_uszkodzenia_za_smierc);
wytrzymalosc_perku[id] -= (wytrzymalosc_perku[id] > uszkodzenia_za_smierc)? uszkodzenia_za_smierc: wytrzymalosc_perku[id];
if(wytrzymalosc_perku[id] <= 0){
cod_set_user_perk(id, 0);
client_print(id, print_chat, "Twoj przedmiot ulegl zniszczeniu");
}
else{
client_print(id, print_chat, "Pozostala wytrzymalosc twojego przedmiotu to %i", wytrzymalosc_perku[id]);
}
}
public UstawWytrzymalosc(id, wartosc){
new max_wytrzymalosc = get_pcvar_num(cvar_max_wytrzymalosc);
wytrzymalosc_perku[id] = (wartosc > max_wytrzymalosc)? max_wytrzymalosc: wartosc;
}
public PobierzWytrzymalosc(id)
return wytrzymalosc_perku[id];
public PokazWytrzymalosc(id){
id -= ZADANIE_POKAZ_WYTRZYMALOSC;
if(!is_user_alive(id)){
remove_task(id+ZADANIE_POKAZ_WYTRZYMALOSC);
return;
}
set_hudmessage(255, 255, 255, 0.65, 0.00, 0, 0.0, 0.3, 0.0, 0.0);
ShowSyncHudMsg(id, SyncHudObj, "^n^n^n^n^n->Wytrzymalosc Perku: %i/%i", wytrzymalosc_perku[id], get_pcvar_num(cvar_max_wytrzymalosc));
}
public ResetHUD(id){
if(!task_exists(id+ZADANIE_POKAZ_WYTRZYMALOSC))
set_task(0.5, "PokazWytrzymalosc", id+ZADANIE_POKAZ_WYTRZYMALOSC, _, _, "b");
}
public cod_class_changed(id){
wytrzymalosc[id]=PobierzWytrzymalosc(id);
set_task(1.0, "USTAW",id);
}
public USTAW(id){
UstawWytrzymalosc(id,wytrzymalosc[id]);
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/
Siedze nad tym błędem już 3 dni i nic nie mogę wykombinować. Mam nadzieje że wy mi pomożecie ![]()
Załączone pliki
Użytkownik Astralol edytował ten post 24.11.2014 00:52


Dodatki SourceMod



Temat jest zamknięty









