Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

35 страниц V  « 17 18 19 ... 33 34 »

Склад маленьких плагинов

, только отборная пузатая мелочь
Статус пользователя [WPMG]PRoSToTeM@
сообщение 17.8.2014, 11:52
Сообщение #341
Стаж: 13 лет

Сообщений: 1514
Благодарностей: 1025
Полезность: 725

Safety1st,
1) Почему константы, а не макросы/перечисления?
Код:
const PDATA_SAFE    = 2
const m_flRoomtype = 35
const OFFSET_LINUX = 4

2) Зачем это делать в PutInServer ?
Код:
public client_putinserver(id) {
set_task( 1.0 /* arbitrary delay */, "ResetRoomType", id )
}

public ResetRoomType(id) {
#define ROOMTYPE_NORMAL 0

// reset client's room_type cvar
message_begin( MSG_ONE, SVC_ROOMTYPE, _, id )
write_short(ROOMTYPE_NORMAL)
message_end()
}


Ведь можно сделать без тасков в Connect:
Код:
public client_connect(iClient) {
message_begin(MSG_ONE, SVC_ROOMTYPE, _, iClient)
write_short(ROOMTYPE_NORMAL)
message_end()
}

Или вообще "послать" мессагу в plugin_init с Destination MSG_INIT:
Код:
	engfunc(EngFunc_MessageBegin, MSG_INIT, SVC_ROOMTYPE, Float:{0.0, 0.0, 0.0}, 0);
write_short(ROOMTYPE_NORMAL);
message_end();


Отредактировал: [WPMG]PRoSToTeM@, - 17.8.2014, 12:02
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя [WPMG]PRoSToTeM@
сообщение 17.8.2014, 12:06
Сообщение #342
Стаж: 13 лет

Сообщений: 1514
Благодарностей: 1025
Полезность: 725

По идее хватит этого кода (или нет?):
Код:
#include <amxmodx>
#include <fakemeta>

public plugin_init() {
new iEnt = engfunc(EngFunc_FindEntityByString, FM_NULLENT, "classname", "env_sound");

if (!iEnt) {
engfunc(EngFunc_MessageBegin, MSG_INIT, SVC_ROOMTYPE, Float:{0.0, 0.0, 0.0}, 0);
write_short(0); // 0 = Normal (off)
message_end();
}
}


Отредактировал: [WPMG]PRoSToTeM@, - 17.8.2014, 15:02
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя S0m3Th1nG_AwFul!
сообщение 17.8.2014, 12:49
Сообщение #343
Стаж: 15 лет

Сообщений: 454
Благодарностей: 323
Полезность: 961

Цитата([WPMG]PRoSToTeM@ @ 17.8.2014, 14:06) *

По идее хватит этого кода (или нет?):
code
Код:
#include <amxmodx>
#include <fakemeta>

public plugin_init() {
new iEnt = engfunc(EngFunc_FindEntityByString, 0, "classname", "env_sound");

if (!iEnt) {
engfunc(EngFunc_MessageBegin, MSG_INIT, SVC_ROOMTYPE, Float:{0.0, 0.0, 0.0}, 0);
write_short(0); // 0 = Normal (off)
message_end();
}
}

Я, конечно, не эксперт в скриптинге, но мне показалось, что цель исходного плагина в том, чтобы на тех картах, где маппером предусмотрен тот или иной roomtype, он не удалялся, а продолжал работать; при этом на тех картах, где никакого roomtype нет, он, соответственно, принудительно сбрасывался у клиента на 0 (если предыдущая карта содержала таковой).
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя [WPMG]PRoSToTeM@
сообщение 17.8.2014, 13:15
Сообщение #344
Стаж: 13 лет

Сообщений: 1514
Благодарностей: 1025
Полезность: 725

Цитата(S0m3Th1nG_AwFul! @ 17.8.2014, 14:49) *
чтобы на тех картах, где маппером предусмотрен тот или иной roomtype, он не удалялся, а продолжал работать;

У меня ничего не удаляется и всё продолжает работать.
Цитата(S0m3Th1nG_AwFul! @ 17.8.2014, 14:49) *
при этом на тех картах, где никакого roomtype нет, он, соответственно, принудительно сбрасывался у клиента на 0 (если предыдущая карта содержала таковой).

Лучше сбрасывать всегда, даже если предыдущая карта не была с env_sound. (мало ли с каким room_type клиент зайдёт)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя S0m3Th1nG_AwFul!
сообщение 17.8.2014, 13:27
Сообщение #345
Стаж: 15 лет

Сообщений: 454
Благодарностей: 323
Полезность: 961

Цитата([WPMG]PRoSToTeM@ @ 17.8.2014, 15:15) *

У меня ничего не удаляется и всё продолжает работать.

Да, точно. Немного не то делал.

Отредактировал: S0m3Th1nG_AwFul!, - 17.8.2014, 13:29
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя S0m3Th1nG_AwFul!
сообщение 17.8.2014, 14:47
Сообщение #346
Стаж: 15 лет

Сообщений: 454
Благодарностей: 323
Полезность: 961

В общем, как обычно, всё оказалось не так просто, как хотелось бы. Провел несколько тестов.

Условия №1: не стоит никаких плагинов. Ставим карту cs_siege, заходим за CT - эхо слышно. Меняем карту на de_storm - эхо слышно. Меняем карту на de_dust - эхо слышно буквально в первые полсекунды после респауна, затем оно исчезает! Вопрос к знатокам — почему?
Условие №2: стоит плагин из #342 сообщения ([WPMG]PRoSToTeM@) - ситуация повторяется в точности, как и при условии №1. Приходится сделать вывод, что плагин всё-таки не функционирует.
Условие №3: стоит плагин из #340 сообщения (Safety1st). Ставим карту cs_siege, заходим за CT - эхо слышно. Меняем на de_storm - эхо НЕ слышно. Меняем на de_dust - эхо слышно полсекунды, затем оно исчезает (как в предыдущих двух условиях).

Отредактировал: S0m3Th1nG_AwFul!, - 17.8.2014, 14:49
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя [WPMG]PRoSToTeM@
сообщение 17.8.2014, 14:59
Сообщение #347
Стаж: 13 лет

Сообщений: 1514
Благодарностей: 1025
Полезность: 725

S0m3Th1nG_AwFul!, не затестил перед правкой, виноват FM_NULLENT crazy.gif (процитированная версия с нулями нормально работает)
На de_dust слышно в первые полсекунды из-за того что там есть env_sound и он срабатывает когда игрок попадает в его зону действия (при спавне).

Отредактировал: [WPMG]PRoSToTeM@, - 17.8.2014, 15:00
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя S0m3Th1nG_AwFul!
сообщение 17.8.2014, 15:07
Сообщение #348
Стаж: 15 лет

Сообщений: 454
Благодарностей: 323
Полезность: 961

Да, теперь всё вроде как работает.
Цитата
На de_dust слышно в первые полсекунды из-за того что там есть env_sound и он срабатывает когда игрок попадает в его зону действия (при спавне).

Получается как раз случай
Цитата
Код
/* there are some 'self-fixed' maps where there are env_sound entities
               with normal 'roomtype' property at both spawns */


Отредактировал: S0m3Th1nG_AwFul!, - 17.8.2014, 15:08
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя [WPMG]PRoSToTeM@
сообщение 17.8.2014, 15:08
Сообщение #349
Стаж: 13 лет

Сообщений: 1514
Благодарностей: 1025
Полезность: 725

В принципе, если уж так не нравится, что эхо слышно до попадания в зону спавна, то можно ресетить всегда:
Код:
#include <amxmodx>
#include <fakemeta>

public plugin_init() {
engfunc(EngFunc_MessageBegin, MSG_INIT, SVC_ROOMTYPE, Float:{0.0, 0.0, 0.0}, 0);
write_short(0); // 0 = Normal (off)
message_end();
}


Есть идея вообще сделать env_sound глобальным (т.е. чтобы сразу при заходе изменялся RoomType), но я не знаю есть ли карты на которых сразу несколько звуковых эффектов.

Отредактировал: [WPMG]PRoSToTeM@, - 17.8.2014, 15:13
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя C4acTbe
сообщение 17.8.2014, 15:11
Сообщение #350


Стаж: 13 лет

Сообщений: 880
Благодарностей: 408
Полезность: 706

А какой лучше все таки поставить? И разницы нету, вверху плагин должен быть прописан или нет?

Отредактировал: C4acTbe, - 17.8.2014, 15:11
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 17.8.2014, 15:12
Сообщение #351
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Цитата([WPMG]PRoSToTeM@ @ 17.8.2014, 13:52) *
1) Почему константы, а не макросы/перечисления?
Код
const PDATA_SAFE    = 2
const m_flRoomtype  = 35
const OFFSET_LINUX  = 4

Насколько я знаю, конечный результат одинаков: при компиляции константы заменятся на числа.

Возьму твой вариант: простота покоряет ;)


Цитата(S0m3Th1nG_AwFul! @ 17.8.2014, 16:47) *
Ставим карту cs_siege, заходим за CT - эхо слышно.

Плагин не убирает эффекты на картах, где они предусмотрены. Если их убрать - остальной функционал и не нужен. Вот код.

Цитата(S0m3Th1nG_AwFul! @ 17.8.2014, 16:47) *
Меняем карту на de_dust - эхо слышно буквально в первые полсекунды после респауна, затем оно исчезает! Вопрос к знатокам — почему?

В плагине этот момент описан. На de_dust у каждого спавна по своей env_sound , которые только сбросом и занимаются. Правда, think'ают каждые 0.75 с.

Цитата([WPMG]PRoSToTeM@ @ 17.8.2014, 17:08) *
Есть идея вообще сделать env_sound глобальным (т.е. чтобы сразу при заходе изменялся RoomType), но я не знаю есть ли карты на которых сразу несколько звуковых эффектов.

Есть, конечно: например, cs_siege. Но в определённый момент времени активен только 1 эффект: если игрок находится в зоне действия нескольких - побеждает тот, кто ближе.

Цитата(C4acTbe @ 17.8.2014, 17:11) *
А какой лучше все таки поставить?

На мой взгляд достаточно этого.

Цитата(C4acTbe @ 17.8.2014, 17:11) *
И разницы нету, вверху плагин должен быть прописан или нет?

Не-а.

Отредактировал: Safety1st, - 17.8.2014, 15:21
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя [WPMG]PRoSToTeM@
сообщение 17.8.2014, 15:21
Сообщение #352
Стаж: 13 лет

Сообщений: 1514
Благодарностей: 1025
Полезность: 725

Цитата(Safety1st @ 17.8.2014, 17:12) *
Насколько я знаю, конечный результат одинаков: при компиляции константы заменятся на числа.

Хм, странно, раньше когда проверял они становились глобальными переменными. Сейчас проверил, действительно заменяются на числа.

Отредактировал: [WPMG]PRoSToTeM@, - 17.8.2014, 15:22
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя S0m3Th1nG_AwFul!
сообщение 17.8.2014, 15:21
Сообщение #353
Стаж: 15 лет

Сообщений: 454
Благодарностей: 323
Полезность: 961

Цитата([WPMG]PRoSToTeM@ @ 17.8.2014, 17:08) *

В принципе, если уж так не нравится, что эхо слышно до спавна, то можно ресетить всегда:
code
Код:
#include <amxmodx>
#include <fakemeta>

public plugin_init() {
engfunc(EngFunc_MessageBegin, MSG_INIT, SVC_ROOMTYPE, Float:{0.0, 0.0, 0.0}, 0);
write_short(0); // 0 = Normal (off)
message_end();
}

Не, это явно не настолько мешает, чтобы бездумно обнулять румтайп на всех картах подряд -)
Цитата(C4acTbe)
А какой лучше все таки поставить?

В общем-то без разницы, первый (тот что больше пол количеству строк) в принципе чуть-чуть легче для игроков — не будут без надобности посылаться команды для обнуления румтайпа (снятия эхо). С другой стороны — если игрок пришел с другого сервера, где была "дефектная" карта — эхо у него всё-таки останется. Второй в этом плане надёжнее, но запросы на обнуление румтайпа будут приходить даже тогда, как в них нет нужды.
Цитата(Safety1st)
Плагин не убирает эффекты на картах, где они предусмотрены. Если их убрать - остальной функционал и не нужен.

Это я понял -) Просто описывал ход действий и последующих результатов, естественно это поведение я считал дОлжным и ожидаемым.

Отредактировал: S0m3Th1nG_AwFul!, - 17.8.2014, 15:22
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Safety1st
сообщение 17.8.2014, 15:24
Сообщение #354
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Цитата([WPMG]PRoSToTeM@ @ 17.8.2014, 17:21) *
Хм, странно, раньше когда проверял они становились глобальными переменными. Сейчас проверил, действительно заменяются на числа.

Я конструкцию const раньше с new const путал. Мб и у тебя так? ;)

Цитата(S0m3Th1nG_AwFul! @ 17.8.2014, 17:21) *
В общем-то без разницы

Вдруг он имел ввиду один из простотёминых ;)

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя [WPMG]PRoSToTeM@
сообщение 17.8.2014, 15:29
Сообщение #355
Стаж: 13 лет

Сообщений: 1514
Благодарностей: 1025
Полезность: 725

Цитата(S0m3Th1nG_AwFul! @ 17.8.2014, 17:21) *
Второй в этом плане надёжнее, но запросы на обнуление румтайпа будут приходить даже тогда, как в них нет нужды.

Можно также сказать о env_sound на карте de_dust. Да и там всего 3 байта отсылается.

Цитата(Safety1st @ 17.8.2014, 17:24) *
Я конструкцию const раньше с new const путал. Мб и у тебя так? ;)

Возможно.
Оффтоп
Кстати, строки лучше заносить в константы, чем в макросы (или просто напрямую использовать), т.к. если одна и та же строка несколько раз используется в коде, то в .DATA она будет в таком же количестве, при использовании константы (new const естественно) такого не будет происходить. Вот такая вот проблема с компилятором, мб багрепорт им кинуть?


Отредактировал: [WPMG]PRoSToTeM@, - 17.8.2014, 15:31
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя C4acTbe
сообщение 17.8.2014, 15:40
Сообщение #356


Стаж: 13 лет

Сообщений: 880
Благодарностей: 408
Полезность: 706

Цитата(S0m3Th1nG_AwFul! @ 17.8.2014, 15:21) *
В общем-то без разницы, первый (тот что больше пол количеству строк) в принципе чуть-чуть легче для игроков — не будут без надобности посылаться команды для обнуления румтайпа (снятия эхо). С другой стороны — если игрок пришел с другого сервера, где была "дефектная" карта — эхо у него всё-таки останется. Второй в этом плане надёжнее, но запросы на обнуление румтайпа будут приходить даже тогда, как в них нет нужды.

Про плагин Safety1st'a, понял, а вот от [WPMG]PRoSToTeM@, не очень, который из них лучше поставить?

Сообщение #342
Сообщение #349

Отредактировал: C4acTbe, - 17.8.2014, 15:40
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя [WPMG]PRoSToTeM@
сообщение 17.8.2014, 15:47
Сообщение #357
Стаж: 13 лет

Сообщений: 1514
Благодарностей: 1025
Полезность: 725

C4acTbe, https://c-s.net.ua/forum/index.php?showtopi...mp;#entry643964
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Safety1st
сообщение 17.8.2014, 15:50
Сообщение #358
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

2 PRoSToTeM@
Цитата([WPMG]PRoSToTeM@ @ 17.8.2014, 17:29) *
Кстати, строки лучше заносить в константы, чем в макросы (или просто напрямую использовать), т.к. если одна и та же строка несколько раз используется в коде, то в .DATA она будет в таком же количестве, при использовании константы (new const естественно) такого не будет происходить. Вот такая вот проблема с компилятором, мб багрепорт им кинуть?

Не, по логике так и должно быть: при компиляции на месте define'ов появляются строки, которые 'в .DATA будут в таком же количестве'.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя [WPMG]PRoSToTeM@
сообщение 17.8.2014, 15:56
Сообщение #359
Стаж: 13 лет

Сообщений: 1514
Благодарностей: 1025
Полезность: 725

Safety1st,
Оффтоп
По логике возможно да, но не по оптимизации (нафига одно и тоже несколько раз заносить?).


Кстати, Say Prefix на бета клиентах CS некорректно работает.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 17.8.2014, 16:03
Сообщение #360
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

2 PRoSToTeM@
Цитата([WPMG]PRoSToTeM@ @ 17.8.2014, 17:56) *
По логике возможно да, но не по оптимизации (нафига одно и тоже несколько раз заносить?).

Предлагаю посмотреть этот момент в оригинальном компиляторе, и если там исправлено - предложить замутить это же в AMXX-вом.


Цитата([WPMG]PRoSToTeM@ @ 17.8.2014, 17:56) *
Кстати, Say Prefix на бета клиентах CS некорректно работает.

Пофикси, ты уже руку набил на этом ;)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
35 страниц V  « 17 18 19 ... 33 34 »
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 2 гостей читают эту тему: