Форумы онлайн-игры "Сфера Миров"
http://sow.flybb.ru/

лор из файла для жабы
http://sow.flybb.ru/topic460.html
Страница 1 из 2

Автор:  mp2 [ 02-07, 21:36 ]
Заголовок сообщения:  лор из файла для жабы

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

Автор:  Alz [ 02-07, 23:15 ]
Заголовок сообщения: 

Если каждый лор в отдельном файле то очень просто...

Код:
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+"' не найден!");
  }
}


Автор:  mp2 [ 02-07, 23:26 ]
Заголовок сообщения: 

а нельзя ли пояснить для ньюба как именно применять скрипт?

Автор:  Alz [ 02-07, 23:52 ]
Заголовок сообщения: 

Вставить его в файл settings/<имяпрофиля>.scr
Файлы лоров поместить в папку base или изменить ее на нужную в скрипте...
В клиенте: #alias {лор} {#s FindLor("%0")}

Автор:  mp2 [ 03-07, 03:14 ]
Заголовок сообщения: 

пишет Ошибка выполнения Microsoft JScript
"FileSystem" - определение отсутствует
Строка:4 Ошибка:0 Scode:800a1391

Автор:  Alz [ 03-07, 05:37 ]
Заголовок сообщения: 

Сорри, поправил.

Автор:  mp2 [ 03-07, 05:42 ]
Заголовок сообщения: 

заработало!!!
спасибо огромное))

Автор:  Традус [ 07-07, 22:36 ]
Заголовок сообщения: 

как добавить пробел перед выводом лора?

Автор:  Alz [ 09-07, 16:18 ]
Заголовок сообщения: 

Перед while добавить строку jmc.ShowMe("");

Автор:  Традус [ 10-07, 05:43 ]
Заголовок сообщения: 

есть файлик /base/черный шлем с забралом.txt

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

Автор:  Alz [ 10-07, 18:54 ]
Заголовок сообщения: 

Код:
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("");
  }
}


Автор:  Тивлин [ 22-07, 20:22 ]
Заголовок сообщения: 

а я дллку себе намалевал лор по части названия(всех совпадающих) и список стафа с содержанием строк:-P

Автор:  Традус [ 24-07, 08:35 ]
Заголовок сообщения: 

и к чему ты это сказал?
похвастаться нам что ты умеешь писать дллки на змад? не выложил не предложил ничего. просто пустые слова. Альз молодец сделал вещь. а ты лишь пофлудил.

Автор:  Тивлин [ 25-07, 09:59 ]
Заголовок сообщения: 

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

Автор:  Alz [ 29-02, 22:32 ]
Заголовок сообщения: 

Конкретный вопрос, конретный ответ... Для 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("");
  }
  }
}

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/