Graal Forums  

Go Back   Graal Forums > Development Forums > Tech Support
FAQ Members List Calendar Today's Posts

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 06-22-2006, 10:52 AM
JustBreathe JustBreathe is offline
Registered User
Join Date: Jun 2006
Posts: 59
JustBreathe is on a distinguished road
Params Problem

PHP Code:
NPC1:

function 
onCreated()
  {
  
foo"bar" ); // returns false;
  
}

public function 
foo()
  {
  
NPC2.bar"foo" );
  return 
params;
  } 
PHP Code:
NPC2:
function 
onCreated()
  {
  
NPC1.foo"bar" ); // returns "foo,";
  
}

public function 
bar()
  {
  return 
params;
  } 
Inconsistency 1:
When called from within the function, params variable is NOT set. When called outside, it IS set.

Inconsitency 2:
When calling an external function, params variable are overwritten. ( Should be kept the same within the process )


Temp Fix 1: Use function foo( param1, param2 ), but limits the amount of params you COULD potentially have!

Temp Fix 2: temp.oparam = params; foo(); params = temp.oparam;
Reply With Quote
  #2  
Old 06-22-2006, 02:46 PM
Admins Admins is offline
Graal Administration
Join Date: Jan 2000
Location: Admins
Posts: 11,693
Admins has much to be proud ofAdmins has much to be proud ofAdmins has much to be proud ofAdmins has much to be proud ofAdmins has much to be proud ofAdmins has much to be proud of
The params[] array is only set when a script function is called from outside, or when an event is invoked on a gani script (and you are using if (playerenters) etc. instead of onPlayerEnters). There is also only one params[] for the whole script engine, so it gets overwritten. It would be too slow to copy the function parameters to a separate array on each function call, also there are many scripts relying on the fact that you can access the original params[] array in subfunctions.
Reply With Quote
  #3  
Old 06-22-2006, 02:48 PM
JustBreathe JustBreathe is offline
Registered User
Join Date: Jun 2006
Posts: 59
JustBreathe is on a distinguished road
Quote:
Originally Posted by Stefan
The params[] array is only set when a script function is called from outside, or when an event is invoked on a gani script (and you are using if (playerenters) etc. instead of onPlayerEnters). There is also only one params[] for the whole script engine, so it gets overwritten. It would be too slow to copy the function parameters to a separate array on each function call, also there are many scripts relying on the fact that you can access the original params[] array in subfunctions.
Wouldn't it be possible to do like the real params? Use the temp.params = params; at the start of each function? ( therefore, params would be local to the function ? )
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 06:14 PM.


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