Форумы онлайн-игры "Сфера Миров"

Форумы посвящены онлайн-игре MUD "Сфера Миров", ее игровому миру и просто общению игроков.
Текущее время: 14-07, 10:46

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
СообщениеДобавлено: 11-09, 09:17 
Не в сети
ньюб
Аватара пользователя

Зарегистрирован: 08-11, 12:27
Сообщения: 56
не плохо было бы если бы отображало когда область у тебя удаляется автоматически, типа репоп зоны такой то чтобы новичкам кучу скриптов не писать и тригеров на проверку репопа

мне сказали что это будет спамить тем кому это не надо (хотя спама в маде столько, что еще одна строчка не помешала бы серым цветом на которую уже можно было бы повесить тригер гг к примеру), на этот случай добавить включение выключение режима отображения инфы дополнительной

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

проблема решается скриптами, для тех кому интересно выложу свой вариант функций

Код:
var zones = [];

function addzone(x)
{
   y = 1140; // для не известных зон чтобы сразу видно было
   
   if (x == "Преисподняя") {y = 40}
   if (x == "Подземелье ужаса") {y = 60}
   if (x == "Закрытая шахта Фелонада") {y = 60}
   if (x == "Деревня варваров") {y = 40}
   if (x == "Заколдованная долина") {y = 30}
   if (x == "Осажденный замок") {y = 60}
   if (x == "Старый дом в Огисе") {y = 50}
   if (x == "Драконий остров") {y = 90}
   if (x == "Эрдер жрица Ллос") {y = 60}
   if (x == "Цитадель Ордена") {y = 30}
   if (x == "Ветреное плоскогорье") {y = 60}
   if (x == "Канализация Галена") {y = 60}
   if (x == "Гален Иллюзионист") {y = 60}
   if (x == "Замок Стэдвика") {y = 120}
   if (x == "Кронк-а-мор") {y = 75}
   if (x == "Элендорский замок") {y = 90}
   if (x == "Башенное кольцо") {y = 60}
   if (x == "Южный лес") {y = 30}
   if (x == "Туманное болото") {y = 60}
   if (x == "Военный гарнизон") {y = 30}
   if (x == "Муравейник") {y = 60}
   if (x == "Дворец эльфов") {y = 35}
   if (x == "Селение людоедов") {y = 40}
   if (x == "Крепость Тима") {y = 30}
   if (x == "Старая церковь") {y = 30}
   if (x == "Лаборатория Фелонада") {y = 60}
   if (x == "Крепость разбойников") {y = 60}
   if (x == "Лабиринт") {y = 90}
   if (x == "Магический лес") {y = 40}
   if (x == "Тюрьма Геоланта") {y = 40}
   if (x == "Больница Геоланта") {y = 45}
   if (x == "Чайный домик") {y = 30}
   if (x == "Кладбище") {y = 35}
   if (x == "Змеиное гнездо") {y = 45}
   if (x == "Храм Хедина") {y = 120}
   if (x == "Крепость Ужаса") {y = 90}
   if (x == "Ущелье гарпий") {y = 40}
   if (x == "Логовище Орды") {y = 40}
   if (x == "Искрящийся замок") {y = 240}
   if (x == "Механическая башня") {y = 60}
   if (x == "Живые Скалы") {y = 120}
   if (x == "Ангельские горы") {y = 120}
   if (x == "Пирамида") {y = 120}
   if (x == "Безумие") {y = 35}
   if (x == "Замок повелителя стихий") {y = 90}
   if (x == "Рыцарский рубеж") {y = 40}
   if (x == "Башня вихря") {y = 35}
   if (x == "Старое кладбище") {y = 90}
   if (x == "Священная роща") {y = 90}
   if (x == "Адмиралтейство") {y = 60}
   if (x == "Библиотека Галена") {y = 60}
   if (x == "Затерянный остров") {y = 40}
   if (x == "Башня магов") {y = 40}
   if (x == "Парк") {y = 5}
   if (x == "Парк аттракционов") {y = 20}
   if (x == "Здание стражи Элендора") {y = 20}
   if (x == "Канализация") {y = 10}
   if (x == "Притон") {y = 20}
   if (x == "Аллея") {y = 5}
   if (x == "Старая библиотека") {y = 25}
   if (x == "Поляна в густом лесу") {y = 30}
   if (x == "Болото") {y = 20}
   if (x == "Лагерь кочевников") {y = 25}
   if (x == "Деревня рыбаков") {y = 45}
   if (x == "Тоннель бесов") {y = 40}
   if (x == "Селение человекоящеров") {y = 40}
   if (x == "Лагерь археологов") {y = 25}
   if (x == "Катакомбы Геоланта") {y = 30}
   if (x == "Склад в Геоланте") {y = 25}
   if (x == "Ферма") {y = 25}
   if (x == "Домик у дороги") {y = 20}
   if (x == "Подземелье гномов") {y = 35}
   if (x == 'Трактир "У Лиса"') {y = 35}
   if (x == "Морское побережье") {y = 20}
   if (x == "Лагерь полуорков") {y = 40}
   if (x == "Холм фаэри") {y = 40}
   if (x == "Храм пламенного меча") {y = 35}
   if (x == "Каньон поющей воды") {y = 40}
   if (x == "Горная цепь") {y = 30}
   if (x == "Зоопарк") {y = 60}
   if (x == "Долина Дракона") {y = 120}
   if (x == "Некромант Сур") {y = 40}
   if (x == "Далекая крепость") {y = 40}
   if (x == "Подземелье драконов") {y = 180}
   if (x == "Лечебница для животных") {y = 20}
   if (x == "Северная деревня") {y = 50}
   if (x == "Конюшни") {y = 25}
   if (x == "Башня орков") {y = 30}
   if (x == 'Таверна "Борода Тролля"') {y = 35}
   
   for (var i=0; i<zones.length; i = i+2)
   {
      if (zones[i]==x) {zones[i+1]=tiker+y; return}
   }
   zones.push(x,(tiker+y));
   jmc.showme("REPOP "+x+ " "+y,10);
}

function showzones()
{
   jmc.showme("[ REP LIST ]",4);
   for (var i=0; i<zones.length; i = i+2)
   {
      if ((zones[i+1]-tiker)>0) {jmc.showme("репоп "+zones[i]+" "+(zones[i+1]-tiker),8)} else
      {
         jmc.parse("гг --> "+zones[i]+" REPOP");
         zones.splice(i,2);
         i = i-2;
      }
   }
   jmc.showme("[ END LIST ]",4);
}

и тригер к автодобавлению

#action {^%2 экземпляр зоны '%1'.} {#scr addzone('%1')} {1} {control}

алиас на проверку репопов

#alias {репопы} {#scr showzones()} {default}

_________________
Кто хочет, тот ищет возможности, кто не хочет — ищет причины


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 11-09, 11:35 
Не в сети
ньюб

Зарегистрирован: 01-07, 10:00
Сообщения: 5
Как же это легко скриптом, осталось научиться добавлять эти скрипты, а то делать все это через триги, ужас как не удобно:
1. На каждую созданную зону объявлять переменную зоны как 1
2. Потом на каждый тик проверять, если переменная больше или равна 1, то каждый тик делать +1
3. И наконец когда переменная достигнет значения репопа, сбрасывать ее в ноль и говорить что зона репоп

В итоке, триг на тик, выглядит как-то так
#if {$oldhome >=1}{#math oldhome $oldhome + 1};#if {$oldhome == 50}{гг СТАРЫЙ ДОМ В ОГИСЕ РЕПОП;#var oldhome 0};#if {$lair >=1}{#math lair $lair + 1};#if {$lair == 40}{гг ЛОГОВИЩЕ ОРДЫ РЕПОП;#var lair 0};#if {$snake >=1}{#math snake $snake + 1};#if {$snake == 45}{гг ЗМЕЙКИ РЕПОП;#var snake 0};#if {$gnomes >=1}{#math gnomes $gnomes + 1};#if {$gnomes == 35}{гг ГНОМЫ РЕПОП;#var gnomes 0};#if {$maze >=1}{#math maze $maze + 1};#if {$maze == 90}{гг ЛАБИРИНТ РЕПОП;#var maze 0};#if {$underworld >=1}{#math underworld $underworld + 1};#if {$underworld == 40}{гг ПРЕИСПОДНЯ РЕПОП;#var underworld 0};#if {$cannibals >=1}{#math cannibals $cannibals + 1};#if {$cannibals == 40}{гг ЛЮДОЕДЫ РЕПОП;#var cannibals 0};#if {$garisson >=1}{#math garisson $garisson + 1};#if {$garisson == 30}{гг ВОЕННЫЙ ГАРНИЗОН РЕПОП;#var garisson 0};#if {$metro >=1}{#math metro $metro + 1};#if {$metro == 60}{гг МЕТРО РЕПОП;#var metro 0};

Респект и уважуха, и спасибо )


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 11-09, 11:37 
Не в сети
ньюб

Зарегистрирован: 01-07, 10:00
Сообщения: 5
#action {^%1 создала экземпляр зоны '%1'.} {#scr addzone('%1')} {1} {control}
#action {^%1 создал экземпляр зоны '%1'.} {#scr addzone('%1')} {1} {control}

эти триги можно объединить в один
#action {^%1 создал%2 экземпляр зоны '%1'.} {#scr addzone('%1')} {1} {control}


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 11-09, 11:43 
Не в сети
ньюб
Аватара пользователя

Зарегистрирован: 08-11, 12:27
Сообщения: 56
Zavs писал(а):
Как же это легко скриптом, осталось научиться добавлять эти скрипты, а то делать все это через триги, ужас


открываешь папку settingsв папке с JMC
создаешь файл в ней текстовый <имф_конфига>.scr
открываешь этот файл в редакторе, и туда добавляешь скрипты
потом в жмц делаешь кнопку релод скрипт

проверить работают ли скрипты в жмц можно командой #scr jmc.showme("СКРИПТЫ РАБОТАЮТ!")
если не сработают надо зарегать библиотеку ttcoreex.dll и в настройках выставить скрипт javascript

_________________
Кто хочет, тот ищет возможности, кто не хочет — ищет причины


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 11-09, 12:07 
Не в сети
ньюб
Аватара пользователя

Зарегистрирован: 08-11, 12:27
Сообщения: 56
вот еще скрипт на запись логов и раскладывания по папкам их
создаем в папке с JMC папку log а в ней папки с месяцами с большой буквы

Код:
function startlog()
{
   m_date = new Date();
   var MonthArr = new  Array("Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь");
   var FileName;
   var Month = MonthArr[m_date.getMonth()];
   var Day = m_date.getDate();
   FileName="log/"+Month+"/"+m_date.getMonth();
   FileName+=((Day>9) ? "_" : "_0")+Day+".log";
   jmc.showme("Запись лога в "+FileName,"green");
   jmc.parse("#log "+FileName+" append");
   jmc.setvar("logs","1");
}


и к нему 2 тригера на старт записи

#action {^Вы восстановили связь.} {#script startlog();сг +;гд} {5} {log}
#action {^Пользователь: [%2], активный персонаж: [%1]} {#if $logs=0 #script startlog()} {5} {log}

_________________
Кто хочет, тот ищет возможности, кто не хочет — ищет причины


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 25-09, 09:33 
Не в сети
хайлевел

Зарегистрирован: 01-09, 21:19
Сообщения: 323
Очень полезные скрипты тут, особенно спасибо за логи, правда планирую доработать и потом сюда выложить. Если конечно сфера вернется, ато со вчера лежит.

_________________
Купил себе Камаз и не жалею
-=не кого=-


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


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

Найти:
Перейти:  
cron
Powered by Forumenko © 2006–2014
Русская поддержка phpBB