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

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

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




Начать новую тему Ответить на тему  [ Сообщений: 21 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: лор из файла для жабы
СообщениеДобавлено: 02-07, 21:36 
Не в сети
ньюб

Зарегистрирован: 01-07, 03:12
Сообщения: 5
не могли бы вы поделиться работающими под жабу скриптами, которые бы выдергивали из файла с лором текст и отсылали в окно жабы.
вообще то, в 3.5 жабе есть команда #spit, но алиас на лор сделать не получится, потому что в этой команде нельзя использовать вариаблы. получается, что надо каждый раз набирать целиком #spit {./lor/боевые перчатки.txt} {#showme %0}, меняя название нужной шмотки, чтобы загрузить лор.
собственно, поделитесь пожалуйста вариантами решения.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 02-07, 23:15 
Не в сети
мидл
Аватара пользователя

Зарегистрирован: 03-08, 02:29
Сообщения: 135
Откуда: Spb
Если каждый лор в отдельном файле то очень просто...

Код:
function FindLor(item){

  var str;
  var FileSystem = new ActiveXObject("Scripting.FileSystemObject");
 
  if (FileSystem.FileExists("base/"+item+".txt"))
  {
    var eqbase=FileSystem.OpenTextFile("base/"+item+".txt",1);
    while (!eqbase.AtEndOfStream)
    {
      str=eqbase.ReadLine();
      jmc.ShowMe(str);
    }
   jmc.ShowMe("");
   eqbase.Close();
  } else
  {
    jmc.ShowMe("Предмет '"+item+"' не найден!");
  }
}



Последний раз редактировалось Alz 03-07, 05:47, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 02-07, 23:26 
Не в сети
ньюб

Зарегистрирован: 01-07, 03:12
Сообщения: 5
а нельзя ли пояснить для ньюба как именно применять скрипт?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 02-07, 23:52 
Не в сети
мидл
Аватара пользователя

Зарегистрирован: 03-08, 02:29
Сообщения: 135
Откуда: Spb
Вставить его в файл settings/<имяпрофиля>.scr
Файлы лоров поместить в папку base или изменить ее на нужную в скрипте...
В клиенте: #alias {лор} {#s FindLor("%0")}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 03-07, 03:14 
Не в сети
ньюб

Зарегистрирован: 01-07, 03:12
Сообщения: 5
пишет Ошибка выполнения Microsoft JScript
"FileSystem" - определение отсутствует
Строка:4 Ошибка:0 Scode:800a1391


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 03-07, 05:37 
Не в сети
мидл
Аватара пользователя

Зарегистрирован: 03-08, 02:29
Сообщения: 135
Откуда: Spb
Сорри, поправил.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 03-07, 05:42 
Не в сети
ньюб

Зарегистрирован: 01-07, 03:12
Сообщения: 5
заработало!!!
спасибо огромное))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 07-07, 22:36 
Не в сети
хайлевел
Аватара пользователя

Зарегистрирован: 12-07, 22:59
Сообщения: 331
как добавить пробел перед выводом лора?

_________________
почему у воинов карликов нет не одного оружейного умения 120%?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 09-07, 16:18 
Не в сети
мидл
Аватара пользователя

Зарегистрирован: 03-08, 02:29
Сообщения: 135
Откуда: Spb
Перед while добавить строку jmc.ShowMe("");


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 10-07, 05:43 
Не в сети
хайлевел
Аватара пользователя

Зарегистрирован: 12-07, 22:59
Сообщения: 331
есть файлик /base/черный шлем с забралом.txt

ведь можно же сделать поиск по начальному слову что бы не набирать название предмета полностью а набрать например черный шле*

_________________
почему у воинов карликов нет не одного оружейного умения 120%?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 10-07, 18:54 
Не в сети
мидл
Аватара пользователя

Зарегистрирован: 03-08, 02:29
Сообщения: 135
Откуда: Spb
Код:
function ShowFile(item){

  var FileSystem = new ActiveXObject("Scripting.FileSystemObject");
  var eqbase=FileSystem.OpenTextFile("base/"+item+".txt",1);

  jmc.ShowMe("");
  while (!eqbase.AtEndOfStream)
  {
    str=eqbase.ReadLine();
    jmc.ShowMe(str);
  }
  jmc.ShowMe("-----");
  jmc.ShowMe("");
  eqbase.Close();
}

function FindLor(item){

  var str;
  var FileSystem = new ActiveXObject("Scripting.FileSystemObject");
  var line, ext, files;
  var find = 0;
  var dir = FileSystem.GetFolder("base/");
 
  if (item != "")
  {
    if (FileSystem.FileExists("base/"+item+".txt"))
    {
      ShowFile(item);
      find = 1;
    }
      else
    {
      files = new Enumerator (dir.files);
      for (;!files.atEnd(); files.moveNext())
      {
        ext = FileSystem.GetExtensionName(files.item()).toLowerCase();
        if(ext == "txt")
        {
          line = FileSystem.GetBaseName(files.item()).toLowerCase();
          if(line.indexOf(item)!=-1)
          {
            ShowFile(line);
            find = 1;
          }
        }
      }
    }
  }
  if (find == 0)
  {
    jmc.ShowMe("");
    jmc.ShowMe("Предмет '"+item+"' не найден!");
    jmc.ShowMe("");
  }
}



Последний раз редактировалось Alz 10-07, 22:27, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 22-07, 20:22 
Не в сети
мидл

Зарегистрирован: 25-10, 13:50
Сообщения: 123
а я дллку себе намалевал лор по части названия(всех совпадающих) и список стафа с содержанием строк:-P


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 24-07, 08:35 
Не в сети
хайлевел
Аватара пользователя

Зарегистрирован: 12-07, 22:59
Сообщения: 331
и к чему ты это сказал?
похвастаться нам что ты умеешь писать дллки на змад? не выложил не предложил ничего. просто пустые слова. Альз молодец сделал вещь. а ты лишь пофлудил.

_________________
почему у воинов карликов нет не одного оружейного умения 120%?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 25-07, 09:59 
Не в сети
мидл

Зарегистрирован: 25-10, 13:50
Сообщения: 123
аха) пофлудить хочу))) но думаю лучше иметь другую систему, где все хранится в одном файле и определенным образом разделяется, тогда можно будет удобно искать что угодно и где угодно (от названия до статов стафа)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 29-02, 22:32 
Не в сети
мидл
Аватара пользователя

Зарегистрирован: 03-08, 02:29
Сообщения: 135
Откуда: Spb
Конкретный вопрос, конретный ответ... Для 1 файла скрипт даже проще.

Код:
function FindLor(item){

  var FileSystem = new ActiveXObject("Scripting.FileSystemObject");
  var eqbase=FileSystem.OpenTextFile("base/data.dat",1);
  var flag, line, send = "";
  var find = 0;
  ItemN  = new RegExp("^Предмет '.+m([а-я-, ]+).+', Тип предмета:");
  var s, ss, sss;
 
  if (item!=""&&item!="."&&item!="..")
  {
    jmc.ShowMe("");
    item=item.toLowerCase();
    if (item.indexOf("*гг")!=-1)
    {
      send = "гг";
      item=item.replace(" *гг","");
    }
    s=item.substring(0,item.indexOf("."));
    ss=item.substring(item.indexOf(".")+1);
    if (ss!="")
    {
      sss = ss.substring(ss.indexOf(".")+1);
      ss = ss.substring(0,ss.indexOf("."));
    }
    if (FileSystem.FileExists("base/data.dat"))
    {
      while (!eqbase.AtEndOfStream)
      {
        line=eqbase.ReadLine();
        if (line.search(ItemN)!=-1)
        {
          if (RegExp.$1.indexOf(s)!=-1&&RegExp.$1.indexOf(ss)!=-1&&RegExp.$1.indexOf(sss)!=-1) flag=true;
        }
        if (line.search("^---END---")!=-1&&flag==true)
        {
          flag=false;
          jmc.ShowMe("---");
        }
        if (flag==true)
        {
          find = 1;
          if (send!="")
          {
            line=line.replace(/\[\d?\;?\d+m/g,'');
            jmc.Send(send+" "+line);
          }
          else jmc.ShowMe(line);
        }
      }
    }
  if (find == 0)
  {
    jmc.ShowMe("");
    jmc.ShowMe("Предмет '"+item+"' не найден!");
    jmc.ShowMe("");
  }
  }
}


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 21 ]  На страницу 1, 2  След.

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


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

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


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

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