PDA

Просмотр полной версии : пожайлуста помогите с макросом.


Funt
29.05.2007, 16:26
Всем привет.Я хочу создать макрос,суть которого такова:
Игроку дают n-ое колличество zeny,а бот даёт этому игроку FP(ну как вариант хил,каст,и.т.д.)
Но я незнаю как узнать кто дал тебе стока-то денег.
А ещё,как узнать что тебе дали именно,скажем 3000z,а не 2500 и не 3500?
Подскажите пожайлуста!

4epT
30.05.2007, 13:34
читай гайд (http://ragbot.ru/forum/showthread.php?t=597)
смотри пример (http://ragbot.ru/forum/showthread.php?t=194)

ЗЫ: ну или раскошеливайся;)

Funt
30.05.2007, 15:41
Почитал...видел уже...
Вот у меня щас такой макрос..
automacro fp {
pm /fp/i
call {
do sp 479 $.lastpm 5
do c Have are nice day $.lastpm !
release fp
}
run-once 1
}
Так мне нуна узнать имя того кто дал деньги(как опция и сколько)...а вто примере всё просто если появляется в консоли сообщение о том что тебе дали N-Ое колво зеней,не важно кто,то он пишет в общий чат.

4epT
30.05.2007, 16:17
Funt, лучше бы ты особое внимаение уделил 1-й ссылке!
Прямой строчки кто те дал денег - нету.
Есть строчка когде кто-то положил деньги в сделку, например:
4epT added 3,000 z to Deal
чтобы автомакрос сработал на эту строчку, необходимо условие:
console /(.*) added (.*) z to Deal/
тогда переменная $.lastmatch1=4epT, а $.lastmatch2=3,000
А вот дальше думай!
Потомучто может быть случай когда те денег кинули в сделку, автомакрос запустился, а потом сделку отменили.

Gans
30.05.2007, 16:35
кстати, а из 3,000 может стоит сделать число? (на случай если кто кинет 3001).

4epT
30.05.2007, 16:37
Gans, конечно же стоит ;)
или можно изменить шаблон на:
console /(.*) added (.*),.*z to Deal/
тогда $.lastmatch2=3
а дальше поставить условие типо если $.lastmatch2 > 2, то...

Funt
30.05.2007, 16:37
Потомучто может быть случай когда те денег кинули в сделку, автомакрос запустился, а потом сделку отменили.
Тогда должно появится сообщение...Только я не помню какое.
Соответсвено,тогда мы отменяем макрос....
Чёрт а ты не мог бы поподробнее об переменно $.lastmatch сказать,а то я прочитал мануал,и что то не понял...
кстати, а из 3,000 может стоит сделать число?
Не понял,это о чём?как из 3000 сделать число?

4epT
30.05.2007, 16:42
пункт 16 (http://ragbot.ru/forum/showthread.php?t=597)

ЗЫ: ПАРАГРАФ 78 :D

Funt
30.05.2007, 16:59
читал!но не понял как это работает! :)
плиз обьясни.
P.s.зы: параграф 78
там вроде было тока 2 пункта=)

4epT
30.05.2007, 17:00
Funt, что тебе именно не понятно? стучи лучше в асю, номер есть

Funt
30.05.2007, 17:17
Мне не понятен вот этот момент:"Player (.*) \(.* is casting Extremity Fist on you"
за чем здесь ещё вот это \(?
В гайде написано,что это символ новой скобки,а зачем она здесь?

4epT
31.05.2007, 13:04
Мне не понятен вот этот момент:
за чем здесь ещё вот это \(?
В гайде написано,что это символ новой скобки,а зачем она здесь?
ты почитай по внимательнее
мы пытаемся выдрать имя из строчки:
Player 4epT (0) is casting Extremity Fist on you (time 920ms)
мы придумали шаблон:
"Player .* (0) is casting Extremity Fist on you (time 920ms)"
но он будет реагировать только когда 4epT определяется у бота под номером 0.
если будет писатсья
Player 4epT (3) is casting Extremity Fist on you (time 920ms)
то автомакрос уже не сработает
поэтому мы и придумали шаблон:
"Player (.*) \(.*is casting Extremity Fist on you"
т.е шаблон читается так:
1. слово Player
2. пробел
3. набор любых символов - имя
4. пробел
5. скобка открывается
6. набор любых символов, в нашем случае: "3) "
7. is casting Extremity Fist on you

Funt
31.05.2007, 22:16
А всё,понял,что-б выдрать только имя,а не номер за компанию.
Большое тебе спасибо,что обьяснил.Старею,стал забывать родной Basic :)