Page 1 of 1

Help-me... saveWorldDate with Gump!!

Posted: Wed Jun 13, 2007 3:26 pm
by Juzeph
I tryed to make a "save system", where the gump opens and closes by itself, but it doesn`t work. What`s the bug?

Core 097

pkg.cfg

Code: Select all

Enabled  0
Name     save
start.src

Code: Select all

use os;

start_script(":save:saveDate");
saveDate.src

Code: Select all

use uo;
use os;

Const TIME_IN_MIN := 30;

program saveDate()
 while(1)
  sleep((CInt(TIME_IN_MIN) * 60));
  BroadCast("Salvando o mundo...", 0, 70);
   foreach quem in EnumerateOnlineCharacters()
    Start_Script("openGump", quem);
   endforeach
  SaveWorldState();
   foreach quem in EnumerateOnlineCharacters()
    Start_Script("closeGump", quem);
   endforeach
  BroadCast("Mundo salvo...", 0, 70);
 endwhile
endprogram
openGump.src

Code: Select all

use uo;
use os;

program openGump(quem)
 var gump := {
  "Page 0",
  "NoDispose",
  //"NoClose",
  //"NoMove",
  "ResizePic 240 200 9260 300 120",
  "CheckerTrans 250 210 280 100",
  "TilePic 260 230 4171",
  "TilePic 470 230 4172",
  "Text 330 220 1108 0",
  "Text 332 222 1149 0",
  "Text 305 240 999 1",
  "Text 305 255 999 2"
 };
 var text := {
  "Salvando o Mundo",
  "Por favor, aguarde enquanto",
  "salvamos o mundo..."
 };
 var PID := GetPID();
 SetObjProperty(quem, "pid_gump", PID);
 SendDialogGump(quem, gump, text);
endprogram
closeGump.src

Code: Select all

use uo;
use os;
use polsys;

program closeGump(quem)
 var PID := GetObjProperty(quem, "gump_pid");
 var pacote := CreatePacket(0xBF, MSGLEN_VARIABLE);
 pacote.SetInt16(1, pacote.GetSize());
 pacote.SetInt16(3, 4);
 pacote.SetInt32(5, PID);
 pacote.SetInt32(9, 0);
 pacote.SendPacket(quem);
endprogram

Posted: Wed Jun 13, 2007 4:35 pm
by MontuZ
In your closeGump.src

Change:

Code: Select all

program closeGump(quem)
 var PID := GetObjProperty(quem, "gump_pid");
To:

Code: Select all

program closeGump(quem)
 var PID := GetObjProperty(quem, "pid_gump");
Just looking for the wrong prop. =D

Posted: Sat Jun 16, 2007 4:11 pm
by Juzeph
sorry, i don't seen...

AND...

change Start_Script() in to Run_Script_To_Completion()!!