| Yoko http://forum.yoko.com.ua/ |
|
| Как создать очередь кастов? http://forum.yoko.com.ua/viewtopic.php?f=3&t=7411 |
Page 1 of 1 |
| Author: | Sanch [ 2006-04-18 12:28:54 ] |
| Post subject: | Как создать очередь кастов? |
Собсно когда стоимость снаряжения выше стандартного и тебя пресуют 3 чела в окло, начинаю постоянно не на те кнопри жать и сам себе же касты сбиваю. Придумал как сделать выдержку перед кастом: Code: while uo.getglobal('cast') == '1'
Вот только хотелось бы создать как нить очередь кастов, либо через дополнительный скрипт, либо через глобальные переменные, вот только как это реализовать я хз, хочу спросить совета у экспертов, зарание благодарю. |
|
| Author: | CFA [ 2006-04-18 12:54:23 ] |
| Post subject: | Re: Как создать очередь кастов? |
единственное что приходит в голову, через set/getGlobal сделать очередь. пример есть тут, только тут не очередь, а стек. очередь будет в реализации посложнее. |
|
| Author: | CFA [ 2006-04-18 13:02:43 ] |
| Post subject: | Re: Как создать очередь кастов? |
накидал быстренько, но не проверял Code: sub fifoInit() |
|
| Author: | Sanch [ 2006-04-18 13:35:59 ] |
| Post subject: | |
Сори, но понимание чужих скриптов мне плохо дается, тк писать я их начал недавно, хотел бы задать несколько глупых вопросов: sub fifoPush(value) - откуда берется это vaule и что она делает, отдаленно я знаю что так переносятся переменные из одного скрипта в другой, при запуске второго из первого. uo.setGlobal('fifo' + str(head), value) - непонятен смылс такого извращенного задания переменной, что это дает? (head == tail) - скобки обязательны? return value - в паре своих скриптов использовал просто "return" для выклучения скрипт, что же делает тобой напианая строка я не понимаю. Оч признателен за помощь, но ты не мог бы в кратце изложить принцип работы сего творения? |
|
| Author: | CFA [ 2006-04-18 15:08:41 ] |
| Post subject: | |
Sanch wrote: sub fifoPush(value) - откуда берется это vaule и что она делает, отдаленно я знаю что так переносятся переменные из одного скрипта в другой, при запуске второго из первого. value - значение, которое надо положить в очередь. любая строка, например название каста - Greater Heal, Energy Bolt Sanch wrote: uo.setGlobal('fifo' + str(head), value) - непонятен смылс такого извращенного задания переменной, что это дает? в инжекте нету глобальных массивов. поэтому приходиться так вот извращаться. Sanch wrote: (head == tail) - скобки обязательны? точно не знаю, но вроде бы нет. просто привчка еще с паскаля Sanch wrote: return value - в паре своих скриптов использовал просто "return" для выклучения скрипт, что же делает тобой напианая строка я не понимаю. return можно использовать не тока для выхода из функии, но и для возврата резултата. например: Code: sub statCap() Sanch wrote: Оч признателен за помощь, но ты не мог бы в кратце изложить принцип работы сего творения? ну например Code: sub energyBolt() lightning, greaterHeal, energyBolt - забиндены на кнопки. они просто запихиваю в очередь строчку с описанием каста. castManager запущен постоянно. он пытаеться взять из очереди строку с описанием каста и если строка не пустая, то кастует. выдерживает паузу, и начинает с начала. fifoInit - просто инициализация переменных. fifoPush - ложит в очередь очередной элемент. просто создает очередную глобальную переменную fifoNNN - где NNN номер элемента fifoPop - возвращает элемент из очереди, который был туда положен раньше других (самый старый). иллюстрация работы очереди Code: начальное состояние |
|
| Author: | Grin [ 2006-04-18 18:48:03 ] |
| Post subject: | |
Ели прикинуть просто то лутше пользоватся не стеком... Потому что возникнет очередь и передить стек это будет дополнительная затрата мозгов во время пвп... Гораздо лутше сделать 1 глобальную переменую котораяне даст вам кастовать пока 100%не произойдет событие сведельствующие обокончании каста... Одноделочто это надокак то определять... в пвп привязыватся к изменению мваны очень черевато... в общем за висет от шарда... а в каждыйскрипт качста добавить переменую проверки... Для на дежности эту глобальную переменую можнообнулять как по событию так и по времени |
|
| Author: | Edred [ 2006-04-18 19:08:19 ] |
| Post subject: | |
В свое время я писал подобный боевой скрипт, потом он погиб безвозвратно на винче, идея была такая: 1. При старте инжекта создается глобальная переменная, в которую через пробел пишутся условные номера кастов (по собственной системе нумерации, я делал типа 41 - это четвертый уровень, первый закл и т.д.) В начале переменная пуста. В соседней переменной номер очередного каста (слова в первой переменной). И флаг занятости каста. 2. Далее у меня были бинды на касты, которые проверяли флаг каста, если занято - проверяли первую переменную, если пуста - записывали в нее свой номер и запускали скрипт на отложенный каст. Дальше все просто - скрипт на отложенный каст записывал в флаг занятости третье значение (не занято - 0, занято обычным кастом - 1, занято скриптом отложенного каста - 2), и начинал читать по словам переменную с кастами. При этом он выводил на экран принтом два следующих каста и счетчик времени. Был забинден еще маленький скриптик, который через глобалку передавал отложенному касту пропустить один каст или очистить всю очередь. По такому принципу. |
|
| Author: | CFA [ 2006-04-18 19:42:45 ] |
| Post subject: | |
Grin wrote: ...
вобщем согласен, очередь плохо себя будет вести довольно часто. я исполльзую глобальный таймер - в зависимости от того с чего кастуеться спелл - с регов, или с со скроллов - ставиться разная задержка до следующего каста. Code: sub setTimer(timerName, expireTime) |
|
| Author: | flake [ 2006-04-19 01:07:32 ] |
| Post subject: | |
Ребят, имхо это все лишние выкрутасы для дилетантов пвп. |
|
| Author: | Sanch [ 2006-04-19 09:09:23 ] |
| Post subject: | |
Quote: Ребят, имхо это все лишние выкрутасы для дилетантов пвп.
Те люди которые к делетантам не относятся просто обставляют ящиками и вызрывают экспложенами. |
|
| Author: | flake [ 2006-04-19 09:21:31 ] |
| Post subject: | |
Ну это уже особенности шардов. Но из своего опыта в пвп я понял, что где можно обойтись простым скриптом на каст, лучше не делать всяких циклов, очередей и т.п. |
|
| Author: | Sanch [ 2006-04-19 09:28:33 ] |
| Post subject: | |
Quote: Ну это уже особенности шардов.
Но из своего опыта в пвп я понял, что где можно обойтись простым скриптом на каст, лучше не делать всяких циклов, очередей и т.п. Имхо было бы оч неплохо если промежутки между кастами были по 100мсек а не по 500-1000 при использовании рук, чтобы при физле сразу кастовать а не пока до тебя дойдет что у тебя физл, это то же потеря где то в 500-1000мсек. А еще у нас на шарде не прокатывают скрипты на фс и лайтинги со скролов, тк есть такая вещь как антимагик класс, который зависит от армора на тебе, можешь ты по врагу кидать со скрола или нет. Хочу спросить, допустим в журнале появилось сообщение о касте, моно определить кто кастует, можно ли определить в кого? |
|
| Author: | flake [ 2006-04-19 09:32:07 ] |
| Post subject: | |
Когда ты привыкнешь, у тебя тоже будут на автомате пальцы, и получишь желанные 100мс. Ну может чуть больше В кого стреляют - никак. |
|
| Page 1 of 1 | All times are UTC+02:00 |
| Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |
|