Doolittle/Sandbox – User
No edit summary |
No edit summary |
||
Line 22: | Line 22: | ||
[http://community.bistudio.com/wiki/Category:ArmA_Classes ArmA Classes] | [http://community.bistudio.com/wiki/Category:ArmA_Classes ArmA Classes] | ||
[http://community.bistudio.com/wiki/ArmA:_Moves ArmA: Moves] |
Revision as of 05:03, 26 July 2007
Ah, scripting. Here's some fun stuff:
myfunc = {objnull};
_unit = ["foo"] call myfunk;
if (isnull _unit) then {hint "wow!"};
You won't see "wow". The error is it should be spelled myfunc... but it's hard to catch because, since myfunk is not defined, _unit is not defined, so isnull on a not defined var doesn't even work. So it's hard to track what went wrong here.
More interesting stuff about private. I never got private. Why is it needed? This was interesting:
myfunc = {
_temp = [1,2,3];
myglobal = _temp;
};
call myfunc;
player sidechat str myglobal;
myglobal comes out empty. But if you put private ["_temp"] then it is filled with values. Like the engine knows it's a temp var and so copies it over. Otherwise it doesn't think it's temp (without private) so it doesn't bother to copy, but then the value gets dropped from memory anyways.
- I've noticed that when you are working with arrays, if the array isn't properly initialized, either with private or a simple _temp []; then you get some undefined type errors and unexpected results. As soon as you initialize the array it seems ok. I've just noticed this over the past few days myself. hoz