Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Changed: | ||||||||
< < | Подробное описание некоторый триггеров и алиасов для JMC [NEW] -= Triggers Security =- | |||||||
> > | Подробное описание некоторый триггеров и алиасов для JMC[NEW] - Triggers Security =- | |||||||
Тут действительно начинались сами триггера, пока не произошла одна интересная вещь. Впрочем, если вы впервые знакомитесь с документом, это место лучше проскипать и вернуться к нему, немножко въехав в триггера. Так вот, не все на самом деле так просто, как казалось вначале. На днях получаю от Канилы мессагу следующего содержания: | ||||||||
Changed: | ||||||||
< < | primer: eto u tebya v triggerah napisano: #action {The %1 seems to be closed.} {open %1; #if {$hunting=1} ht} | |||||||
> > | primer: eto u tebya v triggerah napisano:#action {The %1 seems to be closed.} {open %1; #if {$hunting=1} ht} | |||||||
teper' ya govoryu: Kanila says ' The door;rem gimlet;give gimlet kanila; seems to be closed.' i tot kto ispol'zuet eti triggeri sam otdaet mne gimlet.... i takih mest ochen' mnogo.... | ||||||||
Changed: | ||||||||
< < | ||||||||
> > | ||||||||
Вот вам и нате. В самом деле, стоит какой-нибудь редиске узнать твой разделитель и то, что ты используешь эти триггера, как она/он сможет сделать большую каку без особых усилий. Половина триггеров летит к чертям из-за нехитрого трюка... разумеется, это нужно было срочно исправить. То, что предложил вместо этого Канила, для меня спорно: конечно, использовать переменные вместо масок во второй части триггера безопасно, но ведь эти переменные надо где-то брать, верно? Не прописывать же заранее их все, в том же ханте просто невозможно предсказать весь арсенал дверей, с которыми придется столкнуться Ну, а вписывая туда маску, мы снова возвращаемся к старой теме: #var {door} {door;rem gimlet;give gimlet kanila} Разве не то же самое? Используем переменную $door, и отдаем гимлет. Может, я чего-то не догоняю, и Канилина технология работает по-другому, но для того, чтобы въехать, мне нужно увидеть рабочий триггер. | ||||||||
Changed: | ||||||||
< < | Покамест предложу несколько собственных выходов из создавшейся ситуации. | |||||||
> > | Покамест предложу несколько собственных выходов из создавшейся ситуации. | |||||||
Changed: | ||||||||
< < |
| |||||||
> > | 1) Многие триггера можно исправить, добавив одну незначительную деталь - знак начала новой строки.
Например, переделав
#act {The %1 seems to be closed.} {....} на #act {^The %1 seems to be closed.} {....} Однако, это возможно в единичных случаях, где у нас почти не встречается вариант <342hp 290ma 85mv>The door seems to be closed, а если и встречается, то от него зависит не очень много. 2) Писать для каждого insecure триггера (а я их обязательно помечу далее значком ) запасной плана #act {The %1;%2 seems to be closed.} {#nop} {0} Тут недостаток заключается в непомерно раздувающемся в итоге профайле. P.S. Замечу, что в таком случае в процессе игры #multiactions должны быть обязательно отключены. 3) Пойти в лоб и полностью обезопасить свой разделитель следующим триггером: #act {;} {#nop} {0} //#multiactions OFF | |||||||
Однако, тут тоже есть свои проблемы. Если, например, у лидера в префиксе окажется ваш | ||||||||
Changed: | ||||||||
< < | разделитель, то реагировать на команды лидера вы не будете (см. Хождение в группе). | |||||||
> > | разделитель, то реагировать на команды лидера вы не будете (см. Хождение в группе). | |||||||
Начало строки в таких триггерах использовать нельзя. Да и не только такой вариант возможен. Конечно, можно поступить следующим образом: | ||||||||
Changed: | ||||||||
< < | #act {;} {#nop} {1} #act {$leader -- ' $leadpref all up'} {ws} {0} // См. Regen #act {$leader -- ' $leadpref target %1'} {target %1} {0} // См. Targetting #act {$leader ...... | |||||||
> > | #act {;} {#nop} {1} #act {$leader -- ' $leadpref all up'} {ws} {0} // См. Regen #act {$leader -- ' $leadpref target %1'} {target %1} {0} // См. Targetting #act {$leader ...... | |||||||
но тогда какой-нибудь редиске ничего не стоит посмотреть gwho, и если она/он в курсе, какой у лидера префикс, и знает, что мы используем такой триггер, то вполне может улучить момент и сказать нам: | ||||||||
Changed: | ||||||||
< < | Rediska tells you: 'Sarge -- ' | |||||||
> > | Rediska tells you: 'Sarge -- ' | |||||||
^^^^^^ Path to the bank in BH :> И если можно написать триггера вида | ||||||||
Changed: | ||||||||
< < | #act {tells you: %1;} {#nop} {0} #act {says: %1;} {#nop} {0} | |||||||
> > | #act {tells you: %1;} {#nop} {0} #act {says: %1;} {#nop} {0} | |||||||
и так далее, то от emote обезопасить себя таким образом, к сожалению, нереально Но и тут можно выкрутиться -- что ни говори, голь на выдумки хитра ;> А именно: | ||||||||
Changed: | ||||||||
< < | #act {$leader -- '$leadpref target %1 %2} {target %1} {4} //Приоритет выше стандартного #act {$leader -- '$leadpref target %1'} {target %1} //Стандартный приоритет (5) | |||||||
> > | #act {$leader -- '$leadpref target %1 %2} {target %1} {4} //Приоритет выше стандартного #act {$leader -- '$leadpref target %1'} {target %1} //Стандартный приоритет (5) | |||||||
Таким образом, если после слова target лидер дает в группу несколько слов, использоваться будет только первое из них, ну а если одно, то использоваться будет именно оно, без апострофа. Например, на указанный выше пример с переводом денег мы отреагируем командой | ||||||||
Changed: | ||||||||
< < | target smth;reci, | |||||||
> > | target smth;reci, | |||||||
которая сама по себе никакой неприятной нагрузки уже не несет за исключением сбитого таргета. Единственная гадость, которую теперь можно устроить - уложить вас спать во время runa. Этот же метод можно перенести на все остальные триггера. Напишем | ||||||||
Changed: | ||||||||
< < | #act {The %1 %2 to be closed.} вместо #act {The %1 seems to be closed}, и в итоге вмeсто того, чтоб отдать Каниле гимлет, мы будем лицезреть фразу Remove what? (или что-то в этом духе) | |||||||
> > | #act {The %1 %2 to be closed.} вместо #act {The %1 seems to be closed}, и в итоге вмeсто того, чтоб отдать Каниле гимлет, мы будем лицезреть фразу Remove what? (или что-то в этом духе) | |||||||
Словом, так я их и переделаю, ну а значки будут предупреждать вас о возможности заставить вас выполнить односложную команду в результате чьих-то происков. |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
Changed: | ||||||||
< < |
| |||||||
> > |
| |||||||
Подробное описание некоторый триггеров и алиасов для JMC [NEW] -= Triggers Security =- | ||||||||
Line: 69 to 69 | ||||||||
Словом, так я их и переделаю, ну а значки будут предупреждать вас о возможности заставить вас выполнить односложную команду в результате чьих-то происков. | ||||||||
Changed: | ||||||||
< < | ||||||||
> > | ||||||||
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
Added: | ||||||||
> > |
Информация взята из connect.mud.ru Если вы имеете контакты с авторами - свяжитесь с нами пожалуйста
|