Graal Forums

Graal Forums (https://forums.graalonline.com/forums/index.php)
-   Old Scripting Engine (GS1) (https://forums.graalonline.com/forums/forumdisplay.php?f=154)
-   -   problem with lag? does "destroy" really get rid of the npc? (https://forums.graalonline.com/forums/showthread.php?t=81982)

johny023 09-24-2008 09:44 PM

problem with lag? does "destroy" really get rid of the npc?
 
i've made a minigame to add into my offline game... and in the minigame you must defend the castle from waves of monsters, after a few waves it starts to lag and after a few more.. it gets to the point where i can't even move, and it eventually gets so bad graal just closes for no reason. in the earlier levels more monsters spawn, it was working just fine with 5-10 spawning at once but after a few waves i can't even spawn 2 without it lagging really bad. so i thought maybe it's just that wave that makes it lag so i pressed F4 skipped to that wave and set everything to be the same way it was before, it worked fine? no lag at all? then i thought.. maybe the "destroy" trigger doesn't get rid of the npc.. maybe it only hides it and stops it from doing anything...

for each wave of monsters i have a npc that uses the putnpc trigger and when the npc dies i used the destroy trigger to get rid of it.
can someone tell me why it lags? and how to fix it?

sorry if i put this in the wrong place not sure where to put it.

Chompy 09-24-2008 10:17 PM

Are you using destroy(); clientside? If so, try use it serverside.

Some code(s)/snippet(s) would help alot though..

napo_p2p 09-24-2008 11:22 PM

Quote:

Originally Posted by Chompy (Post 1426002)
Are you using destroy(); clientside? If so, try use it serverside.

Some code(s)/snippet(s) would help alot though..

He said he's making an offline game, so there is no serverside :P.

Ideally, destroy should completely remove the NPC. However, from what you have stated it is a possibility that the offline mode is leaving destroyed NPCs in memory. Still, it is also possible there is another piece of code that is causing the slowdown. As Chompy said, providing snippets of the code would help us find an answer.

johny023 09-25-2008 12:13 AM

i'm not really sure what part of the code is needed though... the npc that places the waves of monsters, the monsters, or your allys?

to me it doesn't seem to be the allys it lags with or without them... so what would you need?

sorry for taking so long to reply was busy and i'll need to go to sleep soon, if i don't reply in 2-3 min just check back tomorrow plz

and is there a way to set it serverside in a offline world? if there is i'll try that.

cbk1994 09-25-2008 12:24 AM

Quote:

Originally Posted by johny023 (Post 1426075)
and is there a way to set it serverside in a offline world? if there is i'll try that.

Yes, add //#SERVERSIDE at the top of the npcs.

Not really. Don't. Please.


We probably need to see the code for how you are placing the monster, and how you are trying to destroy it.

johny023 09-25-2008 02:00 AM

Quote:

Originally Posted by cbk1994 (Post 1426078)
Yes, add //#SERVERSIDE at the top of the npcs.

Not really. Don't. Please.


We probably need to see the code for how you are placing the monster, and how you are trying to destroy it.

well here's the script i used to get rid of them

PHP Code:

if (this.hp<=&& timeout){
hearts 0;
setcharani goblin_death,;
sleep 1;
credits += 40;
destroy;


and here's the script i'm using to place the npcs


PHP Code:

if (timeout) {

this.random(0,100);
this.i2 random(0,100);
this.i3 random(0,100);
this.i4 random(0,100);
this.i5 random(0,100);
this.i6 random(0,100);
this.i7 random(0,100);
this.i8 random(0,100);
this.i9 random(0,100);
this.i10 random(0,100);
this.i11 random(0,100);
this.i12 random(0,100);

if (
this.i<=40 && wolvesleft>=0putnpc block.gif,gg_wolf.txt,random(20,40),61;
if (
this.i2<=40 && wolvesleft>=0putnpc block.gif,gg_wolf.txt,random(20,40),61;
if (
this.i3<=40 && wolvesleft>=0putnpc block.gif,gg_wolf.txt,random(20,40),61;
if (
this.i4<=40 && wolvesleft>=0putnpc block.gif,gg_wolf.txt,random(20,40),61;

if (
this.i5<=40 && snakesleft>=0putnpc block.gif,gg_snake2.txt,random(20,40),61;
if (
this.i6<=40 && snakesleft>=0putnpc block.gif,gg_snake2.txt,random(20,40),61;
if (
this.i7<=40 && snakesleft>=0putnpcblock.gif,gg_snake2.txt,random(20,40),61;

if (
this.i8<=40 && goblinsleft>=0putnpc block.gif,gg_goblin.txt,random(20,40),61;
if (
this.i9<=40 && goblinsleft>=0putnpc block.gif,gg_goblin.txt,random(20,40),61;
if (
this.i10<=40 && goblinsleft>=0putnpc block.gif,gg_goblin.txt,random(20,40),61;
if (
this.i11<=40 && goblinsleft>=0putnpc block.gif,gg_goblin.txt,random(20,40),61;
if (
this.i12<=40 && goblinsleft>=0putnpc block.gif,gg_goblin.txt,random(20,40),61;


it's probably not the best script.. but it's the only way i could find to make a a random amount of npcs to spawn.

and i'll try the serverside thing

edit: i tried changing it to serverside but it didn't help any.

Pelikano 12-13-2008 08:43 PM

Not sure, but I think the "//#SERVERSIDE" was a joke oO

Actually I'm pretty sure that it was a joke xD


Also I am not sure AT ALL, but I think you should use "this.destroy();"
oO

LoneAngelIbesu 12-13-2008 08:53 PM

Quote:

Originally Posted by Pelikano (Post 1449101)
Also I am not sure AT ALL, but I think you should use "this.destroy();"
oO

No. destroy(); is GS2. destroy; is GS1.

Pelikano 12-14-2008 01:26 PM

Oh okay :D

Tigairius 12-14-2008 04:54 PM

Quote:

Originally Posted by LoneAngelIbesu (Post 1449104)
No. destroy(); is GS2. destroy; is GS1.

Well it's obj.destroy(), then if no obj. is specified it just destroys the object in scope.


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

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