Visa ämne
 Skriv ut ämne
En variabel fråga.... (höhöhö pun intended)
Ok, så jag har ett script för en ammobox.

I SP fungerar det perfekt, men i MP får jag ett skriptfel, där den gapar om att en array är fel, typ.
Någon som har ett förslag?

Här är scriptet:
Kod Källa  



? !(local server):exit;

#refill

_crate = _this select 0;

clearMagazineCargo _crate;
clearWeaponCargo _crate;

_crate addWeaponCargo ["M24", 5]
_crate addWeaponCargo ["M16A4_ACG_GL", 5]
_crate addWeaponCargo ["JAVELIN", 5]
_crate addWeaponCargo ["M107", 5]
_crate addWeaponCargo ["M249", 5]
_crate addWeaponCargo ["M136", 5]
_crate addWeaponCargo ["Binocular", 5]

_crate addMagazineCargo ["10Rnd_127x99_m107", 50]
_crate addMagazineCargo ["30Rnd_556x45_Stanag", 50]
_crate addMagazineCargo ["5Rnd_762x51_M24", 50]
_crate addMagazineCargo ["M136", 50]
_crate addMagazineCargo ["200Rnd_556x45_M249", 50]
_crate addMagazineCargo ["1Rnd_HE_M203", 50]
_crate addMagazineCargo ["JAVELIN", 20]
_crate addMagazineCargo ["PipeBomb", 20]

~120

goto "refill";



All hjälp mottages tacksamt. :facepalm::@



Edit:
_crate = _this select 0; är den raden som orsakar felete enligt ArmA iaf...
Redigerat av ogion den 2010-03-15 10:06
Fråga 2:

När en unit dör och respawnar, hur kan jag kalla på ett script igen som jag kör via init raden?

Jag har en enhet, med en addaction i början av uppdraget.
När den enheten dör, så vill jag att addaction försvinner (annars kan vem som helst som står brevid liket utföra den action som ska vara unik för honom, iofs när han lever med...?!? :o )


Den init syntax jag använder är:
Kod Källa  


this addAction["Relocate Spawnpoint", "boss.sqs", false, -1, false, true, "false"];


och boss.sqs ser ut såhär:
Kod Källa  


[west,"HQ"] sideChat "Relocating respawn position. Please stand by."
player playMove "AinvPknlMstpSnonWnonDnon_medic_2";
~12
deleteVehicle homebox;
deleteVehicle flagpoint;
"respawn_west" setMarkerPos position player;
_crate=createVehicle ["WeaponBoxWest", [(getPos player select 0)-2,(getPos player select 1)-2,(getPos player select 2)], [], 0, "homebox=this;this exec 'crate.sqs' "];
_flag=createVehicle ["FlagCarrierWest", position player, [], 0, "flagpoint=this; "];
~3
[west,"HQ"] sideChat "Respawn location moved. Give them hell boys!"
på A svarar jag: ett problem är att du har ? !(local server), vilket i a2 världen numera kan skrivas ?(isserver), addweaponcargo är lokalt på varje maskin så scriptet måste köras på alla maskiner för att funka.

på B svarar jag: Pass, men borde ha nått med en eventhandler att göra
på b.. (sitter framför tvn nu) skall återkomma med bättre svar men kör this addeventhandler init.. så kommer den läggas till igen vid respawn... enligt arma2 dokumentationen.


på A.. som subroc säger, de sker lokalt så måste ske på alla klienter, vilket också betyder att om du lägger till 2 st m249.. kommer varje person ha tillgång till 2.. tål tänkas på.

Du få gärna pröva imorgon medans jag sover, så återkommer jag med mer utförligt hjälp imorgon.
P.S. Jag har med avsikt postat i det här forumet, eftersom det heter ArmA1 ..... -.-
ah.. nu blev du jobbig Smile

men tror ändå kommer funka..

pröva:

_bossInit = this addEventHandler ["init", {_this addaction ["Relocate Spawnpoint", "boss.sqs", false, -1, false, true, "false"];}]


och tror vi behöver har mer info för fixa a..
Ok, det funkade inte, men jag lyckades lösa det så här, något klumpigt kanske, men jag är rookie. Och det fungerar.

bossinit.sqs
Kod Källa  


#start
_this select 0
@ (alive player)

player addAction ["Set Rally Point","rp.sqs",false, -1, false, true, "false"];

@ (! alive player)
removeAction select 0;
goto "start"


Och rp.sqs
Kod Källa  


player playMove "AinvPknlMstpSnonWnonDnon_medic_2";
"respawn_west" setMarkerPos position player;
flagpoint setPos getMarkerPos "respawn_west";
player sideChat "New Rallypoint established!"



Så nästa steg är väl att få det att fungera i samma script antar jag, så jag slipper ha två script... :facepalm:

Edit: Efter lite mer omfattande testning, så har jag dragit slutsatsen att ALLA spelare får tillgång till de nya action komandona. Lite irriterande, men nu är iaf scriptet persistent.


Edit 2: Det löste sig genom att göra ett script för varje enhet, och namnge enheten i scriptet. Peppar peppar....
Redigerat av ogion den 2010-03-22 13:28
annars kan du göra så här.

se till starta scriptet för varje enhet med:

[enhet] exec "script.sqs"


Kod Källa  


#start
_enhet = _this select 0
? !(_enhet == player) : goto "Notplayer"
@ (alive player)

player addAction ["Set Rally Point","rp.sqs",false, -1, false, true, "false"];

@ (! alive player)
removeAction select 0;
goto "start"


#Notplayer