Popular Post Panallox Posted April 27, 2012 Popular Post Posted April 27, 2012 Summary As of r15982, variables used within scripts can be directly assigned to as you would using another programming language. That is to say, that the following set of predicates will work: @i = 1; @i++; @i *= 2; @i = @j = 1; @i -= @j; for( @i = 0; 10 > @i; @i++ ) { } while( (@i += 1) < 20 ) { } Support for all of the major operator methods have been included (+=, -=, /=, *= etc.) This announcement is to ensure that any and all problems encountered while using this method of accessing variables must be reported, along with any traces you can possibly provide (and a clear example of the script is appreciated.) This comes as a secondary update to the scripting engine to unify the language to conform to standards set by other languages. The scripting engine now supports both the direct invocation of user-defined functions (r15979 and r15981) and variable access systems (r15982.) Notes This does not affect previous scripts at all. The new engine converts patterns that match var = value; to set(var, value); for backwards compatibility. Testing was performed using all of the operator methods, and was tested using loops. However, nested operations have not yet been thoroughly tested. 15
Erid Posted April 27, 2012 Posted April 27, 2012 Yeah, great news!, I don't know why, but this made me very happy, it always annoyed me having to use set.
Lemongrass Posted April 27, 2012 Posted April 27, 2012 and now please run a small script to replace the code within the npc folder, that would be awesome!
Zeromaru Posted April 27, 2012 Posted April 27, 2012 (edited) I think in line 1092 of script.c there is a mistake. Edited April 27, 2012 by Zeromaru
Panallox Posted April 27, 2012 Author Posted April 27, 2012 I think in line 1092 of script.c there is a mistake. You're correct good sir. Thanks for pointing that out, wouldn't have seen it otherwise.
Vianna Posted April 27, 2012 Posted April 27, 2012 You should keep the values returned by search_str("set"), search_str("callfunc") and search_str("getelementofarray") into global variables to avoid searching for them at every occurrence of assignment statements and user-defined function calls.
Panallox Posted April 27, 2012 Author Posted April 27, 2012 You should keep the values returned by search_str("set"), search_str("callfunc") and search_str("getelementofarray") into global variables to avoid searching for them at every occurrence of assignment statements and user-defined function calls. Indeed, this was something I brought up in the staff channel on IRC. I've been trying to collect a list of additional changes that need committing, and this is on the list. You have a keen eye, great minds think alike
xRaisen Posted April 28, 2012 Posted April 28, 2012 Thanks! that will make our lives more easier. P.S If you are not busy, try adding abs() also. So the unidentified groupranditem() will be reverted to its normal Ya know what has been broken down there.
Panallox Posted April 29, 2012 Author Posted April 29, 2012 Update It's important to note that r15998 appears to fix a long-standing issue that appears to have been present in rAthena for an extended period of time. For whatever reason, the instance variable storage system was not being initialised (thus instance variables were not being saved or recorded.) If anyone has any reports prior to r15998 of instance variables not working, please let me know. It baffled our team temporarily as to why this was the case in the source. Thanks.
Sneaky Posted April 29, 2012 Posted April 29, 2012 was looking forward to this, thanks <3 Love you, Love it!
Emistry Posted April 29, 2012 Posted April 29, 2012 Wow...this is nice...xD now Z3R0 wont be needed to worry of writing these in the scripts xD hahaha~
rafoka Posted April 30, 2012 Posted April 30, 2012 Nice! I always enjoyed this new-old way of scripting (More Like-C) from that mod-released in the old ea. Good job ...
Ind Posted August 2, 2012 Posted August 2, 2012 the last known bug from this feature has been fixed in r16555. should you step by any bugs please step by our core bug tracker :3 thank you 5
Swadon Posted August 5, 2012 Posted August 5, 2012 Great ! But how to call a function without using "callfunc", I have not found how to do it. It does not work like that : - script Test_Call_Function -1,{ OnInit: Test("Hello !"); end; } function script Test { announce getarg(0),bc_all; return; } Thank you for your help !
Euphy Posted August 5, 2012 Posted August 5, 2012 @Swadon: The function needs to be loaded before it's called, so either move it before the script or place it in another script file altogether. 1
Recommended Posts