Thread: Groupchain.sqs

  1. #1
    Blanco's Avatar
    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.

    ; ***************************************
    ; 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
    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...
    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
    ==============
    Bugfree
    Last edited by Blanco; 28-07-2004 at 18:55.
    no votes  

  2. #2
    -=PIKMOF=-XceL's Avatar
    Registered
    17/07/02
    Posts
    627
    iTrader
    0
    Mentioned
    0 Post(s)
    cool
    zo wat meer reactie en klappenans van de tegenstanders is waar ik naar op zoek ben
    no votes  

  3. #3
    Atrox's Avatar
    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  

  4. #4
    [BAT]krikke's Avatar
    Registered
    17/07/02
    Location
    hoboken
    Posts
    788
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    gedaan met stealth ???
    das toch wel een bug van formaat ozu ik zeggen
    no votes  

  5. #5
    Blanco's Avatar
    Registered
    07/10/02
    Location
    thuis achter mijne PC
    Posts
    9,530
    iTrader
    2 (100%)
    Mentioned
    0 Post(s)
    Reputation
    6/114
    no votes  

  6. #6
    [BAT]krikke's Avatar
    Registered
    17/07/02
    Location
    hoboken
    Posts
    788
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    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  

  7. #7
    Blanco's Avatar
    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 :

    Code:
    ?"behaviour _x != ""SAFE""" count _allunits > 0 OR "!alive _x" count _allunits > 0
    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.

    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  

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in