Помогите отредактировать исходник плагина (SMA)
KENTOS Дата: Понедельник, 17.03.2014, 13:53 | Сообщение # 1
Сообщения: 11
Награды: 0
Замечания:
Плагин отсчет до взрыва бомбы в HUD. Я не могу изменить в плагине HUD сообщение :До взрыва осталось 30 секунд. Сложность редактирования вызвала кодировка русского текста в sma. Исходник #include <amxmodx> #include <csx> #pragma semicolon 1 new g_Plugin[] = "Bomb Count Down HUD/Voice Timer"; new g_Version[] = "0.2 RuS"; new g_Author[] = "Mawe4ka117"; #define MAX_SECONDS 2 new g_Seconds[MAX_SECONDS] = {30, 20}; #define MAX_COUNT_SECONDS 6 new g_CountSeconds[MAX_COUNT_SECONDS] = {30, 29, 28, 20, 19, 18}; new g_bomb_timer, p_Cvar[5], g_maxplayers, g_msgid_SayText, g_HudSyncObj; public plugin_init() { register_plugin(g_Plugin, g_Version, g_Author); register_logevent("logevent_Round_Start", 2, "1=Round_Start"); register_logevent("logevent_Round_End", 2, "1=Round_End"); register_event("TextMsg", "logevent_Round_End", "a", "2&Game_w"); // %def_name% = Isminuotojo vardas... // %sec% = C4 laikas... // \n = Nauja eilute... p_Cvar[0] = register_cvar("amx_bcd_info_text", "До взрыва C4 осталось: %sec%\nСЃРёРєСѓРЅРґ..."); p_Cvar[1] = register_cvar("amx_bcd_def_text", "%def_name% обезвредил Р±РѕРјР±Сѓ!\nC4 остановлена РЅР° %sec% секунд(Рµ)."); p_Cvar[2] = register_cvar("amx_bcd_1st_color", "0 80 220"); // Melyna p_Cvar[3] = register_cvar("amx_bcd_2nd_color", "200 0 0"); // Raudona p_Cvar[4] = register_cvar("amx_bcd_3rd_color", "200 0 200"); // Rozine g_maxplayers = get_maxplayers(); g_msgid_SayText = get_user_msgid("SayText"); g_HudSyncObj = CreateHudSyncObj(); } public logevent_Round_Start() { remove_task(8038); g_bomb_timer = 0; } public logevent_Round_End() { remove_task(8038); set_task(0.1, "task_reset_bomb_timer"); } public task_reset_bomb_timer() { g_bomb_timer = 0; } public bomb_planted() { g_bomb_timer = get_cvar_num("mp_c4timer"); set_task(1.0, "task_bomb_timer", 8038, "", 0, "b"); for (new i = 1; i <= g_maxplayers; i++) { if (is_user_connected(i)) { new message[192]; format(message, charsmax(message), "^4[C4]^1^3 Бомба^1 была успешно установлена!"); message_begin(MSG_ONE, g_msgid_SayText, {0,0,0}, i); write_byte(i); write_string(message); message_end(); } } } public task_bomb_timer() { g_bomb_timer--; if (g_bomb_timer <= 0) remove_task(8038); else { new c4_msg[192], fix[8]; get_pcvar_string(p_Cvar[0], c4_msg, charsmax(c4_msg)); num_to_str(g_bomb_timer, fix, charsmax(fix)); replace(c4_msg, charsmax(c4_msg), "%sec%", fix); replace(c4_msg, charsmax(c4_msg), "\n", "^n"); for (new i = 0; i < MAX_SECONDS; i++) { if (g_bomb_timer == g_Seconds) { new temp[64]; num_to_word(g_bomb_timer, temp, 63); client_cmd(0, "spk ^"fvox/%s seconds until explosion^"", temp); } } for (new i = 0; i < MAX_COUNT_SECONDS; i++) { if (g_bomb_timer == g_CountSeconds ) { new string[192], red[8], green[8], blue[8]; get_pcvar_string(p_Cvar[2], string, charsmax(string)); parse(string, red, charsmax(red), green, charsmax(green), blue, charsmax(blue)); set_hudmessage(str_to_num(red), str_to_num(green), str_to_num(blue), -1.0, 0.82, 1, 0.0, 1.0, 0.0, 0.0, -1); ShowSyncHudMsg(0, g_HudSyncObj, c4_msg, g_bomb_timer); } } if (g_bomb_timer <= 10) { new string[192], red[8], green[8], blue[8]; get_pcvar_string(p_Cvar[3], string, charsmax(string)); parse(string, red, charsmax(red), green, charsmax(green), blue, charsmax(blue)); set_hudmessage(str_to_num(red), str_to_num(green), str_to_num(blue), -1.0, 0.82, 1, 0.0, 1.0, 0.0, 0.0, -1); ShowSyncHudMsg(0, g_HudSyncObj, c4_msg, g_bomb_timer); new temp[64]; num_to_word(g_bomb_timer, temp, 63); client_cmd(0, "spk ^"fvox/%s^"", temp); } } } public bomb_defused(defuser) { remove_task(8038); new def_msg[192], string[192], red[8], green[8], blue[8]; get_pcvar_string(p_Cvar[1], def_msg, charsmax(def_msg)); get_pcvar_string(p_Cvar[4], string, charsmax(string)); parse(string, red, charsmax(red), green, charsmax(green), blue, charsmax(blue)); new defuser_name[32], fix[8]; get_user_name(defuser, defuser_name, charsmax(defuser_name)); num_to_str(g_bomb_timer, fix, charsmax(fix)); replace(def_msg, charsmax(def_msg), "%def_name%", defuser_name); replace(def_msg, charsmax(def_msg), "%sec%", fix); replace(def_msg, charsmax(def_msg), "\n", "^n"); set_hudmessage(str_to_num(red), str_to_num(green), str_to_num(blue), -1.0, 0.25, 1, 0.0, 6.0, 0.0, 0.0, -1); ShowSyncHudMsg(0, g_HudSyncObj, def_msg, defuser_name, g_bomb_timer); } public bomb_explode() { remove_task(8038); } Как быть?)
Jolly_Joker Дата: Понедельник, 17.03.2014, 17:17 | Сообщение # 2
Сообщения: 115
Награды: 1
Замечания:
http://rghost.ru/53128323 вот глянь
Сообщение отредактировал Jolly_Joker - Понедельник, 17.03.2014, 17:54
KENTOS Дата: Понедельник, 17.03.2014, 19:35 | Сообщение # 3
Сообщения: 11
Награды: 0
Замечания:
Так-же показывает иероглифами я уже грежу на то,что возможно нету языка такого у меня. Я хотел поменять в этом плагине фразу Переменные: amx_bcd_info_text "До взрыва C4 осталось: %sec%\nсикунд..." На фразу "Бомба Ебанёт через: %sec%\nсикунд.." (Извеняюсь за мат.) Но поменять не могу так-как у меня это показывается вот так p_Cvar[0] = register_cvar("amx_bcd_info_text", "До взрыва C4 осталось: %sec%\nСЃРёРєСѓРЅРґ..."); p_Cvar[1] = register_cvar("amx_bcd_def_text", "%def_name% обезвредил Р±РѕРјР±Сѓ!\nC4 остановлена РЅР° %sec% секунд(Рµ)."); Помогите плизз.
nymbus2000 Дата: Понедельник, 17.03.2014, 20:27 | Сообщение # 4
Сообщения: 130
Награды: 0
Замечания:
Меняй кодировку файла на UTF-8 без BOM
CS: -=*{Vitaliy}*=- Skype: opa_nao_O
Jolly_Joker Дата: Вторник, 18.03.2014, 10:33 | Сообщение # 5
Сообщения: 115
Награды: 1
Замечания:
#include
#include #pragma semicolon 1 new g_Plugin[] = "Bomb Count Down HUD/Voice Timer"; new g_Version[] = "0.2 RuS"; new g_Author[] = "Mawe4ka117"; #define MAX_SECONDS 2 new g_Seconds[MAX_SECONDS] = {30, 20}; #define MAX_COUNT_SECONDS 6 new g_CountSeconds[MAX_COUNT_SECONDS] = {30, 29, 28, 20, 19, 18}; new g_bomb_timer, p_Cvar[5], g_maxplayers, g_msgid_SayText, g_HudSyncObj; public plugin_init() { register_plugin(g_Plugin, g_Version, g_Author); register_logevent("logevent_Round_Start", 2, "1=Round_Start"); register_logevent("logevent_Round_End", 2, "1=Round_End"); register_event("TextMsg", "logevent_Round_End", "a", "2&Game_w"); // %def_name% = Isminuotojo vardas... // %sec% = C4 laikas... // \n = Nauja eilute... p_Cvar[0] = register_cvar("amx_bcd_info_text", "До взрыва C4 осталось: %sec%\nсикунд..."); p_Cvar[1] = register_cvar("amx_bcd_def_text", "%def_name% обезвредил бомбу!\nC4 остановлена на %sec% секунд(е)."); p_Cvar[2] = register_cvar("amx_bcd_1st_color", "0 80 220"); // Melyna p_Cvar[3] = register_cvar("amx_bcd_2nd_color", "200 0 0"); // Raudona p_Cvar[4] = register_cvar("amx_bcd_3rd_color", "200 0 200"); // Rozine g_maxplayers = get_maxplayers(); g_msgid_SayText = get_user_msgid("SayText"); g_HudSyncObj = CreateHudSyncObj(); } public logevent_Round_Start() { remove_task(8038); g_bomb_timer = 0; } public logevent_Round_End() { remove_task(8038); set_task(0.1, "task_reset_bomb_timer"); } public task_reset_bomb_timer() { g_bomb_timer = 0; } public bomb_planted() { g_bomb_timer = get_cvar_num("mp_c4timer"); set_task(1.0, "task_bomb_timer", 8038, "", 0, "b"); for (new i = 1; i <= g_maxplayers; i++) { if (is_user_connected(i)) { new message[192]; format(message, charsmax(message), "^4[C4]^1^3 Бомба^1 была успешно установлена!"); message_begin(MSG_ONE, g_msgid_SayText, {0,0,0}, i); write_byte(i); write_string(message); message_end(); } } } public task_bomb_timer() { g_bomb_timer--; if (g_bomb_timer <= 0) remove_task(8038); else { new c4_msg[192], fix[8]; get_pcvar_string(p_Cvar[0], c4_msg, charsmax(c4_msg)); num_to_str(g_bomb_timer, fix, charsmax(fix)); replace(c4_msg, charsmax(c4_msg), "%sec%", fix); replace(c4_msg, charsmax(c4_msg), "\n", "^n"); for (new i = 0; i < MAX_SECONDS; i++) { if (g_bomb_timer == g_Seconds) { new temp[64]; num_to_word(g_bomb_timer, temp, 63); client_cmd(0, "spk ^"fvox/%s seconds until explosion^"", temp); } } for (new i = 0; i < MAX_COUNT_SECONDS; i++) { if (g_bomb_timer == g_CountSeconds) { new string[192], red[8], green[8], blue[8]; get_pcvar_string(p_Cvar[2], string, charsmax(string)); parse(string, red, charsmax(red), green, charsmax(green), blue, charsmax(blue)); set_hudmessage(str_to_num(red), str_to_num(green), str_to_num(blue), -1.0, 0.82, 1, 0.0, 1.0, 0.0, 0.0, -1); ShowSyncHudMsg(0, g_HudSyncObj, c4_msg, g_bomb_timer); } } if (g_bomb_timer <= 10) { new string[192], red[8], green[8], blue[8]; get_pcvar_string(p_Cvar[3], string, charsmax(string)); parse(string, red, charsmax(red), green, charsmax(green), blue, charsmax(blue)); set_hudmessage(str_to_num(red), str_to_num(green), str_to_num(blue), -1.0, 0.82, 1, 0.0, 1.0, 0.0, 0.0, -1); ShowSyncHudMsg(0, g_HudSyncObj, c4_msg, g_bomb_timer); new temp[64]; num_to_word(g_bomb_timer, temp, 63); client_cmd(0, "spk ^"fvox/%s^"", temp); } } } public bomb_defused(defuser) { remove_task(8038); new def_msg[192], string[192], red[8], green[8], blue[8]; get_pcvar_string(p_Cvar[1], def_msg, charsmax(def_msg)); get_pcvar_string(p_Cvar[4], string, charsmax(string)); parse(string, red, charsmax(red), green, charsmax(green), blue, charsmax(blue)); new defuser_name[32], fix[8]; get_user_name(defuser, defuser_name, charsmax(defuser_name)); num_to_str(g_bomb_timer, fix, charsmax(fix)); replace(def_msg, charsmax(def_msg), "%def_name%", defuser_name); replace(def_msg, charsmax(def_msg), "%sec%", fix); replace(def_msg, charsmax(def_msg), "\n", "^n"); set_hudmessage(str_to_num(red), str_to_num(green), str_to_num(blue), -1.0, 0.25, 1, 0.0, 6.0, 0.0, 0.0, -1); ShowSyncHudMsg(0, g_HudSyncObj, def_msg, defuser_name, g_bomb_timer); } public bomb_explode() { remove_task(8038); } Как уже писали сохраняй в кодировке UTF-8 и не забудь убрать галочку с BOM
Сообщение отредактировал Jolly_Joker - Вторник, 18.03.2014, 10:42
KENTOS Дата: Среда, 19.03.2014, 12:00 | Сообщение # 6
Сообщения: 11
Награды: 0
Замечания:
Спс помогли.