Visa ämne
Anrop » ArmA 3 » Editing
 Skriv ut ämne
Scriptfrågor
Hej alla scriptkunniga! Jag fortsätter att mata på med mitt tjuv och polis uppdrag men har fastnat på några buggar jag inte lyckas få till och skulle behöva hjälp.

if (side player == WEST) then{c1 addAction ["Arrest and send to jail", "teleport1.sqf", [], 1, true, false, "","((_target distance _this) <2)"];};

c1 är då namnet på en av bovarna, denna linje gör så att man får en addaction om man är polis (west) och är två meter ifrån en bov. Detta fungerar jättebra i editorn och c1 körs som en AI men fungerar inte alls i multiplayer. Någon som kan utröna problemet?

Sedan så kommer ett lodout script för bovarna som ser ut som följande.

removeallweapons player;
removevest player;
removeheadgear player;
removeuniform player;
player addweapon "arifle_Katiba_ACO_F";
player additem "NVGoggles";
player assignItem "NVGoggles";
player addvest "V_BandollierB_oli";
player addheadgear "H_Shemag_olive";
player adduniform "U_IG_Guerilla3_1";
player additem "ItemMap";
player assignItem "ItemMap";
player additem "ItemCompass";
player assignItem "ItemCompass";
player additem "muzzle_snds_H";
player addmagazine "30Rnd_65x39_caseless_green";
player addmagazine "30Rnd_65x39_caseless_green";
player addmagazine "30Rnd_65x39_caseless_green";
player addmagazine "30Rnd_65x39_caseless_green";
player addmagazine "30Rnd_65x39_caseless_green";
player addmagazine "SmokeShell";
removeBackpack player;
player addBackpack "B_Carryall_ocamo";
backpa = unitBackpack player;
clearMagazineCargo backpa;
backpa addmagazineCargoGlobal ["30Rnd_65x39_caseless_green",6];
backpa addmagazineCargoGlobal ["SmokeShell",4];
backpa addmagazineCargoGlobal ["APERSBoundingMine_Range_Mag",4];

Problemet här är att kläderna "U_IG_Guerilla3_1" inte dyker upp på spelarna i multiplayer, dom dyker upp om man dör och respawnar. I editorn fungerar det kanon.

Slutligen har jag ett script som gör en specifik pistol till en stungun, fick det att fungera en enda gång men sedan slutade det och jag lyckas inte utröna felet. Jag har laddat upp hela uppdraget nedanför om någon känner sig manad att ge sig på stunscriptet.
Megadeth bifogade följande bild:fil:
scriptteststratis.pbo [59.62kB / 521 Nerladdningar]

Playing Diablo 3 is for losers! Boting Diablo 3 is for winners!
Jag tror att det är för att uniformen du försöker ge till en OPFOR räknas som en BLUFOR-uniform. Jag testade att ge scriptet till en blufor och en greenfor istället och det funkade i båda fallen. Konstigt att det ändå fungerar efter respawn.

Ett tips är att ge ammunitionen innan vapnet i skriptet, då slipper man börja med att ladda om.
Kanon! Flyttar katiban lite nedåt i scriptet. Jag testar uniformen då jag kommer hem, tycker det är dock konstigt att uniformen skulle räknas som en bluform uniform. Testade du i multiplayer också? dvs att en spelare spelar den slotten.

Då återstår ju egentligen bara "if (side player == WEST) then{c1 addAction ["Arrest and send to jail", "teleport1.sqf", [], 1, true, false, "","((_target distance _this) <2)"];}; " Vilket jag tycker är jävligt skummt att det inte fungerar i multiplayer.
Playing Diablo 3 is for losers! Boting Diablo 3 is for winners!

Citera

Problems: In MP the command is not initialised in functions called by initline or init eventhandlers.

http://community.bistudio.com/wiki/pl...iki/player

Kan kanske vara därför? Hur initierar du den koden? Kör du den i initen på varje enhet, i init.sqf eller på något annat sätt?

Citera

Toktotte skrev:

Citera

Problems: In MP the command is not initialised in functions called by initline or init eventhandlers.

http://community.bistudio.com/wiki/pl...iki/player

Kan kanske vara därför? Hur initierar du den koden? Kör du den i initen på varje enhet, i init.sqf eller på något annat sätt?


+1.

Ett annat sätt att lösa det är att ta bort hela if grejen och lägga till actionet för alla men att du sätter som condition (side player) == west i addAction parametern tillsammans med din avståndscheck som du redan har.
The enemy cannot predict your actions if you have no idea what you're doing.
Koden körs från en units init detta är taget från mission.sqm

init="_null = [this] execVM ""teargas.sqf"";null = [this] execVM ""loadout.sqf""; this addeventhandler [""respawn"",""_this execVM 'loadout.sqf'""];";};

Loadout.sqf
if (side player == WEST) then{execVM "loadoutwest.sqf"};
if (side player == EAST) then{execVM "loadouteast.sqf"};

loadouteast.sqf
Redan kopierad här uppe.

loadoutwest.sqf
if (side player == WEST) then{c1 addAction ["Arrest and send to jail", "teleport1.sqf", [], 1, true, false, "","((_target distance _this) <2)"];};
if (side player == WEST) then{c2 addAction ["Arrest and send to jail", "teleport2.sqf", [], 1, true, false, "","((_target distance _this) <2)"];};
if (side player == WEST) then{c3 addAction ["Arrest and send to jail", "teleport3.sqf", [], 1, true, false, "","((_target distance _this) <2)"];};
if (side player == WEST) then{c4 addAction ["Arrest and send to jail", "teleport4.sqf", [], 1, true, false, "","((_target distance _this) <2)"];};
Playing Diablo 3 is for losers! Boting Diablo 3 is for winners!

Citera

Megadeth skrev:blabla


Läste du vad toktotte skrev/länkade? .. Wink
The enemy cannot predict your actions if you have no idea what you're doing.
Joo jag läste det, ni frågade ju hur jag gjort så jag visade det Smile

Har ni något tips på hur jag enklast ändrar?
Playing Diablo 3 is for losers! Boting Diablo 3 is for winners!
Eftersom det står klart att player inte är initialiserad när diverse initfunktioner körs hos enheter och så, så skulle jag rekommendera att du sätter det i init.sqf med en säkerhetscheck där du väntar på att player == player.

Det står hur du kan skriva en sådan väntsats på artikeln som toktotte länkade.
The enemy cannot predict your actions if you have no idea what you're doing.
Kanon! tackar för hjälpen boys! uppskattas verkligen!

+100 för er
Playing Diablo 3 is for losers! Boting Diablo 3 is for winners!
Jajjemensan nu fungerade Addactionen så jag kunde teleportera en fiende till fängelset. Dessvärre så blev det ingen skillnad på uniformen, jag får helt enkelt ändra så vi kör independent som skurkar. Katiban är också ändrad så den läggs till efter ammunitionen.

Då är det bara stun scriptet jag måste få igång, och jag vet fan inte vars jag ska börja, har även där testat alla möjliga kombinationer.
Playing Diablo 3 is for losers! Boting Diablo 3 is for winners!
Nu är uppdraget i det hela klart, dock så får jag fortfarande inte igång stun scriptet.

http://forums.bis...tun-script

Någon som kan utröna felet?
Playing Diablo 3 is for losers! Boting Diablo 3 is for winners!