Page 1 of 1

HNS Training išsijungia serveris.

Posted: 2012 Jan 06 15:56
by Lukas
Naudoju šį hns training pluginą http://forums.alliedmods.net/showthread.php?p=780926
Ir kaip parašai /gc chate išsijungia serveris ir parašius rašo server shut down ar kažkaip pnš.
PS. Loguose nieko nerodo.

Re: HNS Training išsijungia serveris.

Posted: 2012 Jan 14 18:16
by aaarnas
O visa kita viskas normaliai?

Problema yra kažkur šioje vietoje:

Code: Select all

public GoCheckpoint(id) {    if (!get_pcvar_num(HnsTrainingOn) || !get_pcvar_num(CheckpointsAndGoChecksOn))         client_print(id, print_chat, "%L", LANG_PLAYER, "GOCHECKS_OFF", PREFIX);            else {        if (!gCheckpoint[id]) {            client_print(id, print_chat, "%L", LANG_PLAYER, "HAVE_NO_CHECKPOINT", PREFIX);            return PLUGIN_CONTINUE;        }        move_to_check(id);        gGoChecks[id]++;                set_pev(id, pev_flags, pev(id, pev_flags) | FL_DUCKING);        engfunc(EngFunc_SetSize, id, {-16, -16, -18}, {16, 16, 18});                set_hudmessage(255, 0, 0, 0.0, 0.63, 0, 6.0, 3.0);        show_hudmessage(id, "%s GoCheck #%d", PREFIX, gGoChecks[id]);                return PLUGIN_HANDLED;    }    return PLUGIN_HANDLED;} stock move_to_check(id) {    new vVelocity[3];    set_pev( id, pev_velocity, vVelocity );        new CurOrig[3];    get_user_origin(id,CurOrig);    message_begin(MSG_BROADCAST,SVC_TEMPENTITY);    write_byte(TE_TELEPORT);    write_coord(CurOrig[0]);    write_coord(CurOrig[1]);    write_coord(CurOrig[2]);     message_end();    message_begin(MSG_BROADCAST,SVC_TEMPENTITY);    write_byte(TE_TELEPORT);    write_coord(gCheckpointPos[id][0]);    write_coord(gCheckpointPos[id][1]);    write_coord(gCheckpointPos[id][2]);    message_end();     //Move To Checkpoint    engfunc(EngFunc_SetOrigin, id, gCheckpointPos[id]);    set_pev(id, pev_angles, gCheckpointAngle[id]);    set_pev(id, pev_fixangle, 1);        return PLUGIN_CONTINUE;}
Nėra nieko kito, kaip tiesiog užkomentuoti eilutes ir tikrinti kas nepatinka serveriui.

Pirmiausia reiktų užkomentuoti eilutę:
move_to_check(id); (// move_to_check(id);)

tada sukompiliuoti ir patikrinti ar nenulūžta serveris. Jei lūžta toliau, tai gali būti dėl:
engfunc(EngFunc_SetSize, id, {-16, -16, -18}, {16, 16, 18});

Jei nelūžta, tada problema move_to_check funkcijoje.
Pradžioje reiktų pamėginti viską užkomentuoti nuo message_begin iki message_end.

Problema galėtų būti, kad netinkamai aprašyta message, arba, kad išviečiamos dvi tokios pačios ( nes realiai nežinau, kaip TE_TELEPORT veikia ir ką daro).

Arba dėl:
engfunc(EngFunc_SetOrigin, id, gCheckpointPos[id]);

bet abejotina.

Tad testink.