AMX MOD X
Суббота, 03.01.2026, 03:27:14



Приветствую Вас Гость | RSS
[ Главная ] [ Определить раунд - AMX Mod X Форум ] [ Регистрация ] [ Вход ]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/

  • Страница 1 из 1
  • 1
Модератор форума: slogic, AlMod  
Определить раунд
Immortal_BLGДата: Воскресенье, 16.03.2008, 06:04:53 | Сообщение # 1
Лейтенант
Группа: Пользователи
Сообщений: 56
Репутация: 2
Статус: Не в сети
Вобщем хочу попробывать доделать плагин, чтоб первый раунд после Game_Commencing был на ножах(only), второй на глоках(only), третий на юсп(only), четвертый на диглах(only), при всем при этом, чтоб игроки не могли ставить бомбу/спасать залогов и после всего этого делался рестартгейм(не рестартраунд) и начаналась обычная игра...

Вообщем помогите мне определить раунд, смотрел в исходник Vote Knife Plugin by Rains, так ниче и не понял...

<сообщение отредактировано администратором>

Прикрепления: first_round_kni.sma (0.7 Kb) · knife_only_vote.sma (6.2 Kb)


Сообщение отредактировал Immortal_BLG - Воскресенье, 16.03.2008, 06:12:20
 
VENДата: Воскресенье, 16.03.2008, 12:15:33 | Сообщение # 2
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
Структуру сообщений/событий можно просмотреть здесь: http://wiki.amxmodx.org/index.php/Half-Life_1_Game_Events

Итак, чтобы определить номер раунда, мы можем использовать событие/сообщение TeamScore (буквально: "КомандныйСчет").

Первый его аргумент - это имя команды (тип: строка), второй - очки/счет данной команды.

Таким образом, мы можем кэшировать счет каждой из команд, например, в глобальные/ую переменные/ую и слаживать полученные значения вместе. Это и будет по сути номер текущего раунда.

Важно использовать флаг register_event "a", который говорит о том, что сообщение "глобальное", т.е. посылается "движком" всем игрокам как единое.

Отмечу, что такое событие будет происходить непосредственно вконце раунда при выигрыше одной из команд, поэтому если сложить значения счета каждой из команд, мы получим номер "уходящего" раунда, т.е. того, который уже подошел к концу.

P.S.: Удалил часть сообщения. Причину смотри в пункте 2.3 общих правил всех разделов форума. Для обсуждения второго вопроса необходимо создать отдельную тему всоответствие с вышеупомянутыми правилами.

 
Immortal_BLGДата: Воскресенье, 16.03.2008, 13:30:17 | Сообщение # 3
Лейтенант
Группа: Пользователи
Сообщений: 56
Репутация: 2
Статус: Не в сети
VEN, пожалуйста если не затруднит напиши премер под пять раундов ПОЖАЛУЙСТА
И еще просьба: объясните мне пожалуйста каким образом вычесляются раунды в плагине knife only vote?


Сообщение отредактировал Immortal_BLG - Воскресенье, 16.03.2008, 13:36:02
 
VENДата: Воскресенье, 16.03.2008, 14:34:36 | Сообщение # 4
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
Code
#include <amxmodx>

public plugin_init() {
           register_event("TeamScore", "fwEvTeamScore", "a")
}

public fwEvTeamScore() {
           static szTeamNameChar[2], iTeamScore[2]
           read_data(1, szTeamNameChar, sizeof szTeamNameChar - 1)
           iTeamScore[szTeamNameChar[0] == 'C'] = read_data(2)
           if (szTeamNameChar[0] == 'T' && iTeamScore[0] + iTeamScore[1] == 5) {
                   // ...
           }
}
 
VENДата: Воскресенье, 16.03.2008, 15:09:09 | Сообщение # 5
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
Quote
каким образом вычесляются раунды в плагине knife only vote?
Автор использует неуместный ResetHUD метод. ResetHUD сообщение вызывается в нескольких случаях, в том числе и при спавне(появлении) игрока. Поэтому автор считает не количество раундов, а количество спавнов и прочих событий, связанных с ResetHUD, что конечно же неверно.

EDIT [2008/03/22 - 18:05]:

Для получения более подробной информации по данной теме рекомендую прочесть статью: События Player Spawn / Round Start / Round End / New Round (регистрирование спавна игрока и начала/конца/нового раунда).

 
Immortal_BLGДата: Воскресенье, 16.03.2008, 15:19:04 | Сообщение # 6
Лейтенант
Группа: Пользователи
Сообщений: 56
Репутация: 2
Статус: Не в сети
Спасибо VEN, я кстати читал на офф сайте, то что ты там писал о эвентах и конкретно о ResetHUD
вот по этой ссылке: http://forums.alliedmods.net/showthread.php?t=42159
 
marikcoolДата: Воскресенье, 16.03.2008, 18:42:41 | Сообщение # 7
Подполковник
Группа: Пользователи
Сообщений: 139
Репутация: 1
Статус: Не в сети
в ксдм модуле четко отловлен спавн игрока.
 
VENДата: Воскресенье, 16.03.2008, 19:51:22 | Сообщение # 8
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
Да, но он, в отличие от "Ham Sandwich" модуля, не входит в стандартную поставку AMX Mod X последней версии.
 
Immortal_BLGДата: Понедельник, 17.03.2008, 09:31:54 | Сообщение # 9
Лейтенант
Группа: Пользователи
Сообщений: 56
Репутация: 2
Статус: Не в сети
VEN, я тут посмотрел различные плагины с таким же способом определения раунда, и во всех заметил дополнение в коде.
В твоем случае:
Quote

iTeamScore[szTeamNameChar[0] == 'C'] = read_data(2)

Во всех других:
Quote

iTeamScore[(szTeamNameChar[0] == 'C') ? 0 : 1] = read_data(2)

Для чего это конкретно надо?
И кстати, только убрав строку
Code

szTeamNameChar[0] == 'T'

из
Code

if (szTeamNameChar[0] == 'T' && iTeamScore[0] + iTeamScore[1] == 5)

я добился работы плагина...


Сообщение отредактировал Immortal_BLG - Понедельник, 17.03.2008, 09:40:11
 
slogicДата: Понедельник, 17.03.2008, 19:51:12 | Сообщение # 10
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
Quote (VEN)
Да, но он в отличие от Ham Sandwich не входит в стандартную поставку AMX Mod X последней версии.

offtop/я бы не сказал, что это подарок, т.к. второй по популярности мод после CS/CZ - HLDM, который не поддерживается HS, не смотря на уговоры Sawce./

Edit by VEN: Нет, HS поддерживает HLDM.

 
VENДата: Понедельник, 17.03.2008, 21:12:34 | Сообщение # 11
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
off-topic: второй - не первый, хотя, спорить не стану, т.к. у меня свои "ощущения" всилу скриптинга всего лишь для одной HL модификации, за крайне редким исключением. EDIT: Нет, HS все-таки поддерживает HLDM.

Quote
И кстати, только убрав строку ... я добился работы плагина...
Метод, предоставленный мной, должен быть верен, и, кстати, я его тестировал, результаты положительные, поэтому проблема, скорее всего в недопонимании или в ошибках с твоей стороны.

Quote
Для чего это конкретно надо?
Отличие впринципе по сути только в незначительной эффективности моего метода по сравнению с приведенным тобой.

В моем случае немного менее эффективная аналогия будет выглядеть следующим образом:

Code
iTeamScore[szTeamNameChar[0] == 'C' ? 1 : 0] = read_data(2)
Различие в положении единицы и нуля в моем случае не важны/учтены.
 
  • Страница 1 из 1
  • 1
Поиск:

AMX Mod X Russian Community © 2006-2026