Join Date: Sep 2005
Location: Peria, New Zealand
Posts: 6,770
|
|
Quote:
;wac file - nestable IF/THEN/ELSE/ENDIF boolean logic
;
;WAC post directory w:\vp\program\wac - commands listed in GAME.WAC
;WAC debug screen under shift-F12, numlock arrows to select and scroll
;
;GLOBAL WAC is GAME.WAC (executed first)
;
;MISSION WAC is misname.WAC (executed second)
;
;Left to Right order of operations
;
;---WAC LANGUAGE COMMANDS
;nestable flow control
; IF THEN ELSE ENDIF
;boolean logic
; AND OR XOR
;function modifier
; NOT
;comments
; ; /
;
;Syntax - parens optional, line returns and tabbing optional
;
; if trigger1(params) and trigger2(params) then
; event1(params)
; event2(params)
; endif
;
;Example
;
; I want to open doors in group 12 the first time I enter area 1501
;
; if location(1501) and never() then
; opendoors(12)
; endif
;
;---VARIABLES & IMMEDIATES (a variable can always be used as an immediate)
;"STRING" immediate string value
;# immediate decimal number
;anim_move immediate equate from ADM file
;ammo_name immediate ammo name (ex. ammo2tgt ammo_rocket 1)
;fx_fxname immediate effect name (ex. fxrain fx_effect_lightning)
;effect_name immediate effect name (ex. fxrain effect_lightning)
;SS_SoundSet immediate soundset name
;sSoundSet immediate soundset name (alternate syntax)
;face_name immediate face name (ex. ssnface 45 face_happy)
; face_normal
; face_happy
; face_sad
; face_smirk
; face_angry
; face_surprise
; face_disgust
; face_fear
; face_aggressive
;
;V# V0 to v511 game variables, cleared at start of mission
;G# G0 to vG11 global variables, not cleared during link
;M# Music Script Variable
;result current return/accumulator value (mostly for debug)
;ticks number of seconds into game
;GameOver true is game is over
;Win true if blue team won
;Lose true if red team won
;wind used by SWING, FLICKER, and particle wind2
;health player's health/hp value
;mana player's mana
;neartype the type of the nearest enemy (from items.def dialog)
;neardist the distance to the nearest organic
;nearmove the anim move of the nearest organic (setable)
;nearid the unique dcb/id of the nearest organic
;neartid the id of the organic's target or 0 if no target
;nearblind
;nearflying
;nearguard
;nearSSN
;nearWP
;nearGroup
;nearHP
;deadDist the nearest corpse info
;DdeadType
;ddeadSSN
;DdeadMove
;DdeadGroup
;bbadDist the nearest badguy info (team 2)
;bbadType
;bbadSSN
;bbadMove
;bbadGroup
;---TRIGGERS (# param can be number or variable)
;never() true if current IF has never fired, for one time only events
;elapse(#) true if past # seconds since current IF activated
;
;-IF Link (these commands fire once only for every fire of linked IF)
;previous true if previous (same nesting level) IF fired
;chain(#) true if previous (same nesting level) IF fired # seconds ago
;link(#1,#2) true if IF #1 away from current IF fired #2 seconds ago
;
;-Game Time (seconds of WAC script running)
;past(#) true if past # seconds into game, keeps firing after #
;before(#) true if before # seconds into game. keeps firing before #
;ontick(#) true if ontick #, only fires once
;
;random(#) randomly true 1 in # times, sets RND for additional tests
;location(#) true if you are at that music location
;area(#) true if within MED area without checking vertical
;area3D(#) true if within MED 3D area
;outside() true if you are not in a blink box
;waveready() true if no talking going on
;groupdead(#) true if entire group is dead
;groupalive(#) true if anyone in group is alive
;ssnwounded(#) true if ssn is wounded
;ssndead(#) true if ssn is dead
;ssnalive(#) true if ssn is alive
;ssnride(#) true if any organic is standing on SSN
;ssnonssn true if SSN is standing on SSN
;ssnnearssn true if SSN is near SSN within dist
;ssnlosssn true if SSN is near SSN within dist and has LOS
;ssnseesssn true if SSN is near SSN within dist and can see it
;meride(#) true if player is standing on SSN
;meattached(#) true if player is attached to SSN
;medrive(#) true if player is driving SSN
;meongun(#) true if player is on emplaced weapon on SSN
;ssnloc(#,#) true if vehicle or person is in music location
;ssnarea(#,#) true if vehicle or person is in 2D med area #
;ssnarea3D(#,#) true if vehicle or person is in 3D med area #
;dooropen(#) true if group # has door open
;event(#) true if med event has triggered
;squadevent(#) true if squad event is in que, sets squadSSN to talker
;playerfired(#) true if player has pressed fire and has slot # selected
; 1=knife, 2=small arm, 3=main weapon, ect..
;
;---VARIABLE COMPARE
;eq(#,#) true if #==#
;ne(#,#) true if #!=#
;lt(#,#) true if #<#
;gt(#,#) true if #>#
;le(#,#) true if #<=#
;ge(#,#) true if #>=#
;true(#) true if #!=0
;false(#) true if #==0
;
;---VARIABLE MODIFY
;set(var,#) set var to #
;add(var,#) add # to var
;sub(var,#) subtract # from var, clamp at 0
;inc(var) add 1 to var
;dec(var) subtract 1 from var, clamp at 0
;---EVENTS (# param can be number or variable)
;squadclear clears squadevent selected by squadevent(#)
;forceanim(anim) forces all organics into anim slot (debug only)
;report("text") pop-up debug report window
;report#("text",#) pop-up debug report window with number
;text("text") output text to chat - right side
;text#("text",#) output text to chat w/# - right side
;consol("text") output text to consol - left side
;consol#("text",#) output text to consol w/# - left side
;
;flash produce a flash of lightning & thunder
;farflash produce a far away flash of lightning & thunder
;quake(#) earthquake for # 10th of a seconds
;
;colorfade(#) seconds for color to transition (zero is normal)
;sun(#,#,#) sets sun rgb ENV override
;sky(#,#,#) sets sky rgb
;ground(#,#,#) sets ground rgb
;ceiling(#,#,#) sets ceiling rgb
;floor(#,#,#) sets floor rgb (inside ground)
;lightning(#,#,#) sets the color of the lightning
;cloud(#,#,#) sets the cloud color
;gain(#,#,#) sets the brightness of the whole scene
;
;fogcolor(#,#,#) set fogcolor to R,G,B, changes at color fade rate
;fog(#,#,#) same as fogcolor
;skyfogcolor(#,#,#) set skyfogcolor to R,G,B
;skyfog(#,#,#) same as skyfogcolor
;fogtype(#) set fog type 0=fog, 1=haze, 2=haze wall, 3=fog wall
;fogdist(#) sets fogdist to # meters
;movefog(#,#) move fogdist to # meters over # seconds
;skyspeed(#) sets the sky movement speed
;skyheight(#) sets the height of the sky
;
;sound(sSSNAME, dist, head) plays soundset at distance(meters) and heading(bangle)
;
;nearwave("wave.wav", dist) plays wave file from the mouth of the nearest enemy with max dist to be heard
;nearanim(anim_move) sets the nearest enemy to ADM move slot
;
;SSNwave(ssn, "wave.wav", dist) plays wave file from the mouth of the ssn with max dist to be heard
;wave("wave.wav", dist) plays wave file from mouth of player
;SSNanim(ssn, anim_move) sets the ssn to ADM move slot
;SSNradio(ssn, "wave.wav") sets the ssn to talk on radio
;
;SSNmax(ssn, maxengage) set max engage distance
;SSNmin(ssn, minengage) set min engage distance
;SSNatt(ssn, maxattack) set max attack distance
;SSNSpawn(ssn, spawn count) set the spawn count, 0=don't respawn
;GroupMax(group, maxengage) set max engage distance
;GroupMin(group, minengage) set min engage distance
;GroupAtt(group, maxattack) set max attack distance
;GroupSpawn(group, spawn count) set the spawn count, 0=don't respawn
;remove(grp) remove group # without a trace
;kill(grp) kill group #
;removeSSN(ssn) remove SSN # without a trace
;killSSN(ssn) kill SSN #
;teleport(grp,tgt) teleport group # to target #
;telessn(ssn, tgt) teleport SSN # to target #
;targetfx(tgt) create med particle fx at target #
;sound2tgt(ss,tgt) create ssoundset at target # (ex. sound2tgt sSoundSet 1)
;ss2ssn(ss,ssn) create ssoundset at center of ssn
;ammo2tgt(ammo,tgt) create ammo # at target # (ex. ammo2tgt ammo_rocket 1)
;fx2tgt(fx,tgt) create fx # at target # (ex. fx2tgt effect_lightning 1)
;opendoors(group) open doors in group #
;closedoors(group) close doors in group #
;SSNtoWP(ssn, wp) redirect SSN to WP list
;GtoWP(group, wp) redirect Group to WP list
;ammorain(ammo) rain down ammo # somewhere near player
;ammoarea(ammo, area) rain down ammo # somewhere inside area #
;fxrain(fx) rain down effect # somewhere near player
;ssncspd(ssn,speed) set ssn to combat speed of #
;ssnpspd(ssn,speed) set ssn to patrol speed of #
;ssnuse(ssn) snap ssn to emplaced weapon if within 3 meters
;ssnrelease(ssn) remove ssn from emplaced weapon
;ssn2ssn(ssn, ssn) have ssn goto ssn and try to snap to emplaced
;ssnface(ssn, face) set face expression of ssn
;ssnguard(ssn, #) set ssn to guard 1=ON, 0=Off
;ssnturn(ssn, heading) turn ssn to heading 0-360
;ssnhp(ssn, hp) set ssn's hitpoints to hp
;blockfire(wpnkey, #) blockfiring of weapons under key, 0=fire, 1=block
;
|
If you want a .wav to be played, make a command like this:
if ssnarea(10000,1) and never() then
wave("wave.wav", 400)
endif
That means if the player is in AREA 1 then play the wave file at a sound volume of 400.
Look at what I posted above in the quote. It tells you pretty much all the .wac commands to know.
__________________
Intel Core Duo E7300 2.66GHz // SuperTalent DDR2 800 2GB // ASUS nVidia GeForce 8400GS 512MB // Western Digital 7200RPM 320GB SATA // LG GH-20LS 20X SATA DVD-RAM // Windows XP Pro 32-bit // Thermaltake XP550 NP 430W // Thermaltake SOPRANO SECC Black
|