OFPEC Forum
Editors Depot - Mission Editing and Scripting => OFP - Editing/Scripting General => Topic started by: Flauta on 13 Jan 2005, 06:45:59
-
hi there! I need a scrpit that checs how many kills you'r doing when the script is running... maybe using the kill eventhandler??? does anyone knows how to make it? srry im noob on this...
What I need is to put an Global Value whit the kills in the period of the Scrpit is running... and change it to 0 when ends...
I think it could be done...
Thanks Anyway
-
I've tried too do this myself however had no such luck.
I could not figure out anyway to check WHO killed the person or if the person killed himself.
I think it can be done as well because the game keeps score it self on multi-player, I just cant figure out how.
So, if you get a script, I'd like to see it too.
-
http://www.ofpec.com/editors/resource_view.php?id=543
-
maybe using this...?
group1 AddEventHandler ["killed", {Kills = kills+1}]
something like that... right sorry no idea...
I will read the Eventhandler tute tonight...
-
put a trigger that covers the map that selects the side that you want to have kills counted for. Set condition = true
Call it trigAllWest (say)
Shortly after the start of the mission run a script that has the following code
Kills = 0
_vehListW = list trigAllWest
_i = 0
#loopWest
_veh = _vehListW select _i
{_x AddEventHandler [{killed}, {kills = kills + 1}]} forEach (crew _veh)
i = _i + 1
if (_i < count _vehListW) then {goto"loopWest"}
exitI have not tested this but it, or something close, should do what you want.
-
this can also do what you want, but THobsons solution will work better if you want to keep track of the kills of more than one unit. But THobsons doesn't look like it will do what you want... you would have to change it a little
{_x addeventhandler ["fired",{?_this select 1 = player(or the name of the person you want to keep track of):kills = kills + 1}]} foreach
basically mine only adds to the kill count if it is a certain person who kills them, whereas THobson's will add to it for every kill
-
But it tells your total kills... what im tryng to do, its to reduce the time (timeAcc) when you kill somebody, but u Disbalde it whit an action... Like Max Payne! I have Read the EventHandler tute... but I still Asking how you can make thoes Scripts! they'r Basic Chinise for me...
Maybe This will work?Using MaxPayne.sqs Script for example (no time to test it)
Kills = 0
_vehListW = list trigAllWest
_i = 0
? (accTime != 1): goto "coolDown"
Hint "Payn! Storming Your Barin! U feel everything goes slower"
setAccTime 0.9
#loopWest
_veh = _vehListW select _i
{_x addeventhandler ["fired",{?_this select 1 = Player):kills = kills + 1}]} foreach
(crew _veh)
i = _i + 1
TimeAcc (0.9 - i)
if (_i < count _vehListW) : {goto"loopWest"}
exit
#coolDown
hint "Your Brain Suddenly stops, you feel normal"
setAccTime 1
#ByeBye
-
wow, to that i'm afraid all i can say is...NO
here:
make a trigger covering the map
activated by your enemies present
on activation:nomore = false; {_x addeventhandler ["killed",{[_this select 1,player(or name of unit)] exec "MaxPayne.sqs"}]}; player(same one as in EH) addaction ["Don't slo-mo no more!!! AAAHHHH!!!!!","nomoreLSDforyou.sqs"]
MaxPayne.sqs
--------------------------
_killer = _this select 0
_unit = _this select 1
?nomore:exit
?(!_killer == _unit):exit
;obviously change the hints to what you want
hint "What a rush! LSD is slowing everyone down....."
_acc = .99
#loop-de-doo
?_acc <= 0:goto "coolit"
setAccTime _acc
_acc = _acc - .01
~.03
goto "loop-de-doo"
#coolit
~.5
_acc = .01
#loop-de-loop
?_acc >= 1:hint "All over, you gotta kill again to move slow some more";exit
setAccTime _acc
_acc = _acc + .01
~.015
goto "loop-de-loop"
-------------------------------------------
nomoreLSDforyou.sqs
-----------------------------------------
_unit = _this select 0
_action = _this select 2
removeaction _action
_unit addaction ["Gimme doze pills man! I wanna move slow!","LSDforme.sqs"]
nomore = true
exit
-------------------------------------------
LSDforme.sqs
---------------------------------------------
_unit = _this select 0
_action = _this select 2
removeaction _action
_unit addaction ["Don't slo-mo no more!!! AAAAHHHH!!!!!","nomoreLSDforyou.sqs"]
nomore = false
exit
-----------------------------------------------
that should do it. save each of these(except the trigger (duh)) as the script i called them (else you'll have to go back and change them in each script where i added the actions) and fix up the hint as you want them
-
You are right, I was only counting the number killed on one side and not taking account of who did the killing.
Bye the way should it be:
{_x addeventhandler ["killed",{[_this select 1,player(or name of unit)] exec "MaxPayne.sqs"}]} forEach (crew thislist) ;
or something?
-
To answer my own quesion. No. I think it might not work.
What should work though is:
{_x addeventhandler ["killed",{[_this select 1,player(or name of unit)] exec "MaxPayne.sqs"}]} forEach thislist ;
BUT: It would not put an EH on units that are inside vehicles, only on the vehicle themselves.
That is why I used a script that cycled through the units listed by the trigger and applied the EH to all crew of each vehicle. That way each living being gets an EH, even if they are inside a vehicle.
I have not tried nesting forEach. I just presumed that something like:
{{_x addeventhandler ["killed",{[_this select 1,player(or name of unit)] exec "MaxPayne.sqs"}]} forEach (crew _x) } forEach thislist ;
would not work.
Anyway it would be hard to read and de-bug.
-
Nice Work To all!! Im going out to Hollydays 1 Week.. so maybe I Won't test it...
Thanks a Lot for Helping! and 1 Question more... there is a maybe a Game Bug? 'cause im inside a Vehicle, (I only tested whit an AH-64) the command "Skiptime" Dosn't Work! I called it from an Older "maxPayne.sqs" script, whit the addaction command on me...(the player)
Any Idea? Shoul I Call Another Scrpit whit the Skiptime from "MaxPayne.sqs"?
See ya soon!!
-
I have never had a problem with skiptime. You are aware that it does not accelerate time it just resets the time to a new value?
-
hmm.. in my quick writing of it I missed the foreach
THobson, your last EH will be the best one to use....how funny that you think it won't work :D
-
Well how about that. I just tested it and it works. I thought the OFP engine might get mixed up about which _x went with which forEach, but it doesn't
-
its cause of the brackets, the way foreach works is it executes the code inside the string you pass on each element of the array
so it is adding a foreach command to each element inside the main array
-
I can see how it works, I just didn't realise the OFP engine was that smart - it can be pretty stupid in other ways.
-
how true ;D