BSL:Snippets: Difference between revisions
Jump to navigation
Jump to search
(moving in from main BSL page; made some comment corrections and tweaks) |
(adding lede, multiplication hack) |
||
Line 1: | Line 1: | ||
Various useful snippets of BSL that can be useful for modders. | |||
==Character setup== | |||
# an old but useful character setup function by geyser | # an old but useful character setup function by geyser | ||
func '''SpawnNameFlagHealthReset'''(string n, int f, int h, int r) | func '''SpawnNameFlagHealthReset'''(string n, int f, int h, int r) | ||
Line 18: | Line 20: | ||
} | } | ||
==Follow me== | |||
var bool follow_me = 1; | var bool follow_me = 1; | ||
Line 85: | Line 87: | ||
sleep 60 | sleep 60 | ||
fork dont_follow_me | fork dont_follow_me | ||
} | |||
==Multiplication hack== | |||
var int multiplicand; | |||
var int multiplier; | |||
var int mult_progress; | |||
var int product; | |||
func void '''multiply'''(int a, int b) | |||
{ | |||
product = 0; | |||
multiplicand = a; | |||
multiplier = b; | |||
mult_progress = 0; | |||
fork do_mult(); | |||
} | |||
func void do_mult(void) | |||
{ | |||
product = product + multiplicand; | |||
mult_progress = mult_progress + 1; | |||
if (mult_progress < multiplier) | |||
{ | |||
sleep(1); | |||
fork do_mult(); | |||
} | |||
} | } | ||
[[Category:Modding tutorials]] | [[Category:Modding tutorials]] |
Latest revision as of 23:06, 4 December 2015
Various useful snippets of BSL that can be useful for modders.
Character setup
# an old but useful character setup function by geyser func SpawnNameFlagHealthReset(string n, int f, int h, int r) { ai2_spawn(n); chr_teleport(n, f) if(h) chr_set_health(n, h) if(r) chr_inv_reset(n) } # sample usage func wave_setup { # note that the health and inventory-reset parameters can be omitted SpawnNameFlagHealthReset Griffin 23 600 SpawnNameFlagHealthReset Muro 22 2500 SpawnNameFlagHealthReset F_Er89 22 80 1 SpawnNameFlagHealthReset A_S1 24 }
Follow me
var bool follow_me = 1; ### beginning of the journey func follow_me_TV { # ai2_spawn charname # or somewhere else chr_lock_active charname fork follow } func follow { if (follow_me eq 1) { ai2_followme charname ai2_setmovementmode charname run sleep 180 fork follow } } ### events func dont_follow_me_TV_enter { follow_me = 0 } func dont_follow_me_TV_extit { follow_me = 1 fork follow } ### player orders func main { # Original code here fork do_follow_me fork dont_follow_me } func do_follow_me { chr_wait_animation 0 ORDERbk_fw_kick follow_me = 1 follow # in case he/she is passive right now ai2_passive charname 0 # sleep until anim finishes sleep 60 fork do_follow_me } func dont_follow_me { chr_wait_animation 0 ORDERbk_fw_punch follow_me = 0 ai2_idle charname # sleep until anim finishes sleep 60 fork dont_follow_me }
Multiplication hack
var int multiplicand; var int multiplier; var int mult_progress; var int product; func void multiply(int a, int b) { product = 0; multiplicand = a; multiplier = b; mult_progress = 0; fork do_mult(); } func void do_mult(void) { product = product + multiplicand; mult_progress = mult_progress + 1; if (mult_progress < multiplier) { sleep(1); fork do_mult(); } }