- Ошибка
-
нет ошибок
- ОС
- 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. — работа плагина на серваке
у себя на ноутбуке установлен сервак (ReHLDS, чистый, amxmodx 1.9.0), чтобы тестировать плагины, перед тем, как на сервак загружать
сам плагин ведёт себя отлично, кроме одной функции: mapskip
на ноутбуке всё работает нормально, а вот на серваке — ноль реакции, как будто функции не существует :(
в чём здесь вообще проблема??
прикреплены два изображения:
1. — работа плагина на ноутбуке
2. — работа плагина на серваке
В этой теме было размещено решение! Перейти к решению.
Download all Attachments
-
1.9 MB Просмотры: 94
-
1.3 MB Просмотры: 94
Последнее редактирование: