Написать выигрывшей и проигравшей команде в чате сообщение.
|
|
Karandachik
|
Дата: Пятница, 20.10.2023, 15:12:15 | Сообщение # 1 |
|
Сообщений: 60
Репутация: 3 [ +/- ]
|
|
Здравствуйте, подскажите можно ли при событии конца раунда написать победившим в чате типа, "Вы выиграли!", а проигравшим "Вы проиграли!"? Искала код и нашла только с определением команды победившего, а я хочу что бы не было этого определения и сразу писало в чате. Победил - одна надпись, проиграл другая.
|
|
| |
_wS_
|
Дата: Пятница, 20.10.2023, 15:36:24 | Сообщение # 2 |
|
Определить команду победителя же всё равно нужно, иначе как узнаем кому и что писать. В round_end событии есть переменная "winner". Обычно она равна 2 (выиграли T) или 3 (выиграли CT). Дальше просто цикл по всем игрокам и в зависимости от их команды что-то пишем :)
Код public void OnPluginStart() { HookEvent("round_end", Event_round_end, EventHookMode_Post); }
public void Event_round_end(Event event, const char[] name, bool dontBroadcast) { int winner_team = event.GetInt("winner"); if (winner_team > 1) { for (int client_team, client = 0; ++client <= MaxClients;) { if (IsClientInGame(client) && ((client_team = GetClientTeam(client)) > 1)) { PrintToChat(client, "Вы %s", client_team == winner_team ? "выиграли" : "проиграли"); } } } }
|
|
| |
Karandachik
|
Дата: Пятница, 20.10.2023, 15:52:08 | Сообщение # 3 |
|
Сообщений: 60
Репутация: 3 [ +/- ]
|
|
Цитата _wS_ ( ) Определить команду победителя же всё равно нужно, иначе как узнаем кому и что писать. В round_end событии есть переменная "winner". Обычно она равна 2 (выиграли T) или 3 (выиграли CT). Дальше просто цикл по всем игрокам и в зависимости от их команды что-то пишем :) Спасибо, но я пока научилась "кодить" на старом варианте сормода, Можете скинуть код в старом варианте? И сразу хотела спросить, можно ли разбить сообщения что я могла их раскрасить, по типа если выиграли теры то им в чате пишет одним цветом, а если кт то другим?
Код public Event_RoundEnd(Handle:event, const String:name[], bool:dontBroadcast) { new winner = GetEventInt(event, "winner"); if(winner <= 1) return;
for(new client = 1; client <= MaxClients; client++) if(IsClientInGame(client) && !IsFakeClient(client)) { тут писать сообщение } }
Вот такой код если правильно поняла выдаст сообщение всем кто выиграл, а тем кто не выиграл ничего не напишет?
Сообщение отредактировал Karandachik - Пятница, 20.10.2023, 15:58:58 |
|
| |
_wS_
|
Дата: Пятница, 20.10.2023, 16:17:02 | Сообщение # 4 |
|
Код public OnPluginStart() { HookEvent("round_end", Event_round_end, EventHookMode_Post); }
public Event_round_end(Handle:event, const String:name[], bool:dontBroadcast) { new winner_team = GetEventInt(event, "winner"); if (winner_team > 1) { for (new client_team, client = 0; ++client <= MaxClients;) { if (IsClientInGame(client) && ((client_team = GetClientTeam(client)) > 1)) { if (client_team == winner_team) { PrintToChat(client, "Вы выиграли"); } else{ PrintToChat(client, "Вы проиграли"); } } } } }
|
|
| |
Karandachik
|
Дата: Пятница, 20.10.2023, 16:24:36 | Сообщение # 5 |
|
Сообщений: 60
Репутация: 3 [ +/- ]
|
|
Цитата _wS_ ( ) public OnPluginStart() Спасибо вам огромное!!!!!!!!!!!!!Добавлено (20.10.2023, 18:48:47) --------------------------------------------- Может я что-то не так сделала,плагин работает все хорошо пока игрок не сменит команду. У меня стоит плагин баланса и если игрока кидает за другую команду он видит все наоборот. Ему пишет вы проиграли если его команда выиграла и наоборот. Как то это можно исправить?
|
|
| |
_wS_
|
Дата: Суббота, 21.10.2023, 10:51:49 | Сообщение # 6 |
|
Цитата Karandachik ( ) Как то это можно исправить? Исправлять скорее всего нужно балансировщик, чтобы он не сразу перекидывал, а перед началом нового раунда за 'x' сек (CreateTimer). Исправить можно просто перезагрузив балансировщик sm plugins reload x.smx где-то в .cfg, server.cfg например, т.к. порядок вызовов зависит от порядка загрузки plugin'ов.
|
|
| |
Karandachik
|
Дата: Суббота, 21.10.2023, 13:45:01 | Сообщение # 7 |
|
Сообщений: 60
Репутация: 3 [ +/- ]
|
|
Цитата _wS_ ( ) Исправлять скорее всего нужно балансировщик Спасибо вам за помощь, все работает как часы. Может вам уже сделать кнопку доната, люди бы смогли вас благодарить за помощь денюшкой.
|
|
| |