Вообще лучше не делать на скриптах то что можно сделать на TinTin, вот хороший счетчик экспы) придуманный не мной
вот из файла exp.set #alias {экспасброс} {оч; #script {jmc.SetVar("ExpMobExperience", 0); jmc.SetVar("ExpStartTime", (new Date).getTime()); jmc.SetVar("ExpNeedInit", 1);}} {Exp} #alias {экспа} {#script GlobalExpShowExp()} {Exp} #action {Ваш опыт повысился на %1 очк} {#math {ExpMobExperience} {$ExpMobExperience + %1}} {Exp} #action {Ваш опыт - %1 очк} {#script ExpOnReceivedCurExp(%1)} {Exp} #variable {ExpStartTime} {0} #variable {ExpExperience} {0} #variable {ExpMobExperience} {0} #variable {ExpBattleExperience} {0} #variable {ExpNeedInit} {1} #group local Exp #group enable Exp а вот скрипты из файла exp.scr function ExpOnReceivedCurExp(exp) { if (jmc.GetVar("ExpNeedInit") == 1) { jmc.SetVar("ExpExperience", exp); jmc.SetVar("ExpNeedInit", 0); } else { jmc.SetVar("ExpBattleExperience", exp - jmc.GetVar("ExpExperience") - jmc.GetVar("ExpMobExperience")); } } function GlobalExpShowExp() { dt = new Date; var span = (dt.getTime() - jmc.GetVar("ExpStartTime")) / 1000 / 60; jmc.ShowMe("Набрано опыта: " + jmc.GetVar("ExpMobExperience") +" за мобов и " + jmc.GetVar("ExpBattleExperience") + " бэтл экспы, за время: " + span.toFixed(0) + " мин. " + ((Number(jmc.GetVar("ExpMobExperience")) + Number(jmc.GetVar("ExpBattleExperience"))) / span).toFixed(0) + " опыта в минуту."); } все это можно подключить при помощи функции include() которую я описывал выше. :) |
стоп не понял а где тут бетал экспа считается?? а то я пытался написать неполучалось... последней проблеммой стало переход на уровень... потому что у тебя сейчас 3 очка ДСУ, а тут вдруг 12м... и счетчик прибавляет -12м к экспе...
|
ТАк всетаки, объясни как работает.. Как бэтл экспу считать. Я чет не понял... из кода.. да и пока не внедряю
|
ты гдето видишь что счетсчик экспы сканит скока у тебя дсу ?
|
Счетчик сканит не дсу, а всю экспу.
|
Попробовал поюзать. Заметил что строчка "БЭТЛ ЭКСПА" обновляется только после набирания "оч" вот в чем кора... ясно.
понятно.. Хитро однако. только я хотел чтобы без спама ОЧ это все считалось. |
НЕ сильно уж и большой спам) ну если хочешь предложить что-то лучшее пробуй )
|
Почемуто не работают регекспы под жабой..никак не пойму почему(((
Как без регекспов из jmc.Event вытащить название и описание комнаты? |
работает в жабе регэксп просто надо сначало маны в инете про яваскрипт почитать, а потом чето делать
|
чтобы бэтлэкспа считалась нормально без повторно вывода "очки/счет"
нужно подправить алиас для сброса экспы #alias {экспасброс} {оч; #script {jmc.SetVar("ExpBattleExperience", 0); jmc.SetVar("ExpMobExperience", 0); jmc.SetVar("ExpStartTime", (new Date).getTime()); jmc.SetVar("ExpNeedInit", 1);}} {Exp} |
Цитата:
ЗЫ На перле попробовал - такая же фигня. Просто регекспы надо проинициализировать как-то, чтобы заработало, а вот как - я хз) |
regexp не нужно инициализировать, они по дефолту работают
писать просто правильно надо. в #subs не работает regexp , только в #action |
Ну хорошо - рассмотрим на примере. Возьмем,например, кусок функции, срабатывающей на событие Incoming, лебезно предоставленной Devastator'ом
function CaptureTells() { var tmp=jmc.Event; var tely=/\[1;36m([А-Яа-я]+|Кто-то) сказал[а]? Вам : '(.+)'$/; res = tely.exec(tmp); jmc.Output(res[1]); } По логике вещей - если все арбайтен, то при реакции на входящий телл в output вылетит имя телявшего. Так вот в функцию то залетает на incoming нормально, а вот разбор строки телла не происходит. |
хм..
вобщем проблема в следующем... похоже малость что-то где-то изменилось в коде... var tely=/\[1;36m([А-Яа-я]+|Кто-то) сказал[а]? Вам : '(.+)'$/; это раньше работало! 100% сейчас не срабатывает ! цвет текста меняется до конца ввода строки. и чтобы сейчас нормально работало нужно изменить regexp на var tely=/\[1;36m([А-Я][а-я]+|Кто-то) сказал[а]? Вам : '(.+)'\[0;37m$/; имх для имени чара лучше использовать не [А-Яа-я]+ , а [А-Я][а-я]+ |
Цитата:
|
Часовой пояс GMT +4, время: 00:02. |
Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot