Difference: JMC02 (1 vs. 3)

Revision 32008-07-17 - _228_214_193_193_204_193_205

Line: 1 to 1
 
META TOPICPARENT name="JmcFalca"
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:
<
<
>
>
 Вот вам и нате. В самом деле, стоит какой-нибудь редиске узнать твой разделитель и то, что ты используешь эти триггера, как она/он сможет сделать большую каку без особых усилий. Половина триггеров летит к чертям из-за нехитрого трюка... разумеется, это нужно было срочно исправить. То, что предложил вместо этого Канила, для меня спорно: конечно, использовать переменные вместо масок во второй части триггера безопасно, но ведь эти переменные надо где-то брать, верно? Не прописывать же заранее их все, в том же ханте просто невозможно предсказать весь арсенал дверей, с которыми придется столкнуться frown Ну, а вписывая туда маску, мы снова возвращаемся к старой теме: #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 триггера (а я их обязательно помечу далее значком JmcImg01.gif ) запасной плана #act {The %1;%2 seems to be closed.} {#nop} {0} Тут недостаток заключается в непомерно раздувающемся в итоге профайле. P.S. Замечу, что в таком случае в процессе игры #multiactions должны быть обязательно отключены.
  3. Пойти в лоб и полностью обезопасить свой разделитель следующим триггером: #act {;} {#nop} {0} //#multiactions OFF
>
>
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 триггера (а я их обязательно помечу далее значком JmcImg01.gif ) запасной плана
#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 -- ' target smth;reci recall;st;e3n4en;#999 send 100000 rediska' '
>
>
Rediska tells you: 'Sarge -- ' target smth;reci recall;st;e3n4en;#999 send 100000 rediska' '
  ^^^^^^ 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 обезопасить себя таким образом, к сожалению, нереально frown Но и тут можно выкрутиться -- что ни говори, голь на выдумки хитра ;> А именно:
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? (или что-то в этом духе)
  Словом, так я их и переделаю, ну а значки будут предупреждать вас о возможности заставить вас выполнить односложную команду в результате чьих-то происков.

Revision 22008-07-16 - _228_214_193_193_204_193_205

Line: 1 to 1
Changed:
<
<
META TOPICPARENT name="JMC"
>
>
META TOPICPARENT name="JmcFalca"
  Подробное описание некоторый триггеров и алиасов для JMC [NEW] -= Triggers Security =-
Line: 69 to 69
 Словом, так я их и переделаю, ну а значки будут предупреждать вас о возможности заставить вас выполнить односложную команду в результате чьих-то происков.
Changed:
<
<
>
>
 

Revision 12008-07-16 - _228_214_193_193_204_193_205

Line: 1 to 1
Added:
>
>
META TOPICPARENT name="JMC"
Подробное описание некоторый триггеров и алиасов для JMC [NEW] -= Triggers Security =-

Тут действительно начинались сами триггера, пока не произошла одна интересная вещь. Впрочем, если вы впервые знакомитесь с документом, это место лучше проскипать и вернуться к нему, немножко въехав в триггера. Так вот, не все на самом деле так просто, как казалось вначале. На днях получаю от Канилы мессагу следующего содержания:

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....

Вот вам и нате. В самом деле, стоит какой-нибудь редиске узнать твой разделитель и то, что ты используешь эти триггера, как она/он сможет сделать большую каку без особых усилий. Половина триггеров летит к чертям из-за нехитрого трюка... разумеется, это нужно было срочно исправить. То, что предложил вместо этого Канила, для меня спорно: конечно, использовать переменные вместо масок во второй части триггера безопасно, но ведь эти переменные надо где-то брать, верно? Не прописывать же заранее их все, в том же ханте просто невозможно предсказать весь арсенал дверей, с которыми придется столкнуться frown Ну, а вписывая туда маску, мы снова возвращаемся к старой теме: #var {door} {door;rem gimlet;give gimlet kanila} Разве не то же самое? Используем переменную $door, и отдаем гимлет. Может, я чего-то не догоняю, и Канилина технология работает по-другому, но для того, чтобы въехать, мне нужно увидеть рабочий триггер.

Покамест предложу несколько собственных выходов из создавшейся ситуации.

  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 триггера (а я их обязательно помечу далее значком JmcImg01.gif ) запасной плана #act {The %1;%2 seems to be closed.} {#nop} {0} Тут недостаток заключается в непомерно раздувающемся в итоге профайле. P.S. Замечу, что в таком случае в процессе игры #multiactions должны быть обязательно отключены.
  3. Пойти в лоб и полностью обезопасить свой разделитель следующим триггером: #act {;} {#nop} {0} //#multiactions OFF

Однако, тут тоже есть свои проблемы. Если, например, у лидера в префиксе окажется ваш разделитель, то реагировать на команды лидера вы не будете (см. Хождение в группе). Начало строки в таких триггерах использовать нельзя. Да и не только такой вариант возможен. Конечно, можно поступить следующим образом:

#act {;} {#nop} {1} #act {$leader -- ' $leadpref all up'} {ws} {0} // См. Regen #act {$leader -- ' $leadpref target %1'} {target %1} {0} // См. Targetting #act {$leader ......

но тогда какой-нибудь редиске ничего не стоит посмотреть gwho, и если она/он в курсе, какой у лидера префикс, и знает, что мы используем такой триггер, то вполне может улучить момент и сказать нам:

Rediska tells you: 'Sarge -- ' target smth;reci recall;st;e3n4en;#999 send 100000 rediska' '

^^^^^^ Path to the bank in BH :> И если можно написать триггера вида

#act {tells you: %1;} {#nop} {0} #act {says: %1;} {#nop} {0}

и так далее, то от emote обезопасить себя таким образом, к сожалению, нереально frown Но и тут можно выкрутиться -- что ни говори, голь на выдумки хитра ;> А именно:

#act {$leader -- '$leadpref target %1 %2} {target %1} {4} //Приоритет выше стандартного #act {$leader -- '$leadpref target %1'} {target %1} //Стандартный приоритет (5)

Таким образом, если после слова target лидер дает в группу несколько слов, использоваться будет только первое из них, ну а если одно, то использоваться будет именно оно, без апострофа. Например, на указанный выше пример с переводом денег мы отреагируем командой target smth;reci, которая сама по себе никакой неприятной нагрузки уже не несет за исключением сбитого таргета. Единственная гадость, которую теперь можно устроить - уложить вас спать во время runa.

Этот же метод можно перенести на все остальные триггера. Напишем #act {The %1 %2 to be closed.} вместо #act {The %1 seems to be closed}, и в итоге вмeсто того, чтоб отдать Каниле гимлет, мы будем лицезреть фразу Remove what? (или что-то в этом духе)

Словом, так я их и переделаю, ну а значки будут предупреждать вас о возможности заставить вас выполнить односложную команду в результате чьих-то происков.

Информация взята из connect.mud.ru Если вы имеете контакты с авторами - свяжитесь с нами пожалуйста

META FILEATTACHMENT attachment="JmcImg01.gif" attr="h" comment="" date="1216202825" name="JmcImg01.gif" path="JmcImg01.gif" size="196" stream="JmcImg01.gif" tmpFilename="/var/tmp/CGItemp6981" user="_228_214_193_193_204_193_205" version="1"
 
This site is powered by the TWiki collaboration platform Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.