Thread: Groupchain.sqs
-
28-07-2004, 18:28 #1Member
- Registered
- 07/10/02
- Location
- thuis achter mijne PC
- Posts
- 9,530
- iTrader
- 2 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 6/114
Groupchain.sqs
Een simpel maar nuttig AI fix scriptje dat ik gisteren geschreven heb.
Ge zult het ongetwijfeld al meegemaakt hebben : Ge laat een aantal groupen in een bepaald gebied patrouilleren en als er ene sterft in één van die groupen blijven de andere units gewoon in SAFE behaviour verder patrouileren...; ***************************************
; GROUPCHAIN.sqs by Blanco
; 28 / 07 / 04
; ***************************************
; Execute it with :
; [name of the groups] exec "groupchain.sqs"
;
; example
;
; [grp1,grp2,grp3] exec "groupchain.sqs"
;=========================================
_c = count _this
_allunits = []
_grpcount = 0
#REPEAT
_b = 0
_grp = _this select _grpcount
_u = units _grp
#CYCLE
_man = _u select _b
_allunits = _allunits + [_man]
_b =_b + 1
~0.2
?_b < count _u : goto "CYCLE"
?_grpcount < _c : _grpcount = _grpcount + 1;goto "REPEAT"
#CHECK
?"behaviour _x != ""SAFE""" count _allunits > 0 OR "!alive _x" count _allunits > 0 : goto "CHANGEBEH"
~1
goto "CHECK"
#CHANGEBEH
"_x SetBehaviour ""AWARE""" foreach _allunits
~1
#PICKONE
_countall = count _allunits
_r = random _countall
_r = _r - _r %1
_alarmguy = _allunits select _r
if (alive _alarmguy) then {goto "CHECKSIDE"} else {goto "PICKONE"}
#CHECKSIDE
?side _alarmguy == WEST : goto "W"
?side _alarmguy == EAST or side _alarmguy == RESISTANCE : goto "E"
#W
_WESTVOICES = ["eng20","eng21","eng40","eng18","eng19","eng12 "]
_r = random (count _WESTVOICES)
_r = _r - _r %1
_alarmguy say (_WESTVOICES select _r)
exit
#E
_EASTVOICES = ["rus15","rus10","rus6","rus1"]
_r = random (count _EASTVOICES)
_r = _r - _r %1
_alarmguy say (_EASTVOICES select _r)
exit
Dit script lost dat op.
oooooooooooooooooooooooooooooooooooooooooooooo
============== FAQ =======================
oooooooooooooooooooooooooooooooooooooooooooooo
Hoe activeren ?
=================
[groupsnamen gescheiden door een komma] exec "groupchain.sqs"
Vb :
[grp1,grp2, grp3] exec "groupchain.sqs"
ENKEL groupnamen zijn toegelaten! GEEN individueele units!
Hoe creeer ik een groupnaam?
==========================
Een groupnaam creer je via het command Group
Zet in de init van één van de units van de group :
Grp1 = group this
Nu herkent OFP de units uit die group als Grp1
Waar activeren ?
==================
- In een init van een unit
- In het onactivation veld van een trigger
- In een script
- In de init.sqs
- In het onactivation veld van een waypoint.
Met hoeveel groupen kan ik het script activeren?
=========================================
- On beperkt
Ik heb 2 groupen (grp1, grp2) en een individueele unit (A1) die ook wil laten gebruik maken van Groupchain.sqs? Is dat mogelijk?
================================================== ======
Ja.
Activeer het script op deze manier :
[grp1,grp2,group A1] exec "groupchain.sqs"
Uw script werkt niet. Ik schiet in de lucht en slechts één group of unit neemt zijn wapen.
================================================== =======
Kan gebeuren, maar enkel als je friendly bent tov die groupen.
Het nemen van het wapen staat niet perse gelijk aan behaviour "AWARE"
Als een friendly unit beschoten wordt door een andere friendly unit gaan ze hun wapen nemen maar hun behaviour veranderd niet. Pas als je iemand doodschiet (of meerdere, hangt af van rank) gaat ze je als vijandig beschouwen en veranderd hun behaviour wel.
Iemand roept iets als ze hun behaviour veranderen?!
============================================
Inderdaad. Dat is ingebouwd in het script. Als iemand zijn behaviour veranderd of sterft gaat iemand (moet wel leven) random uit één van die groupen alarm slaan.
De US in't Engels, de Russen en Resistance in Russisch.
Nog vragen?
==============
Let me know.
Known Bugs
==============
BugfreeLast edited by Blanco; 28-07-2004 at 18:55.
no votes
-
-
28-07-2004, 18:32 #2
cool
zo wat meer reactie en klappenans van de tegenstanders is waar ik naar op zoek benno votes
-
28-07-2004, 21:54 #3Member
- Registered
- 01/08/03
- Location
- Antwerpen
- Posts
- 8,672
- iTrader
- 9 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 5/28
hmmm idd nice, direct es teste
PSN: Atrox87.no votes
-
28-07-2004, 22:57 #4
gedaan met stealth ???
das toch wel een bug van formaat ozu ik zeggenno votes
-
28-07-2004, 23:37 #5Member
- Registered
- 07/10/02
- Location
- thuis achter mijne PC
- Posts
- 9,530
- iTrader
- 2 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 6/114
no votes
-
29-07-2004, 00:05 #6
awel ja, als ge ne group van 2 kerels hebt, ge schiet den eerste neer en den tweede die wel ge-alert is kort daarna ook
de groups die in de buurt staan zijn sowieso ook gealert worden
ik zou dit moeten testen om te zien of dit klopt, maar dit was mijn eerste gedacht toen ik dit las
mss even verduidelijken als dit niet klopt ?no votes
-
29-07-2004, 20:09 #7Member
- Registered
- 07/10/02
- Location
- thuis achter mijne PC
- Posts
- 9,530
- iTrader
- 2 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 6/114
Het klopt wat ge zegt maar dan activeer je het script toch niet met die groep die in de buurt staat. JIJ beslist welke groepen interactie hebben met elkaar, niet het script. Ik bedoel, het "detecteerd" geen groupen die in elkaars buurt staan.
Alles bij elkaar werkt groupchain feilloos en heb ik het simpel kunnen houden.
Ik zou dit al vroeger kunnen geschreven hebben, maar zeker niet zo simpel.
ik check met slechts één lijn of iemand uit (al) die groepen die jij opgeeft zijn behaviour veranderd of sterft :
Ik had dit nodig in functie van mijn trenchscript ,dat als alles goed loopt morgen gereleased word. Stel u voor je hebt twee rijen met soldiers die wachten aan hun barricades, de leader van één van die groupen merkt de vijand op, terwijl de andere group gewoon doet alsof er niks gebeurt is omdat hun officer de andere kant opkijkt en niks gezien heeft....dat kon ik niet laten gebeuren.Code:?"behaviour _x != ""SAFE""" count _allunits > 0 OR "!alive _x" count _allunits > 0
Ik heb er gisteren nog iets aan toegevoegd zodat ze regelmatig hun six checken en niet constant gefocused blijven in dezelfde kijkrichting. Maar ze blijven zwakker presteren als ze in de rug aangevallen worden.
Het trenchscript heeft nog enkele problemen, waarvan één vrij lastig is.
Als iemand uit de trenches zonder ammo zit kan hij niet rearmen. Allee ik kan hem wel laten naar een ammobox lopen en rearmen, terug laten lopen naar zijn positie en terug in crouchpositie brengen ; maar hij reload zijn wapen niet, ondanks dat hij de magazines bij hem heeft.
Ik heb gemerkt dat de machinegunners serieus doorknallen, en daardoor vrij snel zonder ammo komen te zitten
Ondanks dat ga ik het toch releasen morgen omdat het gewoon big fun is om te gebruiken, en hopelijk krijg ik hulp van andere scripters om het te verbeteren. Het heeft zeker potentieel. Het is wel niet zo simpel in gebruik als dit, maar ik ben bezig aan een uitgebreide readme die duidelijkheid moet scheppen.no votes
