Project X Forums http://px.worms2d.info/forum/ |
|
Beginner problems http://px.worms2d.info/forum/viewtopic.php?f=5&t=77 |
Page 1 of 2 |
Author: | Pac-Man [ Mon Jun 21, 2010 2:52 pm ] |
Post subject: | Beginner problems |
Hi there. After trying to understand some scripts, I made my own one. The goal of this script is to create a mine at a random position every time a turn begins (just for understand the code, doesn't have any sense though ![]() EDIT: Beginner errors, figured it out, s. below. But how to check if the mine is placed in air and not terrain? Code: procedure InitHooks;
begin RegisterHook('OnTurnBegin', ON_TURN_BEGIN); end; procedure OnTurnBegin; var newmine : TWPobj; begin newmine := MakeMine(GetSyncRandom(1920, 10),GetSyncRandom(696, 10)); end; |
Author: | anoamas321 [ Mon Jun 21, 2010 8:16 pm ] |
Post subject: | Re: Beginner problems |
hmmm could make an fun game on a bigish map, make a mine or barrel ever 2-3 turns. i may give that ago ![]() |
Author: | Gran PC [ Tue Jun 22, 2010 1:45 pm ] |
Post subject: | Re: Beginner problems |
I believe Entuser made a script like that a long time ago, ask Undefined for it. |
Author: | Pac-Man [ Tue Jun 22, 2010 4:24 pm ] |
Post subject: | Re: Beginner problems |
Yeah, I actually got the idea from that. I just wanted to try that out myself, to understand the language. Well, in the meantime i made this script. It's like a Fort scheme where invading results in keeping the worm on his own site. But it doesn't do anything now ![]() ![]() You will probably wonder why I use 960 instead of MapX / 2. Simple answer: because MapX always returns 0 for me! Code: var
CurrentWorm : TWPobj; StartX : Integer; procedure InitHooks; begin RegisterHook('OnFrame', ON_FRAME); RegisterHook('OnTurnBegin', ON_TURN_BEGIN); end; procedure OnFrame; begin if CurrentWorm <> nil then begin if StartX < 960 then begin if CurrentWorm.PosX > 960 then CurrentWorm.PosX := 960; end; if StartX > 960 then begin if CurrentWorm.PosX < 960 then CurrentWorm.PosX := 960; end; end; end; procedure OnTurnBegin; begin CurrentWorm := GetTekWormObj(); StartX := CurrentWorm.PosX; end; |
Author: | Gran PC [ Wed Jun 23, 2010 12:35 pm ] |
Post subject: | Re: Beginner problems |
You are not setting StartX anywhere. |
Author: | Pac-Man [ Thu Jun 24, 2010 10:56 am ] |
Post subject: | Re: Beginner problems |
Oops! Oh lol. I didn't see that. Well, beginner problems! Wait, is this not called? Or is the variable not global? Code: procedure OnTurnBegin;
begin CurrentWorm := GetTekWormObj(); StartX := CurrentWorm.PosX; end; |
Author: | Gran PC [ Fri Jun 25, 2010 8:03 am ] |
Post subject: | Re: Beginner problems |
Whoops, I didn't see that. Try showing some messages at the top with PrintMessage or whatever it's called in 0.6.5, you might figure it out. |
Author: | Pac-Man [ Fri Jun 25, 2010 12:12 pm ] |
Post subject: | Re: Beginner problems |
Yeah, I also wanted to do some debug stuff at the top, but I can't get the command to work. Always syntax error and stuff. |
Author: | Gran PC [ Fri Jun 25, 2010 2:17 pm ] |
Post subject: | Re: Beginner problems |
Could you copy the errors here? |
Author: | Pac-Man [ Fri Jun 25, 2010 9:21 pm ] |
Post subject: | Re: Beginner problems |
Code: procedure OnTurnBegin; begin CurrentWorm := GetTekWormObj(); StartX := CurrentWorm.PosX; ShowMessageOnTop(23, StartX); //Type mismatch end; I think I have to cast StartX to a string, but how? |
Page 1 of 2 | All times are UTC |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |