Dude lweapon and eweapons are the same damn thing, only difference is what vector they are stored in. They only require one script. Not two.
Dude lweapon and eweapons are the same damn thing, only difference is what vector they are stored in. They only require one script. Not two.
We had this conversation on Discord. I want them separate for my own purposes, not limited to keeping their refInfo segregated, and to ensure that there are an equal number of slots for creating enemy and player weapon scripts.
NPC scripts are hovering near 90%.
Alpha 3
Script
Code:npc script N { void run(){TraceToBase(64,10,2); this->X = 16;} }
Assembly
Code:N SETV d2,0 SETR d3,REFNPC PUSHR d3 SETR d4,SP PUSHR d4 SETV d2,0.0015 PUSHR d2 SETV d2,64 PUSHR d2 SETV d2,10 PUSHR d2 SETV d2,2 PUSHR d2 GOTO 32 POP d4 SETV d2,16 PUSHR d4 SETV d3,0.0028 PUSHR d3 PUSHR d2 SETR d6,d4 ADDV d6,0 LOADI d2,d6 POP d3 PUSHR d2 PUSHR d3 GOTO 37 POP d4 SETV d3,0 POP d3 QUIT TRACE5 POP d3 POP d3 POP d3 RETURN POP d2 POP d3 SETR REFNPC,d3 SETR NPCX,d2 RETURN
Remains to Do
Save the slot code int he quest file.
Allow npcs to access it and set the script slot (Enemy Editor)
Call the script in the ZC game loop.
Hope that it works.
Last edited by ZoriaRPG; 11-27-2018 at 08:22 AM.
http://www.zoriarpg.com/zc/LoE_Userbar.png http://zoriarpg.com/zc/EiyuuUserbar.png
http://www.zoriarpg.com/zc/CIS_Original.pnghttp://www.zoriarpg.com/zc/CIS_II_Userbar.png
Latest ZC 2.53 (Win32) | (Technical Specification | Changelog)
Latest ZC 2.55(Win32) | 2.55 Modules | (Techical Specification | Changelog)
ZC Source Code | ZClaunch Source Code
Featured Scripts & Headers: RPG.zh ( v. a0.97.1 ) ( RPG.zh Thread ) | Zelda 3 Thief's Town Treasure Chest Minigame (ffc) | Bobomb (enemy)
ZScript & ZC-Related Pastebin | ZC Dev & Builds | ARCHIVED ZC Dev & Builds | YouTube Channel | Quests and ZScript Repository
All of the code that I create and publish here is free for use, modification and distribution under the GPL v2.0, or v3.0 where applicable.
Some Clarification on Why They Are Separate
Amongst other reasons for which lweapon script, and eweapon script are separated, here are some others that, because of how ZASM and ZScript work internally, effectively mandate segregation:
1. The tables lweapon and eweapon have some different variables/functions. If there was only one weapon script type, then this->function() or this->var or this->arr[] might cause bugs, crashes, or so forth because there would be no ZASM to run them if assigned to a different type
2. Beyond that, this-> stuff is determined by script type during compilation The parser would have no clue what ZASM instructions to use without segregating the script types so that it pulls functions using the correct refvar IDs. Coimbining them would preclude using the this-> pointer, which would be awful.
Basically, the script type tells the parser what tables to use to match strings in a script to ZASM instructions, or to Opcode constructors. If there was only one weapon script type, we'd need to incent a wholly new parser just to make it work! That's pretty far from 'simplification'.
3. Last, because lweapon and eweapon are segregated internally, calling RunScript(SCRIPT_TYPE, ID, CONST) would present some technical issues if we don't know if the script is functioning for an lweapon, or an eweapon. Segregation eases this, and makes integration into the extant editors simpler.. This notwithstanding, is the most trivial of the reasons that they need to be exclusively typed.
http://www.zoriarpg.com/zc/LoE_Userbar.png http://zoriarpg.com/zc/EiyuuUserbar.png
http://www.zoriarpg.com/zc/CIS_Original.pnghttp://www.zoriarpg.com/zc/CIS_II_Userbar.png
Latest ZC 2.53 (Win32) | (Technical Specification | Changelog)
Latest ZC 2.55(Win32) | 2.55 Modules | (Techical Specification | Changelog)
ZC Source Code | ZClaunch Source Code
Featured Scripts & Headers: RPG.zh ( v. a0.97.1 ) ( RPG.zh Thread ) | Zelda 3 Thief's Town Treasure Chest Minigame (ffc) | Bobomb (enemy)
ZScript & ZC-Related Pastebin | ZC Dev & Builds | ARCHIVED ZC Dev & Builds | YouTube Channel | Quests and ZScript Repository
All of the code that I create and publish here is free for use, modification and distribution under the GPL v2.0, or v3.0 where applicable.
There are currently 1 users browsing this thread. (0 members and 1 guests)