Русское сообщество по скриптингу

Нужна помощь с Entity output

Все вопросы по скриптингу для SourceMod, помощь в редактировании плагинов.
Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптингу для SourceMod.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [pawn], в противном случае, если тег [pawn] не отображает ваш код, можно использовать тег [code].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sp плагина.

Нужна помощь с Entity output

Сообщение KLL » 14 окт 2010, 15:54

в одном скрипте от eventScripts есть такой код:

============================================================================================
block foggy
{
es_fire server_var(dan_user) env_fog_controller TurnOff //ЭТО ВРОДЕ ВЫКЛЮЧАЕТ
es_fire server_var(dan_user) env_fog_controller addoutput "fogcolor 0 0 0,-3,0" // ЭТО ЦВЕТ, НО НЕ ПОНЯТНО ЧТО ТАКОЕ -3 и 0
es_set dan_fs server_var(dan_darkness)
es_xmath dan_fs * -100
es_set dan_fe server_var(dan_fs)
es_xmath dan_fe + 10000
es_xset dan_str ""
es_xformatv dan_str "fogstart %1,-1,0" dan_fs //ТУТ ТОЖЕ НЕ ОЧЕНЬ ПОНЯТНО!
es_fire server_var(dan_user) env_fog_controller addoutput server_var(dan_str)
es_xformatv dan_str "fogend %1,-1,0" dan_fe //ТУТ ТОЖЕ НЕ ОЧЕНЬ ПОНЯТНО!
es_fire server_var(dan_user) env_fog_controller addoutput server_var(dan_str)
es_fire server_var(dan_user) env_fog_controller TurnOn //ЭТО ВРОДЕ ВКЛЮЧАЕТ
}
==============================================================================================
с помощью этого кода автор управляет яркостью на всей карте!
тоесть изменяет параметры env_fog_controller

подскажите как в SM задать параметры для env_fog_controller такие как цвет, старт, конец, включить, отключить!
Аватара пользователя
KLL
 
Сообщения: 41
Зарегистрирован: 25 сен 2010, 02:08
Благодарил (а): 3 раз.
Поблагодарили: 1 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Counter-Strike: Source

Re: Нужна помощь с Entity output

Сообщение DJ_WEST » 15 окт 2010, 18:49

Вы должны зарегистрироваться, чтобы видеть ссылки. ... controller
цвет

[pawn]fogcolor <color255[/pawn]
или Input:
[pawn]SetColor <color255[/pawn]
старт

[pawn]TurnOn[/pawn]
конец

[pawn]TurnOff[/pawn]

Для применения input'а есть функция: AcceptEntityInput
Для прописывания Keyvalues объекта есть функция: DispatchKeyValue, ее надо использовать лучше перед spawn'ом объекта. То есть CreateEntityByName, затем DispatchKeyValue, затем DispatchSpawn. Но может итак сработает, на существующем уже объекте, не помню.
Не пишите мне в ЛС: если вам нужна помощь на бесплатной основе. Любые вопросы на форум.
Аватара пользователя
DJ_WEST
Администратор
 
Сообщения: 3641
Зарегистрирован: 22 авг 2009, 00:38
Благодарил (а): 48 раз.
Поблагодарили: 2209 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Left 4 Dead
Left 4 Dead 2

Re: Нужна помощь с Entity output

Сообщение KLL » 16 окт 2010, 12:58

ok спасибо попробую разобраться!

Добавлено спустя 41 минуту 26 секунд:
:dntknw:
сделал так:
[pawn]
       
//найти фог
        new ent = FindEntityByClassname(-1, "env_fog_controller");
        if (ent == -1)
        {
         //если не найден то создать
          PrintToServer("Not Found a env_fog_controller!");
          ent = CreateEntityByName("env_fog_controller");
         //ЧТО НЕ ТАК СДЕЛАЛ?
          AcceptEntityInput(ent, "TurnOn");
          DispatchKeyValue(ent, "fogstart", "-100");
          DispatchKeyValue(ent, "fogend", "+10000");
          DispatchKeyValue(ent, "fogcolor", "0 255 0");
          DispatchSpawn(ent);
        }
 [/pawn]

В консоле выводит:

Not Found a env_fog_controller! на крте не найден
Found multiple fog controllers in the same level.это я так понял то что он зоздал его
L 10/16/2010 - 14:43:45: [SM] Native "AcceptEntityInput" reported: Entity -1 is not valid or is freed и тут же сообщает то что нет этой ентити, т.к индекс -1

я конечно не совсем понял про AcceptEntityInput т.е эта функция только задает параметры этой энтити то есть за отобрежение она не отвечает? так как в примере от евент скриптс там ведь используется Output сразу(ну в случае с см я так понял за Output отвечает DispatchKeyValue) или нет?
вообщем что не так делаю то? :dntknw:
Аватара пользователя
KLL
 
Сообщения: 41
Зарегистрирован: 25 сен 2010, 02:08
Благодарил (а): 3 раз.
Поблагодарили: 1 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Counter-Strike: Source

Re: Нужна помощь с Entity output

Сообщение DJ_WEST » 18 окт 2010, 18:16

AcceptEntityInput(ent, "TurnOn");

Лучше делать после:
[pawn]DispatchSpawn(ent); [/pawn]
[pawn]new ent FindEntityByClassname(-1"env_fog_controller"); [/pawn]
При поиске объекта, ты в своем коде найдешь только первый найденный, а если на карте их 10, то они не будут затронуты.
И после CreateEntityByName необходимо бы проверить создался ли объект:
[pawn]IsValidEntity(ent[/pawn]
Может он не создается по тем причинам, что его можно сделать только в Hammer редакторе. А затем если он создался, делать с ним операции.
Не пишите мне в ЛС: если вам нужна помощь на бесплатной основе. Любые вопросы на форум.
Аватара пользователя
DJ_WEST
Администратор
 
Сообщения: 3641
Зарегистрирован: 22 авг 2009, 00:38
Благодарил (а): 48 раз.
Поблагодарили: 2209 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Left 4 Dead
Left 4 Dead 2

Re: Нужна помощь с Entity output

Сообщение KLL » 20 окт 2010, 22:29

блин ступил, этот объект управляется обычными коммандами на сервере fog_enable fog_override и т.д, создавать и не нужно оказывается...
Аватара пользователя
KLL
 
Сообщения: 41
Зарегистрирован: 25 сен 2010, 02:08
Благодарил (а): 3 раз.
Поблагодарили: 1 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Counter-Strike: Source

Re: Нужна помощь с Entity output

Сообщение KLL » 22 окт 2010, 01:59

мдааа..
фиг там было.. писал писал все уже как надо сделал, тестил на listen сервере
бах решил попробывать на выделенном, нет таких комманд, не существуют пффффф

тогда другой вопрос! так как с AcceptEntityInput и т.д не получается ничего...

есть там комманда, ent_fire (почти как в примере от ескриптс у автора выше, он использует es_fire) тк вот эта комманда читерская, попробывал снять флаг FCVAR_CHEAT, комманда стала доступна НО.. она тупо перестала работать, даже когда просто ее вводиш в консоль теперь не появляется информация, как она работает т.е usage:................,
до снятия флага она показывала о себе инфу, так вот как можно вернуть эту комманду в стандартное состояние? просто я не знаю какие она еще флаги использовала кроме Чит,
и как так сделать чтобы эта комманда работала как обычно но ТОЛЬКО без флага FCVAR_CHEAT?
Аватара пользователя
KLL
 
Сообщения: 41
Зарегистрирован: 25 сен 2010, 02:08
Благодарил (а): 3 раз.
Поблагодарили: 1 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Counter-Strike: Source

Re: Нужна помощь с Entity output

Сообщение DJ_WEST » 22 окт 2010, 10:32

Это извращения, копай в сторону AcceptEntityInput, это тоже, что ent_fire input выполнять.
Не пишите мне в ЛС: если вам нужна помощь на бесплатной основе. Любые вопросы на форум.
Аватара пользователя
DJ_WEST
Администратор
 
Сообщения: 3641
Зарегистрирован: 22 авг 2009, 00:38
Благодарил (а): 48 раз.
Поблагодарили: 2209 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Left 4 Dead
Left 4 Dead 2

Re: Нужна помощь с Entity output

Сообщение KLL » 22 окт 2010, 14:50

Да тоже, так думаю.. часа 2 сидел разбирался в дампах, кажется Нашол нужные пропы, но они тоже без sv_cheats не работают ( всё было бы проще если бы этот объект env_fog_controller, создавался, но не в какую, сколько и как только не пытался, и при старте карты, и Пробывал даже на эвенте поднятия оружия, никак.. при проверке выдает индекс -1, а input`у нужен индекс этого фога, вообще я так и не понял, вроде на сколько из маппинга помню достаточно одного этого объекта на всей карте, однако просто так он создаваться не хочет, приходится выдавать каждому клиенту как например обычное оружее, с помощью GivePlayerItem, но и тут косяки свои думал может выдать , а потом на клиенте инпут применить, тоже не получается, вот сейчас Нашол пропы на объекте CCSPlayer которые отвечают за фог, и опять же при выключенной св читс, ничего не применяется (
Аватара пользователя
KLL
 
Сообщения: 41
Зарегистрирован: 25 сен 2010, 02:08
Благодарил (а): 3 раз.
Поблагодарили: 1 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Counter-Strike: Source

Re: Нужна помощь с Entity output

Сообщение KLL » 25 окт 2010, 08:41

Вообщем с этим туманом оказалось все сложно, оказалось способами СМ его нельзя создать на карте, чтобы он был для всех один, поэтому нужно выдавать каждому... и использовать эту комманду ent_fire! наткнулся на форуме см там Байлопан даже написал то что выход только с этой коммандой, потому что индекс не возвращает, а без индекса никак!

теперь вот что, эта комманда читерская, я снял вроде влаг FCVAR_CHEAT таким способом:

[pawn]  new realflags = GetCommandFlags("ent_fire");
  SetCommandFlags("ent_fire", realflags &~FCVAR_CHEAT); [/pawn]
но почему все равно требует sv_cheats 1? объясни пожалуйста как сделать чтобы не просила sv_cheats? или снятие флагов помогает только для того чтобы античиты не считали ее читерской, и чтобы каждый раз чтобы ее использовать нужно вкючать на время sv_cheats?
Аватара пользователя
KLL
 
Сообщения: 41
Зарегистрирован: 25 сен 2010, 02:08
Благодарил (а): 3 раз.
Поблагодарили: 1 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Counter-Strike: Source

Re: Нужна помощь с Entity output

Сообщение DJ_WEST » 25 окт 2010, 10:32

но почему все равно требует sv_cheats 1? объясни пожалуйста как сделать чтобы не просила sv_cheats? или снятие флагов помогает только для того чтобы античиты не считали ее читерской, и чтобы каждый раз чтобы ее использовать нужно вкючать на время sv_cheats?

Если не снялось, значит с этой команды нельзя снять флаг. Не со всеми так можно делать.
Вообщем с этим туманом оказалось все сложно, оказалось способами СМ его нельзя создать на карте, чтобы он был для всех один, поэтому нужно выдавать каждому... и использовать эту комманду ent_fire! наткнулся на форуме см там Байлопан даже написал то что выход только с этой коммандой, потому что индекс не возвращает, а без индекса никак!

Это все понятно, но выполняя ent_fire на объекте уже говорит о том, что он присутствует на карте, иначе бы ты это никак не сделал. А если он присутствует на карте, то его можно найти с помощью SM и этот id подставить в AcceptEntityInput.
Не пишите мне в ЛС: если вам нужна помощь на бесплатной основе. Любые вопросы на форум.
Аватара пользователя
DJ_WEST
Администратор
 
Сообщения: 3641
Зарегистрирован: 22 авг 2009, 00:38
Благодарил (а): 48 раз.
Поблагодарили: 2209 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Left 4 Dead
Left 4 Dead 2

След.

Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3