Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7

Мои творения :) [Uorpg.net]

Only working scripts
Post Reply
HeadShot1989
Neophyte
Neophyte
Posts: 13
Joined: 11.07.2013 6:04

Мои творения :) [Uorpg.net]

Post by HeadShot1989 »

Здесь я буду выкладывать свои скрипты, они в основном будут конечно под шард, где я играю [uorpg.net]. Кто захочет добавлять функционал - на здоровье, поправляйте, выкладывайте, скажу только спасибо.

Итак, первый скрипт (огромное спасибо Vizit0r"у, который помог его составить правильно и указал на некоторые ошибки). Скрипт скупает один итем по фиксированной цене, пакуя перед покупкой гп в чеки (.check 'summa'). Кое-где есть комментарии в скрипте, разбирайтесь сами. По поводу того, что где-то, что-то не работает\не так как вам надо работает\выдает ошибку которую вы сами пропустили просьба мне не писать. Скрипт проверен и работает на Stealth 4ой и 6ой версии.

UPD: Скрипт перезалит, ver. 1.1
Новый функционал: MultiLanguage.

Code: Select all

Program BuyGS;
//////////////////////////////////////////////
//     By HeadShot aka Prada [uorpg.net]    //
//           Skype: pokerist1989            //
//          Special thx to ViZiT0r          //
//////////////////////////////////////////////
const
GoldCoin=$0EED;//тип золота
Gstone=$3198;//тип покупаемого предмета

var
GSInContainer,TransferGP,OppContainer,MyContainer,Seller:Cardinal;
stime:TDateTime;
j:integer;

procedure RusTrade;//часть, отвечающая за диалоги и торговлю с русским населением

begin
  checklag(5000);
  if (CountEx(GoldCoin,$0000,backpack)>35000) then
  begin
    if TradeCount>0 then
    begin
      for j:=TradeCount-1 DownTo 0 do
      CancelTrade(j);
      checklag(5000);
    end;
    uosay('; Добрый день, '+GetName(Seller)+'!');
    wait(1500);
    uosay('; Просто киньте в трейд свои God Stone, и ждите 10 секунд.');
    wait(8000); 
    If IsTrade and (GetTradeOpponent(0)=Seller) Then
    begin
      OppContainer:=GetTradeContainer(0,2);
      MyContainer:=GetTradeContainer(0,1);
      if (CountEx(Gstone,$0A8C,OppContainer))>0 then
      begin
        checklag(3000);
        uosay('; У вас 15 для подтверждения сделки!');
        GSInContainer:=(CountEx(Gstone,$0A8C,OppContainer));
        TransferGP:=(GSInContainer*35000);
        checklag(1000);
        uosay('.check '+IntToStr(TransferGP));
        checklag(1000);
        FindTypeEx($14EF,$0445,backpack,True);
        MoveItem(FindItem,1,MyContainer,0,0,0);
        AddToSystemJournal(DateTimeToStr(Now));
        stime := Now;
        repeat 
          wait(200); 
        until TradeCheck(0,2) or (Now > stime+0.3/1440);
        AddToSystemJournal(DateTimeToStr(Now));
        if TradeCheck(0,2) then
        ConfirmTrade(0)
        else
        begin
          wait(500);
          uosay('Вы не подтвердили сделку вовремя!');
          CancelTrade(0);
          FindTypeEx($14EF,$0445,backpack,True);
          if findcount > 0 then
          begin
            checklag(1000);
            UseObject(finditem);
          end;
        end;
      end;
    end;
  end
  else
  uosay('No have money, try again later!');
end;

Procedure EngTrade;//часть отвечающая за диалоги и торговлю с англоязычными игроками
begin
  checklag(5000);
  if (CountEx(GoldCoin,$0000,backpack)>35000) then
  begin
    if TradeCount>0 then
    begin
      for j:=TradeCount-1 DownTo 0 do
      CancelTrade(j);
      checklag(5000);
    end;
    uosay('; Hello, '+GetName(Seller)+'!');
    wait(1500);
    uosay('; Move your God Stones to trade, and wait 10sec.');
    wait(8000); 
    If IsTrade and (GetTradeOpponent(0)=Seller) Then
    begin
      OppContainer:=GetTradeContainer(0,2);
      MyContainer:=GetTradeContainer(0,1);
      if (CountEx(Gstone,$0A8C,OppContainer))>0 then
      begin
        checklag(3000);
        uosay('; You have 15sec for confirm trade!');
        GSInContainer:=(CountEx(Gstone,$0A8C,OppContainer));
        TransferGP:=(GSInContainer*35000);
        checklag(1000);
        uosay('.check '+IntToStr(TransferGP));
        checklag(1000);
        FindTypeEx($14EF,$0445,backpack,True);
        MoveItem(FindItem,1,MyContainer,0,0,0);
        AddToSystemJournal(DateTimeToStr(Now));
        stime := Now;
        repeat 
          wait(100); 
        until TradeCheck(0,2) or (Now > stime+0.3/1440);
        AddToSystemJournal(DateTimeToStr(Now));
        if TradeCheck(0,2) then
        ConfirmTrade(0)
        else
        begin
          wait(500);
          uosay('Trade Aborted!');
          CancelTrade(0);
          FindTypeEx($14EF,$0445,backpack,True);
          if findcount > 0 then
          begin
            checklag(1000);
            UseObject(finditem);
          end;
        end;
      end;
    end;
  end
  else
  uosay('No have money, try again later!');
end;



begin
//зацикливаем скрипт простым способом
  while not dead do 
  begin
    uosay('; AutoBuy by Prada. 35k for each GodStone. Say: sell');
    wait(5000);
    uosay('; Я покупаю GodStone по 35к. Просто напишите: sell');
    ClearJournal;
    wait(500);
//ждем строку sell в журнале
    if WaitJournalLine(now,'sell',10000) then 
    begin
      Seller:=LineID;
      uosay('; Say: "Eng" for English Language или жди 10 секунд если ты русский ');
      ClearJournal;
      wait(500);
      checklag(5000);
//ждем строку Eng в журнале для смены языка, 
//не дожидаемся в теч 10 сек - язык выбирается по дефолту русский
      if WaitJournalLine(now,'Eng',10000) then
      begin
        EngTrade;
      end
      else
      RusTrade;
    end;
  end;
  Wait(200);
End.
Last edited by HeadShot1989 on 05.08.2013 8:57, edited 3 times in total.
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Мои творения :) [Uorpg.net]

Post by Vizit0r »

опять двадцать пять.
Форматирование\отступы сожрал хомяк? или ты специально перед тем как на форум выложить - копируешь в блокнот, который убирает это все?

я-то тебе скрипт кидал с полным форматированием.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
HeadShot1989
Neophyte
Neophyte
Posts: 13
Joined: 11.07.2013 6:04

Re: Мои творения :) [Uorpg.net]

Post by HeadShot1989 »

Я тебе обьяснял про форматирование :) Не знаю баг это или что, если я копирую с форума текст, заключеный в код, с отступами, стелс распознает эти отступы как "неожиданный конец скрипта", поэтому мне ваши пробелы приходится сидеть и ручками удалять. У меня все скрипты, которые отлажены уже, с удаленными отступами. Те кому нужны отступы смогут ведь воспользоваться Code Format в стелсе? Для них проблем не возникнет. Зато те, у кого как у меня - не будут мучиться, поверь это зло удалять пробелы в скриптах более ста строк.
ПыСы: я дополнял его после того как ты скидывал, причем получилось в идеале как я и хотел :) еще раз спасибо.
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Мои творения :) [Uorpg.net]

Post by Vizit0r »

дай ссылку на любой пост, копирование скрипта из которого приведет к такому эффекту.

P.S. Оффтопик я потом потру.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
HeadShot1989
Neophyte
Neophyte
Posts: 13
Joined: 11.07.2013 6:04

Re: Мои творения :) [Uorpg.net]

Post by HeadShot1989 »

Вот твой как отличный пример.
P,S: на 4.3.5 и 4.3.6 версиях такая ошибка, пробну на шестой, отпишусь.
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Мои творения :) [Uorpg.net]

Post by Vizit0r »

в 6й все отлично. А то, что происходило в 4й - мне уже вобщем-то пофиг.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
HeadShot1989
Neophyte
Neophyte
Posts: 13
Joined: 11.07.2013 6:04

Re: Мои творения :) [Uorpg.net]

Post by HeadShot1989 »

Стирай оффтоп, 6ая уже более-менее юзабельна, все системы работают в норме, ошибки выслал в аську.
Post Reply