Вернуться   МПМ Былины - Мир Древней Руси > Для игроков > Клиенты для игры

Клиенты для игры Все что связано с клиентами для игры. Jmc, MMC, ZMud etc...

Ответ
 
Опции темы Опции просмотра
Старый 31.08.2006, 09:56   #1
Казуал
Новичок
 
Регистрация: 16.08.2006
Сообщений: 11
По умолчанию

У меня еще один вопрос: как реализовать в скрипте:
#action {^Ваш опыт повысился на %0 оч} {гг %0} {5} {default}
т.е. возникли проблемы, как выделить из строки подстроку %0
Я сделал что-то вроде:
var line = jmc.Event;
if (line.search ("^Ваш опыт повысился на ") != -1) {
line=line.replace ("Ваш опыт повысился на ", "");
line=line.replace (" очков.", "");
line=line.replace (" очко.", "");
line=line.replace (" очка.", "");
account += line*1;
}

...но что-то слишком коряво получилось. Да еще пришлось писать account += line*1; - ибо иначе не складывает два числа, а выполняет Concat, т.е. 50+150=50150
Казуал вне форума   Ответить с цитированием
Старый 31.08.2006, 10:50   #2
WorM
Занятой мадер
 
Регистрация: 21.11.2004
Адрес: Питер
Сообщений: 131
По умолчанию

Цитата:
Сообщение от Казуал Посмотреть сообщение
У меня еще один вопрос: как реализовать в скрипте:
#action {^Ваш опыт повысился на %0 оч} {гг %0} {5} {default}
т.е. возникли проблемы, как выделить из строки подстроку %0
Я сделал что-то вроде:
var line = jmc.Event;
if (line.search ("^Ваш опыт повысился на ") != -1) {
line=line.replace ("Ваш опыт повысился на ", "");
line=line.replace (" очков.", "");
line=line.replace (" очко.", "");
line=line.replace (" очка.", "");
account += line*1;
}

...но что-то слишком коряво получилось. Да еще пришлось писать account += line*1; - ибо иначе не складывает два числа, а выполняет Concat, т.е. 50+150=50150
account += Math.floor(line) так правильней, Math.floor преобразовывает строку в число.

Попробуй вот так
Код:
line=jmc.Event;

var expstr=/^Ваш опыт повысился на (\d+) очк(о|ов|а)\.$/;
if(expstr.test(line))
 account+=Math.floor(expstr.exec(line)[1]);
Проверил вроде даже работает +)

ЗЫ Почитай про regexp(регулярные выражения) в JavaScript.
WorM вне форума   Ответить с цитированием
Старый 31.08.2006, 20:54   #3
Devastator
Отличник форума
 
Регистрация: 18.10.2005
Адрес: Пермь
Сообщений: 273
По умолчанию

Вообще лучше не делать на скриптах то что можно сделать на 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() которую я описывал выше.
__________________
Владение орфографией русского языка - это как кунг-фу, истинные мастера которого не применяют его без надобности.
Devastator вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 06:45.


Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot