почему не работает функция ,_,

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
30
Реакции
0
Ошибка
нет ошибок
ОС
Linux
Amx Mod X
1.9.0
Билд
2753
ReGamedll
5.21.0.540-dev
Версия Metamod
Metamod-r v1.3.0.128
Список метамодулей
Currently loaded plugins:
description stat pend file vers src load unload
[ 1] Reunion RUN - reunion_mm_i386.so v0.1.0.92c ini Start Never
[ 2] AMX Mod X RUN - amxmodx_mm_i386.so v1.9.0.5294 ini Start ANY
[ 3] VoiceTranscoder RUN - VoiceTranscoder.so v2017RC5 ini ANY ANY
[ 4] MySQL RUN - mysql_amxx_i386.so v1.9.0.5294 pl2 ANY ANY
[ 5] SQLite RUN - sqlite_amxx_i386.so v1.9.0.5294 pl2 ANY ANY
[ 6] CS Team Changer RUN - cs_team_changer_amxx_i386.so v1.0.0.1 pl2 ANY ANY
[ 7] Fun RUN - fun_amxx_i386.so v1.9.0.5294 pl2 ANY ANY
[ 8] Engine RUN - engine_amxx_i386.so v1.9.0.5294 pl2 ANY ANY
[ 9] FakeMeta RUN - fakemeta_amxx_i386.so v1.9.0.5294 pl2 ANY ANY
[10] GeoIP RUN - geoip_amxx_i386.so v1.9.0.5294 pl2 ANY ANY
[11] CStrike RUN - cstrike_amxx_i386.so v1.9.0.5294 pl2 ANY ANY
[12] CSX RUN - csx_amxx_i386.so v1.9.0.5294 pl2 ANY ANY
[13] Ham Sandwich RUN - hamsandwich_amxx_i386.so v1.9.0.5294 pl2 ANY ANY
[14] ReAPI RUN - reapi_amxx_i386.so v5.21.0.248-dev pl2 ANY Never
14 plugins, 14 running
Список плагинов
Currently loaded plugins:
name version author file status
[ 1] Admin Base 1.9.0.5294 AMXX Dev Team admin.amxx debug
[ 2] Admin Commands 1.9.0.5294 AMXX Dev Team admincmd.amxx debug
[ 3] Menus Front-End 1.9.0.5294 AMXX Dev Team menufront.amxx debug
[ 4] Players Menu 1.9.0.5294 AMXX Dev Team plmenu.amxx debug
[ 5] Teleport Menu 1.9.0.5294 AMXX Dev Team telemenu.amxx debug
[ 6] Maps Menu 1.9.0.5294 AMXX Dev Team mapsmenu.amxx debug
[ 7] Admin Chat 1.9.0.5294 AMXX Dev Team adminchat.amxx debug
[ 8] Scrolling Message 1.9.0.5294 AMXX Dev Team scrollmsg.amxx debug
[ 9] Info. Messages 1.9.0.5294 AMXX Dev Team imessage.amxx debug
[ 10] Admin Votes 1.9.0.5294 AMXX Dev Team adminvote.amxx debug
[ 11] Restrict Weapons 1.9.0.5294 AMXX Dev Team restmenu.amxx debug
[ 12] maplist 1.0 author maplist.amxx debug
[ 13] bombtimer 1.0 author bombtimer.amxx debug
[ 14] damager 1.0 author damager.amxx debug
[ 15] killassist 1 author killassist.amxx debug
[ 16] nobdfrags 1.0 author nobdfrags.amxx debug
[ 17] chat 1.0 author chat.amxx debug
[ 18] po_test__game 1.0 author po_test__game.a debug
[ 19] smokethickness 1.0 author smokethickness. debug
[ 20] Map Spawns Editor 1.0.16 iG_os map_spawns_edit debug
[ 21] BS Creator 1.3 R3X bs_creator.amxx debug
[ 22] playerjoined 1.0 author playerjoined.am debug
[ 23] Weapon Model + Sound R 1.0 GHW_Chronic GHW_Weapon_Repl debug
[ 24] commandvoicechat 1.0 author commandvoicecha debug
[ 25] infochat 1.0 author infochat.amxx debug
25 plugins, 25 running
Автор плагина
это я :D
Версия плагина
1.0
Исходный код
#include <amxmodx>
#include <amxmisc>
#include <cs_team_changer>
#include <cstrike>
#include <fun>
#include <hamsandwich>

#pragma semicolon 1

new maps_count;

new rounds_started;
new rounds_ended;
new tr_wins;
new tr_wins_r;
new ct_wins;
new ct_wins_r;
new tr_team_name[16];
new ct_team_name[16];
new winner_team_name[16];
new current_map_name[256];
new next_map_name[256];

new mapskip_votes;
new bool:is_mapskip_voted[32];

new i1;
new i2;
new i3;
new i4;
new i5;

new bool:is_gamestart;
new bool:is_overtime;
new bool:is_gameend;

public plugin_init()
{
register_plugin("po_test__game", "1.0", "author");
register_cvar("mp_roundsinhalf", "7");
register_clcmd("say /mapskip", "mapskip");
register_clcmd("say_team /mapskip", "mapskip");
register_event("HLTV", "round_start", "a", "1=0", "2=0");
register_event("SendAudio", "tr_win", "a", "2&%!MRAD_terwin");
register_event("SendAudio", "ct_win", "a", "2&%!MRAD_ctwin");
register_event("SendAudio", "rounddraw", "a", "2&%!MRAD_rounddraw");
register_event("TextMsg", "restart", "a", "2=#Game_will_restart_in");
register_event("TextMsg", "game_commencing", "a", "2=#Game_Commencing");
RegisterHam(Ham_Spawn, "player", "set_money");
get_mapname(current_map_name, charsmax(current_map_name));
tr_team_name = "теры";
ct_team_name = "контры";
is_gamestart = false;
is_overtime = false;
is_gameend = false;
maps_count_func();
score_hud();
}

public score_hud()
{
set_hudmessage(128, 128, 128, 0.125, 0.0, 0, _, 0.5, _, 0.0, 1);
show_hudmessage(0, "мапа: %s", current_map_name);
set_dhudmessage(255, 255, 255, -1.0, 0.025, 0, _, 0.5, _, 0.0);
show_dhudmessage(0, "раунд: %d", rounds_started);
set_dhudmessage(255, 0, 0, 0.39, 0.0, 0, _, 0.5, _, 0.0);
show_dhudmessage(0, "теры");
set_dhudmessage(0, 0, 255, 0.56, 0.0, 0, _, 0.5, _, 0.0);
show_dhudmessage(0, "контры");
set_dhudmessage(255, 255, 255, -1.0, 0.0, 0, _, 0.5, _, 0.0);
show_dhudmessage(0, " >> %d : %d << ", tr_wins, ct_wins);

set_task(0.5, "score_hud");
}

public maps_count_func()
{
new maps_ini_dir[] = "addons/amxmodx/configs/maps.ini";
new maps_ini_file = fopen(maps_ini_dir, "rt");
new buffer[256];
new i;

while(!feof(maps_ini_file))
{
fgets(maps_ini_file, buffer, charsmax(buffer));
trim(buffer);

if(!buffer[0] || buffer[0] == EOS)
continue;

remove_quotes(buffer);

i++;
}
fclose(maps_ini_file);
maps_count = i;
}

public get_map_name(map_id)
{
new maps_ini_dir[] = "addons/amxmodx/configs/maps.ini";
new maps_ini_file = fopen(maps_ini_dir, "rt");
new buffer[256];
new i;

while(!feof(maps_ini_file))
{
fgets(maps_ini_file, buffer, charsmax(buffer));
trim(buffer);

if(!buffer[0] || buffer[0] == EOS)
continue;

remove_quotes(buffer);

i++;

if (map_id == i)
break;
}
fclose(maps_ini_file);
return buffer;
}

public rounddraw()
{
round_end();
}

public round_start()
{
if (is_gamestart == true)
rounds_started++;

if (is_gameend == true)
{
if (tr_wins > ct_wins)
winner_team_name = "теры";
if (ct_wins > tr_wins)
winner_team_name = "контры";

next_map_name = get_map_name(random_num(1, maps_count));

while (equal(next_map_name, current_map_name))
next_map_name = get_map_name(random_num(1, maps_count));

gameend_dhud();
set_task(5.0, "change_map");
}
}

public mapskip(id)
{
new mapskip_req_votes;

if (get_playersnum(0) < 4)
{
mapskip_req_votes = get_playersnum(0);
}

if (get_playersnum(0) >= 4)
{
new Float:mapskip_req_float = float(get_playersnum(0) / 2);
mapskip_req_votes = floatround(mapskip_req_float, floatround_ceil);
}

new client_name[128];
get_user_name(id, client_name, charsmax(client_name));

if (is_mapskip_voted[id] == true)
client_print(id, print_chat, " » ты уже проголосовал за пропуск мапы");
else
{
mapskip_votes++;

switch (get_user_team(id))
{
case CS_TEAM_T:
{
client_print_color(0, print_team_red, "^1 » игрок ^3%s ^1проголосовал за пропуск мапы, осталось ^4%d ^1голосов", client_name, (mapskip_req_votes - mapskip_votes));
client_print_color(0, print_team_default, "^1 » пиши ^4/mapskip^1, чтобы проголосовать за пропуск мапы");
}
case CS_TEAM_CT:
{
client_print_color(0, print_team_blue, "^1 » игрок ^3%s ^1проголосовал за пропуск мапы, осталось ^4%d ^1голосов", client_name, (mapskip_req_votes - mapskip_votes));
client_print_color(0, print_team_default, "^1 » пиши ^4/mapskip^1, чтобы проголосовать за пропуск мапы");
}
}

if (mapskip_votes == mapskip_req_votes)
{
next_map_name = get_map_name(random_num(1, maps_count));

while (equal(next_map_name, current_map_name))
next_map_name = get_map_name(random_num(1, maps_count));

mapskip_dhud();
set_task(5.0, "change_map");
}
}

is_mapskip_voted[id] = true;

return PLUGIN_HANDLED;
}

public change_map()
server_cmd("changelevel %s", next_map_name);

public mapskip_dhud()
{
if (i1 <= 9)
{
i1++;
set_task(0.5, "mapskip_dhud");
}

if (i1 == 11)
i1 = 0;

set_dhudmessage(255, 255, 255, -1.0, 0.5, 0, _, 0.5, _, 0.0);
show_dhudmessage(0, "текущая мапа пропускается");
set_dhudmessage(255, 255, 255, -1.0, 0.525, 0, _, 0.5, _, 0.0);
show_dhudmessage(0, "следующая мапа — %s", next_map_name);
set_dhudmessage(255, 255, 255, -1.0, 0.55, 0, _, 0.5, _, 0.0);
show_dhudmessage(0, "смена мапы через 5 секунд");
}

public gameend_dhud()
{
if (i1 <= 9)
{
i1++;
set_task(0.5, "gameend_dhud");
}

if (i1 == 11)
i1 = 0;

set_dhudmessage(255, 255, 255, -1.0, 0.5, 0, _, 0.5, _, 0.0);
show_dhudmessage(0, "игра завершена, победили %s", winner_team_name);
set_dhudmessage(255, 255, 255, -1.0, 0.525, 0, _, 0.5, _, 0.0);
show_dhudmessage(0, "следующая мапа — %s", next_map_name);
set_dhudmessage(255, 255, 255, -1.0, 0.55, 0, _, 0.5, _, 0.0);
show_dhudmessage(0, "смена мапы через 5 секунд");
}

public firsthalfend_dhud()
{
if (i2 <= 9)
{
i2++;
set_task(0.5, "firsthalfend_dhud");
}

if (i2 == 11)
i2 = 0;

set_dhudmessage(255, 255, 255, -1.0, 0.5, 0, _, 0.5, _, 0.0);
show_dhudmessage(0, "первая половина игры окончена");
set_dhudmessage(255, 255, 255, -1.0, 0.525, 0, _, 0.5, _, 0.0);
show_dhudmessage(0, "происходит смена сторон...");
}

public secondhalfend_dhud()
{
if (i3 <= 9)
{
i3++;
set_task(0.5, "secondhalfend_dhud");
}

if (i3 == 11)
i3 = 0;

set_dhudmessage(255, 255, 255, -1.0, 0.5, 0, _, 0.5, _, 0.0);
show_dhudmessage(0, "вторая половина игры окончена");
}

public overtimestart_dhud()
{
if (i4 <= 9)
{
i4++;
set_task(0.5, "overtimestart_dhud");
}

if (i4 == 11)
i4 = 0;

set_dhudmessage(255, 255, 255, -1.0, 0.525, 0, _, 0.5, _, 0.0);
show_dhudmessage(0, "счёт команд равный");
set_dhudmessage(255, 255, 255, -1.0, 0.55, 0, _, 0.5, _, 0.0);
show_dhudmessage(0, "играется дополнительный раунд");
}

public overtimeend_dhud()
{
if (i5 <= 9)
{
i5++;
set_task(0.5, "overtimeend_dhud");
}

if (i5 == 11)
i5 = 0;

set_dhudmessage(255, 255, 255, -1.0, 0.5, 0, _, 0.5, _, 0.0);
show_dhudmessage(0, "дополнительный раунд окончен");
}

public tr_win()
{
if (is_gamestart == true)
{
tr_wins++;
tr_wins_r = tr_wins;
round_end();
}
}

public ct_win()
{
if (is_gamestart == true)
{
ct_wins++;
ct_wins_r = ct_wins;
round_end();
}
}

public round_end()
{
if (is_gamestart == true)
rounds_ended++;

if (rounds_ended == get_cvar_num("mp_roundsinhalf"))
{
set_task(4.9, "teams_swap");
server_cmd("sv_restart 5");

firsthalfend_dhud();
}

if (rounds_ended == get_cvar_num("mp_roundsinhalf") * 2)
{
secondhalfend_dhud();

if (tr_wins == ct_wins)
{
set_task(4.9, "teams_swap");
server_cmd("sv_restart 5");
is_overtime = true;

overtimestart_dhud();
}
else
{
is_gameend = true;
}
}

if ((rounds_ended == ((get_cvar_num("mp_roundsinhalf") * 2) + 1)) && (is_overtime == true))
{
is_overtime = false;
is_gameend = true;

overtimeend_dhud();
}
}

public game_commencing()
{
is_gamestart = true;

rounds_started = 0;
rounds_ended = 0;
tr_wins = 0;
ct_wins = 0;
}

public restart()
{
if (is_gamestart == false)
{
rounds_started = 0;
rounds_ended = 0;
tr_wins = 0;
ct_wins = 0;
}
}

public teams_swap()
{
tr_wins = ct_wins_r;
ct_wins = tr_wins_r;

new players_ids[32];
new players_count;
new i;

get_players(players_ids, players_count, "h");

for (i = 0; i <= players_count; i++)
{
switch (get_user_team(players_ids[i]))
{
case CS_TEAM_T: cs_set_team(players_ids[i], CSTEAM_CT);
case CS_TEAM_CT: cs_set_team(players_ids[i], CSTEAM_TERRORIST);
}
}
}

public set_money(id)
{
if (is_overtime == true)
cs_set_user_money(id, 9999999, 0);
}

public client_disconnected()
{
if (get_playersnum(0) < 2)
{
is_gamestart = false;

rounds_started = 0;
rounds_ended = 0;
tr_wins = 0;
ct_wins = 0;
}
}
компилятор всё компилирует без ошибок.
у себя на ноутбуке установлен сервак (ReHLDS, чистый, amxmodx 1.9.0), чтобы тестировать плагины, перед тем, как на сервак загружать
сам плагин ведёт себя отлично, кроме одной функции: mapskip
на ноутбуке всё работает нормально, а вот на серваке — ноль реакции, как будто функции не существует :(

в чём здесь вообще проблема??

прикреплены два изображения:
1. — работа плагина на ноутбуке
2. — работа плагина на серваке
 
В этой теме было размещено решение! Перейти к решению.

Download all Attachments

  • 1.9 MB Просмотры: 94
  • 1.3 MB Просмотры: 94
Последнее редактирование:
Сообщения
3,581
Реакции
1,569
Помог
137 раз(а)
Поищи ошибки в логах, возможно при старте карты, не может быть чтобы молча не работало.
 
Сообщения
839
Реакции
519
Помог
12 раз(а)
1.проверь запущен ли плагин вообще
2.поставь плагин по списку выше всех остальных для проверки, возможно стоит чат менеджер блокирующий чтение команд say
 
Сообщения
30
Реакции
0
BalbuR, ТОЧНО))
плагин chat.amxx у меня же ретурнит плагин_хандлед, я что-то даже уже и забыл :DD
 
Последнее редактирование модератором:
Статус
В этой теме нельзя размещать новые ответы.

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу