←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

edytowany plugin crashuje serwer

Zablokowany

  • +
  • -
freetu - zdjęcie freetu 19.12.2010

Witam,
Mam następujący problem. Kolega edytował plugin, który działa tak:
Na daną flagę przydziela model czapki świątecznej. Osoba z flagą otrzymuje czapkę po wpisaniu na say /czapka. Po wpisaniu tego pokazuje się napis na środku że otrzymam czapkę w następnej rundzie. Osoba która nie posiada czapki po wpisaniu /czapka na say otrzymuje napis że nie posiada vipa.
Wydaje mi się że po wielokrotnym wpisaniu komendy /czapka serwer się crashuje (tym jest to spowodowane) Chciałbym abyście zerknęli na kod źródłowy i zobaczyli co jest nie poprawnie napisane oraz abyście poprawili to.
Dodam że nie licząc tych crashy plugin działa poprawnie, przydziela czapkę tym osobom które powinny mieć.
Żadnych cvarów nie mam wpisanych, bo chyba takowych nie ma
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

new g_Enable;
new g_bwEnt[33];
new czapka[33]
public plugin_init() {
register_plugin("Santa Hat", "1.1", "xPaw edited by ZooM");
register_cvar("santa_hat", "1.0", FCVAR_SERVER);
g_Enable = register_cvar("amx_santahat", "1");
register_concmd("say /czapka","czapeczka");
RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1);
}

public plugin_precache()
precache_model("models/santa_hat.mdl");

public czapeczka(player)
{
if(czapka[player] == 0)
{
czapczap(player)
}
}
public czapczap(player)
{
if(get_user_flags(player) & ADMIN_LEVEL_C)
{
if(g_bwEnt[player] > 0) engfunc(EngFunc_RemoveEntity,g_bwEnt[player]);
g_bwEnt[player] = 1;
czapka[player] = 1;
set_hudmessage(0, 212, 255, -1.0, 0.39, 0, 6.0, 12.0)
show_hudmessage(player, "W nastepnej rundzie dostaniesz czapke!")
}
else{
set_hudmessage(255, 0, 0, -1.0, -1.0, 0, 6.0, 12.0)
show_hudmessage(player, "Nie jestes VIP'em! Kup go na Patologia.net.pl")

}
}
public client_disconnect(player)
{
g_bwEnt[player] = 0
czapka[player] = 0
}
public fwHamPlayerSpawnPost( player ) {
if( !get_pcvar_num(g_Enable) )
return PLUGIN_HANDLED;

if(!is_user_alive( player ))
return PLUGIN_HANDLED;

if(g_bwEnt[player] == 1) {
g_bwEnt[player] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
set_pev(g_bwEnt[player], pev_movetype, MOVETYPE_FOLLOW);
set_pev(g_bwEnt[player], pev_aiment, player);
set_pev(g_bwEnt[player], pev_rendermode, kRenderNormal);
set_pev(g_bwEnt[player], pev_renderamt, 0.0);
engfunc(EngFunc_SetModel, g_bwEnt[player], "models/santa_hat.mdl");
}
return PLUGIN_CONTINUE;
}

@ faktycznie zapomniałem napisać w dobrym dziale. Przepraszam :]

Załączone pliki


Użytkownik freetu edytował ten post 19.12.2010 14:28
Odpowiedz

  • +
  • -
Abes Mapper - zdjęcie Abes Mapper 19.12.2010

Automatyczna wiadomość


Ten temat został przeniesiony z forum:
AMX Mod X -> Problemy
do
Scripting -> Problemy
Odpowiedz

  • +
  • -
no name - zdjęcie no name 21.12.2010


if(g_bwEnt[player] > 0) engfunc(EngFunc_RemoveEntity,g_bwEnt[player]);
g_bwEnt[player] = 1;
czapka[player] = 1;
set_hudmessage(0, 212, 255, -1.0, 0.39, 0, 6.0, 12.0)
show_hudmessage(player, "W nastepnej rundzie dostaniesz czapke!")


Jeśli dajesz IF to musisz dać klamry na początku i końcu. Powinno być


if(g_bwEnt[player] > 0)
{
engfunc(EngFunc_RemoveEntity,g_bwEnt[player]);
g_bwEnt[player] = 1;
czapka[player] = 1;
set_hudmessage(0, 212, 255, -1.0, 0.39, 0, 6.0, 12.0)
show_hudmessage(player, "W nastepnej rundzie dostaniesz czapke!")
}

Użytkownik no name edytował ten post 21.12.2010 15:23
Odpowiedz
Zablokowany