Graal Forums

Graal Forums (https://forums.graalonline.com/forums/index.php)
-   NPC Scripting (https://forums.graalonline.com/forums/forumdisplay.php?f=8)
-   -   Shorten (https://forums.graalonline.com/forums/showthread.php?t=22256)

lordhelmut 01-28-2002 06:00 AM

i completely started over.

// NPC made by Lord Helmut
//255x144 width=63 height=48

if(created){
this.hearts=5;
this.speed=.1;
this.fdir=0;
this.fsprite=0;
this.fswimsprite=0;
setimgpart #f,0,0,63,48;
}
if(playerenters){
timeout=.05;
}

if(timeout){
if (random(1,40)<3) this.fdir=int(random(0,4));
if (this.fdir==0 && !onwall(x+2,y-.1)) y-=this.speed;

if (this.fdir==1 && !onwall(x-.5,y+1.5)) x-=this.speed;

if (this.fdir==2 && !onwall(x+2,y+3.1)) y+=this.speed;

if (this.fdir==3 && !onwall(x+4.1,y+1.5)) x+=this.speed;
if (this.fswimsprite==0) this.fsprite=0;
if (this.fswimsprite==1) this.fsprite=0;
if (this.fswimsprite==2) this.fsprite=1;
if (this.fswimsprite==3) this.fsprite=1;
if (this.fswimsprite==4) this.fsprite=0;
if (this.fswimsprite==5) this.fsprite=0;
if (this.fswimsprite==6) this.fsprite=2;
if (this.fswimsprite==7) this.fsprite=2;
this.fswimsprite++;
if (this.fswimsprite>=8) this.fswimsprite=0;
timeout=.05;
}

if (onwater(x+2,y+1.3)) {
if (this.fdir==2) {setgifpart b_piranah.png,63*1,48*0,63,48;}
if (this.fdir==0) {setgifpart b_piranah.png,63*0,48*0,63,48;}
if (this.fdir==1) {setgifpart b_piranah.png,63*3,48*0,63,48;}
if (this.fdir==3) {setgifpart b_piranah.png,63*2,48*0,63,48;}
}

it works fine accept...the fish sometimes swims onto land and for some reason it doesnt display fish sprites =( it should the fish swimming around really fast but it wont show the sprites of the tail moving

lordhelmut 01-28-2002 06:02 AM

Quote:

Originally posted by LiquidIce00


thats fine thnk u..
ur staff was giving me beef and being smart asses when I was talking to them a while ago .. so thats not cool

same for your PW =/
We all got inmature asses for staff but I gotta deal with it because everyone willing to be GP or FAQ (97% of population) are *****s

adam 01-28-2002 12:33 PM

:megaeek: *laughs hysterically* You had a script from kyle0654 and you out of the blue decided to start over. !@# you freak.

Kyle! don't bother helping anybody! they are ungrateful and Your better off working on NW scripts!.

Slaktmaster 01-28-2002 03:00 PM

Kyle's shortened version was nice and compact but won't work when turning that script into a baddy or whatever it will be because it has sleep in the for loop. :(

joseyisleet 01-28-2002 05:42 PM

Quote:

Originally posted by lordhelmut


same for your PW =/
We all got inmature asses for staff but I gotta deal with it because everyone willing to be GP or FAQ (97% of population) are *****s

Most player worlds do have immature staff (maybe even all). The owner's of the player world's should not only chose their staff because of their ability but, also their characteristics. Not just go on player worlds and mass out "I'm making a player world and if you're a good scripter or level designer/maker pm me to try out." That's just my opinion though...

adam 01-29-2002 03:36 AM

At least try to learn something from the techneques that you can plainly see in most good scripts.

lordhelmut 01-31-2002 06:02 AM

how do you make NPCs work with multiple players in a level?

Faheria_GP2 01-31-2002 06:08 AM

players[index].variable

for some of my baddies, I do a for-loop to find the closest player, and set him to "this.chase"...then I have the baddie chase after players[this.chase].x and players[this.chase].y

Gohan43331 01-31-2002 07:39 AM

Quote:

Originally posted by lordhelmut
if(timeout){
if (random(1,40)<3) this.fdir=int(random(0,4));
if (this.fdir==0 && !onwall(x+2,y-.1)) y-=this.speed;

if (this.fdir==1 && !onwall(x-.5,y+1.5)) x-=this.speed;

if (this.fdir==2 && !onwall(x+2,y+3.1)) y+=this.speed;

if (this.fdir==3 && !onwall(x+4.1,y+1.5)) x+=this.speed;

for this, instead of !onwall(x,y), why not use onwater(x,y) ?

Not sure if this will work, since i havn't tested it... :P

Gohan

*edit*
I didn't see that last part, but you can also add:
NPC Code:
if(!onwater(x,y)) { x=this.startx; y=this.starty; }


or better yet, make it go to the closest place where there is water. Ex: water is to the south:
NPC Code:

for(this.wc=0;!onwater(x+2,y+.1);this.wc++) {y+=this.speed}


Not sure...but just trying...

lordhelmut 01-31-2002 09:50 AM

because im testing to see if its on a wall? I want it to be in water. Thanks Soul. That helped =D

nyghtGT 01-31-2002 12:07 PM

Quote:

Originally posted by LiquidIce00
its funny
u always asking for help on the forums and you have ur own PW ..
I used to help you out but then your PW came out and I saw Dark Warlock's outside building (u use it outside of onlinestartlocal) and I asked about 30 times to take that down b/c Dark Warlock does not want his stolen building there. So dont expect any help towards your PW from me. and I do help other PW's .. im friends w/ Maximus (Delteria) , Brandon (Andor), and more ..
so if u want help dont be an ass when we ask of something from u

*would have Co Owned Delteria if he was not dumb*

nyghtGT 01-31-2002 12:08 PM

Quote:

Originally posted by lordhelmut


sorry bout that. I remember you saying that and I was really busy and forgot to take it down. I have changed it somewhat now. Its the same basic shape but not the same thing. If you would rather me change it more please say so.

Want me to make a house outside for you,
i've been in a rather good mood for level
making ...

kyle0654 01-31-2002 09:07 PM

Quote:

Originally posted by Slaktmaster
Kyle's shortened version was nice and compact but won't work when turning that script into a baddy or whatever it will be because it has sleep in the for loop. :(
Well, you could keep a variable for the animation step and increment and set it every 10 timeouts (.3 * 10 = 3, which is the sleep). I'd have done that if I'd have known you wanted to eliminate the use of sleep in your script...but sometimes the sleep command can be useful, so I left it.

kyle0654 01-31-2002 09:08 PM

er...redo your timeout setup and set the animation every timeout (.3) and do the rest every 10 timeouts.

TDK_RC6 01-31-2002 09:19 PM

will somoeone shorten this please


if (created) {
destroy; }


All times are GMT +2. The time now is 08:16 PM.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.
Copyright (C) 1998-2019 Toonslab All Rights Reserved.