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

Stealth 7 RC

User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Stealth 7 RC

Post by Vizit0r »

7.2 по ссылке - https://cloud.mail.ru/public/C1jy/qbJNcEQuU

Из нового - архитектура перепилена чуть менее, чем полностью - на полной скорости движемся в сторону мультиплатформенности, видимо версия 8 будет работать не только на винде. Новый скриптовый движок, намного мощнее + несколько языков + мультиплатформенный. Встроенный глючный питон переделан так, что больше из-за стелса проблем не будет вообще - потоки, wait, и все остальное работает правильно. Поддержка Skype. И еще куча всякого.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Stealth 7

Post by Vizit0r »

А пока что вот вам информация по тем синтаксическим ошибкам, которые могут появиться при запуске скриптов в 7м стелсе (пример куска кода + ошибка + описание).

Раз:

Code: Select all

FindType(StrToInt(DailyTypes.strings[Idx3]), Ground)
if GetFoundItems(Items) > 0 then

[XXX]: Compiler: [Error] (test.sc at 460:1):  "end" expected but "if" found ;
Error line is: "if GetFoundItems(Items) > 0 then "

точки с запятой нет

Code: Select all

    repeat
      wait(1000)
      p:=p+1;


12:06:29:307 [Natka]: Compiler: [Error] ( at 85:7):  "until" expected but "p" found ;
Error line is: "       p:=p+1; "

то же самое

Code: Select all

function GoToObject(Object: Cardinal): Boolean;

[XXX]: Compiler: [Error] (test.sc at 355:19):  Identifier expected but "Object" found ;
Error line is: " function GoToObject(Object: Cardinal): Boolean; "

Object - это ключевое слово языка, оно не может быть названием параметра или переменной!

Code: Select all

var
  Items_arr : Array of Cardinal;

function GetFoundItems(var Items: Array of Cardinal): Integer;
...

  if GetFoundItems(Items_arr) > 0 then

опа, и ошибка выполнения(Exec Error) тут! При этом компилятор пропустит такую конструкцию.

должно быть:


type TItemArr = Array of Cardinal; 
var
  Items_arr : TItemArr;


function GetFoundItems(var Items: TItemArr): Integer;
...

if GetFoundItems(Items_arr) > 0 then


это неочевидно, но это факт - динамические массивы нельзя передавать параметрами, надо определять его как тип. Var param при этом использовать необязательно, динамический массив - это и так указатель по сути своей.
В предыдущих версиях это тоже было актуально, кстати.

Code: Select all

22:15:13:102 [Rdor Sems]: Compiler: [Error] ( at 338:14):  Identifier expected but ";" found ;
Error line is: "     Time := 0;; "
22:15:13:102 [Rdor Sems]: Compiling failed

всё написано в ошибке - две точки с запятой.
Появится еще что-то популярное - дополню.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Stealth 7

Post by Vizit0r »

еще насчет скриптов.
Посколько в новом скриптовом движке можно создавать классы внутри скриптов, а внутри классовых методов Self - это указатель на класс, а не стелсовая функция - в этих случаях стоит использовать StealthSelf, возвращает тот же ID своего чара, что и Self
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
nah nah
Developer
Developer
Posts: 414
Joined: 13.07.2011 11:23
Contact:

Re: Stealth 7

Post by nah nah »

Нет бы назвать MyChar или SelfChar
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Stealth 7

Post by Vizit0r »

а оно просто было уже. Я подумываю переименовать в SelfID.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
ess3nt
Posts: 5
Joined: 03.04.2016 19:00

Re: Stealth 7

Post by ess3nt »

когда уже можно будет пощупать новый стелс?)
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Stealth 7

Post by Vizit0r »

времени нет. Последние доделки + второй день пытаюсь выловить гнусный баг в паксе. Если до завтра не выловлю - выложу как есть, пока люди тестить будут - буду искать.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Stealth 7

Post by Vizit0r »

в первом посте темы выложил стелс.

скайп рабочий полностью.
питон x64 поддерживается и запускается.

в паксскрипте обращаться к скайпу через класс SkypeApi

Code: Select all

program test_sript;

procedure SkypeEventsHandler(SenderNickName, SenderId, EventMsg: String; EventCode : Byte);
begin                              
  case EventCode of
    evCode_Connected    : AddToJournal('Skype Connected!');
    evCode_ServerDisconnected : AddToJournal('Skype Disconnected, try to reconnect!');
    evCode_ClientDisconnected : AddToJournal('Skype Disconnected.');
    evCode_MsgReceived  :  AddToJournal('SkypeMsg : "' + SenderNickName + '(' 
                                       + SenderId + ') : "' + EventMsg + '"');
    evCode_Error :        AddToJournal('SkypeError : "' + SenderNickName + '(' 
                                       + SenderId + ') : "' + EventMsg + '"');
  end;  
end; 

begin
SetEventProc(evSkypeEvent, 'SkypeEventsHandler');
 SkypeApi.Connect('your_login','your_pass');
 while not SkypeApi.Connected do
   wait(200);
 SkypeApi.SendMessage('test1','receiver_id');   
 wait(100);
 SkypeApi.SendMessage('test2', SkypeApi.GetIdByNickname('тот_ник_что_выставлен_на_контакт_в_скайпе'));   
 if SkypeApi.Connected then
   SkypeApi.Disconnect; 
              
while (true) do 
begin
  Wait(100);
end;  
end.
для внешних скриптов: в дельфийской обертке то же самое через Script.Skype. В питон-обертке оно в виде методов, кто захочет - сам обернет в класс.
c# обертка еще не обновлена, на подходе.

Поддержка IRC полуреализована, но очень уж криво, возможно будет убрана нафиг.

в паксе добавлена procedure WinExec(FileName : String; Parameters: String = ''); второй параметр - опциональный, те необязательный.

В целом куча всего добавлена и переделана, буду делать изменения одним большим постом, да и вики надо обновить\дополнить.

Но конкретно сейчас меня интересуют тесты всего подряд. Работа скриптов, коннекты, да все что угодно. С любыми проблемами сюда, или в скайп\асю мне, как удобнее.
А проблемы будут, это я и так могу сказать.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Stealth 7

Post by Vizit0r »

кстати,
Vizit0r wrote:еще насчет скриптов.
Посколько в новом скриптовом движке можно создавать классы внутри скриптов, а внутри классовых методов Self - это указатель на класс, а не стелсовая функция - в этих случаях стоит использовать StealthSelf, возвращает тот же ID своего чара, что и Self
таки-да переименовал в SelfID
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
nah nah
Developer
Developer
Posts: 414
Joined: 13.07.2011 11:23
Contact:

Re: Stealth 7

Post by nah nah »

Vizit0r wrote:переименовал в SelfID
старые скрипты не алё теперь будут?
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Stealth 7

Post by Vizit0r »

старый селф никуда не делся. SelfID нужен в тех случаях, когда Self не работает - внутри классовых методов. Написал же выше.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Stealth 7

Post by Vizit0r »

https://cloud.mail.ru/public/HKsD/NjKWU7KYM

исправлена отладка в целом и показ переменных в редакторе.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
ess3nt
Posts: 5
Joined: 03.04.2016 19:00

Re: Stealth 7

Post by ess3nt »

неприятный баг:
при реконнекте чара профиль часто повисает, бывает с первого рекконекта, бывает с 8-10го.
Кнопка "Connect" активна, но при ее нажатии ничего не происходит, в системном журнале никакой инфы нет.
http://clip2net.com/clip/m0/751ad-clip-59kb.png
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Stealth 7

Post by Vizit0r »

давай чара+шард, на на котором это можно проверить.
На двух шардах проверял, раз по дофига отключался-подключался, все нормально.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
ess3nt
Posts: 5
Joined: 03.04.2016 19:00

Re: Stealth 7

Post by ess3nt »

uogames
login 83.222.97.10, 2593
akk testuo
pass 123

еще вот такое иногда пишет и не заходит:
http://clip2net.com/clip/m0/a9c2f-clip-14kb.png

раз 10 клацаю коннект, затем заходит
Locked