Jump to content

Demonho

Members
  • Posts

    8
  • Credits

  • Joined

  • Last visited

  • Feedback

    0%

Everything posted by Demonho

  1. this is easy, Engine.bypasstoserver('npc_268464916_Quest'); the Engine.dlgsel(1), works too <a action="bypass -h npc_268464916_Quest">Missão</a> But, in the next is the html: <button value="Conte-me mais" action="link data/html/scripts/quests/Q799_ObtainIcarus/orim_start_answer2.htm" width=134 height=21 back=L2UI_ch3.bigbutton3_down fore=L2UI_ch3.bigbutton3><br1> i've tried: Engine.dlgsel(1); Engine.dlgsel('Conte-me mais'); Engine.bypasstoserver('link data/html/scripts/quests/Q799_ObtainIcarus/orim_start_answer2.htm'); but none works, is there any way? Complete html: <html> <body> <table width="110%" cellpadding=5 > <tr> <td> <font color="LEVEL">Shadow Orim:</font> <br> Sim, as <font color="LEVEL">War Chest</font> foram construídas pelos antigos de-<br1> mônios que tentaram dominar o mundo de Aden por pura<br1> vaidade. Delas é possível tirar alguns <font color="LEVEL">Superior Design</font> ou<br1> muitos, vai depender de sua sorte.<br> Este baú tem alma das trevas e escolhe seus donos.<br>Não é simples convencê-lo, mas dois corações dominados<br1>pela magia negra podem ser o suficiente. <br>Pessoas como você me procuram querendo aprender a<br1> invocá-lo.<br> <button value="Conte-me mais" action="link data/html/scripts/quests/Q799_ObtainIcarus/orim_start_answer2.htm" width=134 height=21 back=L2UI_ch3.bigbutton3_down fore=L2UI_ch3.bigbutton3> <br1> </td> </tr> </table> </body> </html>
  2. nice, but i cant download, anyone send the link pls
  3. see a quite more easy to implement. Tested the unitpacket, this operations os pointers is strange a lot for me, i cant see any logic here kkkkk uses SysUtils, PacketUnit; var p1, p2: Pointer; Match, Win, Loss, Points: Cardinal; i: integer; ret: string; p : TNetworkPacket; begin while true do begin if Engine.WaitAction([laSysMsg], p1, p2) = laSysMsg then begin if Cardinal(p1) = 1987 then begin p:=TNetworkPacket.Create(p2,46); Print(p.ReadS); p:=nil; end; if Cardinal(p1) = 1673 then begin p:=TNetworkPacket.Create(p2,24); Match := p.ReadD; Win := p.ReadD; Loss := p.ReadD; Points := p.ReadD; p:=nil; print(format('Match: %d; Win: %d; Loss: %d; Points: %d', [Match, Win, Loss, Points])); end; end; end; end.
  4. ^^ yeah!!! In another case, for relogin purposes i need check if char is online, my idea is send a invalid command to server. If receive the Command not found, char is online. i made a test with: uses SysUtils; var p1, p2: Pointer; Match, Win, Loss, Points: Cardinal; i: integer; ret: string; begin while true do begin if Engine.WaitAction([laSysMsg], p1, p2) = laSysMsg then begin if Cardinal(p1) = 1987 then begin for i:= 0 to 44 do begin if i mod 2 <> 0 then Continue; ret:=ret+PChar(Cardinal(p2)+i)^; end; end; Print(ret); end; end; end. its correct? give me result i am expecting: SYS: Command not found. There is a better way to read p2 on this case?
  5. I belive so In all tests the correct value was returned
  6. Thanks adr.bot, changed to find the correct values: Match := PCardinal(Cardinal(p2))^; Win := PCardinal(Cardinal(p2) + 8)^; Loss := PCardinal(Cardinal(p2) + 16)^; Points := PCardinal(Cardinal(p2) + 24)^;
  7. Hello, Need help with script, need capture info about olympiad in interlude (/olympiadstat) How can read the system messages? var p1, p2: pointer; matches, wins, loss, points : integer; OlyStat : integer; begin //1673 1 Your current record for this Grand Olympiad is $s1 match(es), $s2 win(s) and $s3 defeat(s). You have earned $s4 Olympiad Point(s). 0 79 9B B0 FF 0 0 0 0 0 none OlyStat:=1673; while (true) do begin //laSysMsg - system message appeared. P1 - message identificator (cardinal), P2 - message data (TMemoryStream). Engine.WaitAction([laSysMsg], p1, p2); if(p1=OlyStat)then begin //need read olympiad stat from p2 matches:=??? wins:=??? loss:=??? points:=??? end; end; end;
×
×
  • Create New...