←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

edytowany plugin crashuje serwer

Locked

  • +
  • -
freetu's Photo 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 :]

Attached Files


Edited by freetu, 19.12.2010 14:28.
Quote

  • +
  • -
Abes Mapper's Photo Abes Mapper 19.12.2010

Automatyczna wiadomość


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

  • +
  • -
no name's Photo 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!")
}

Edited by no name, 21.12.2010 15:23.
Quote
Locked