Wie wäre es mal mit Logs? Ohne diese kann man recht wenig sagen woran es liegen könnte. Falsche Inits oder was auch immer können der Grund sein
Beiträge von blackfisch
-
-
*exitWith - Sorry, verschrieben
Wie gesagt, ist kein Befehl. Es gibt nur If-ExitWith-Conditions (siehe: https://community.bistudio.com/wiki/exitWith) Hab dir das ja auch mal korrigiert 
-
while {alive NPCNAME} do
{
NPCNAME switchMove "DEINEANIMATION";
sleep 10; //Dauer der Animation!
};Diesen Code müsst Ihr im Trigger einfügen den ihr über die Taste F3 aufrufen könnt.
Dabei ist klar das Ihr den anderen Code dann nicht mehr in die Init rein schreiben müsst!Geht auch einfacher. Einfach das in die Init des NPC's:
C[] spawn { while {alive this} do { this switchMove "DEINEANIMATION"; uisleep 10; //Dauer der Animation }; };Spart dir das Trigger setzen und Fehler bei den Namen. uisleep einfach weil es die Systemzeit nimmt zu Zeitmessung (sleep arbeitet mit Game-Ticks, die bei Laggs verzögert werden - Das ist auch der Grund warum manchmal die Sirenen ne Pause dazwischen haben. Laggs verursachen Asynchronität bei den sleeps)
-
Alles anzeigen
if ((FETCH_CONST(life_coplevel) isEqualTo 0)) then
{
exitWith { hint localize "STR_Cop_GreenLoad_noCop" };
}
else
{
createDialog "life_greenload";
};Das ist Schwachsinn... "editWith" ist kein Befehl, es gibt nur If (condition) exitWith {} - korrigiert:
C
Alles anzeigen#include "..\..\script_macros.hpp" if ((FETCH_CONST(life_coplevel) isEqualTo 0) exitWith { hint localize "STR_Cop_GreenLoad_noCop" }; }; createDialog "life_greenload"; // GreenLife | S.W.A.T. if ((FETCH_CONST(life_coplevel) isEqualTo 1)) then { private["_handle","_price"]; _handle = [] spawn life_fnc_stripDownPlayer; waitUntil {scriptDone _handle}; _price = 25000; if ((BANK < _price)) exitWith { hint localize "STR_Cop_GreenLoad_notenoughmoney"}; //KLEIDUNG UND STANDARD player addUniform "U_Rangemaster"; player addVest "V_PlateCarrier1_blk"; player addBackpack "B_Bergen_mcamo"; player addHeadgear "H_Beret_02"; // TAZER player addWeapon "hgun_P07_snds_F"; player addMagazine "16Rnd_9x21_Mag"; player addMagazine "16Rnd_9x21_Mag"; player addMagazine "16Rnd_9x21_Mag"; player addMagazine "16Rnd_9x21_Mag"; player addMagazine "16Rnd_9x21_Mag"; player addMagazine "16Rnd_9x21_Mag"; // SCHARFE WAFFEN player addWeapon "SMG_05_F"; player addMagazine "30Rnd_9x21_Mag_SMG_02"; player addMagazine "30Rnd_9x21_Mag_SMG_02"; player addMagazine "30Rnd_9x21_Mag_SMG_02"; player addMagazine "30Rnd_9x21_Mag_SMG_02"; player addMagazine "30Rnd_9x21_Mag_SMG_02"; player addMagazine "30Rnd_9x21_Mag_SMG_02"; //ITEMS player addItem "ItemMap"; player assignItem "ItemMap"; player addItem "ItemCompass"; player assignItem "ItemCompass"; player addItem "ItemWatch"; player assignItem "ItemWatch"; player addItem "ItemGPS"; player assignItem "ItemGPS"; //Bezahlen If (BANK >= 25000) then { BANK = BANK - _price } then { hint localize "STR_Cop_GreenLoad_payed" }; //Buttons deaktivieren für den nächsten Rang! (CONTROL(2700,2705)) ctrlEnable false; (CONTROL(2700,2706)) ctrlEnable false; (CONTROL(8500,6840)) ctrlEnable false; (CONTROL(8501,8704)) ctrlEnable false; }; [] call life_fnc_saveGear; -
Mag sein, dass das Cool ist, aber zieht wie gesagt höllisch Performance wenn das nicht nur 3-4 NPC's machen (Bei Exile gibt's das ja an den Fahrzeugshops, aber davon gibts da ja nicht viele)
-
Da hattest du wohl eine Mod geladen beim editieren der Mission (Ich vermute diese hier: http://www.armaholic.com/page.php?id=22349 - Erstes Ergebnis als ich "flay archery modules" bei Google eingegeben habe)
-
this enableSimulation false; this allowDamage false; delh = [0,0,0] nearestObject ID; delh hideObject true;
Der Code funktioniert 100%,
die ID einfügen und dann ausführen.MFG
Du musst dann natürlich auch daneben stehen. Alternativ sonst (als Spieler) statt [0,0,0] mal getPos player verwenden
-
An sich schöne Idee, aber leider Performancelastig. Zudem wird so die Animation nur einmal ausgeführt. Bei "Hände hoch" oder "Salutieren" bleibt er zwar so, aber nur weil es dazu entsprechende Gegenanimationen gibt und diese einen festen State darstellen. Würde man z.B. die Reperaturanimation ausführen wäre das leider nur einmal. Das müsste man über einen (sehr performancefressenden) Loop laufen lassen - Tut mir leid, wenn ich damit jetzt irgendjemandes Träume angeschlagen habe...
-
... Die script_macros.hpp oder was meinst du? Die Init von den NPC's findest du im Editor wenn du das meinst...
-
1. nein mit Init ist die Init-Zeile des NPC's gemeint, 2. hast du keine script_macros.hpp! Welche Version nutzt du denn?
-
Klar geht das auch mit den Standard BI-Defines, nur sind Tonics Defines halt aufeinander abgestimmt
-
Alles anzeigen
Das ganz am Ende:
_preis = 25000;
CASH = CASH - _preis;
Und das ganz oben über allem anderen:
#include "..\..\script_macros.hpp"
Sollte gehen wenn mein Halbschlaf mich nicht täuscht.
Das wäre aber dann Bargeld. Wenns vom Konto soll musst du BANK statt CASH nehmen
Das ganze könnte dann etwa so aussehen:C
Alles anzeigen#include "..\..\script_macros.hpp" /* File: fn_copLoadout.sqf Author: Bryan "Tonic" Boardwine Edited: Itsyuka Description: Loads the cops out with the default gear. */ private["_handle","_price"]; _price = 2000; if ((FETCH_CONST(life_coplevel) isEqualTo 0) && (FETCH_CONST(life_adminlevel) isEqualTo 0)) exitWith { hint "Du bist kein Polizeibeamter!" }; if ((BANK < _price) && (CASH < _price)) exitWith { hint "Du hast nicht genügend Geld" }; _handle = [] spawn life_fnc_stripDownPlayer; waitUntil {scriptDone _handle}; //Load player with default cop gear. player addUniform "U_Rangemaster"; player addVest "V_PlateCarrier1_blk"; player addBackpack "B_Bergen_mcamo"; player addHeadgear "H_Beret_02"; /* TAZER */ player addWeapon "hgun_P07_snds_F"; player addMagazine "16Rnd_9x21_Mag"; player addMagazine "16Rnd_9x21_Mag"; player addMagazine "16Rnd_9x21_Mag"; player addMagazine "16Rnd_9x21_Mag"; player addMagazine "16Rnd_9x21_Mag"; player addMagazine "16Rnd_9x21_Mag"; /* SCHARFE WAFFE */ player addWeapon "SMG_05_F"; player addMagazine "30Rnd_9x21_Mag_SMG_02"; player addMagazine "30Rnd_9x21_Mag_SMG_02"; player addMagazine "30Rnd_9x21_Mag_SMG_02"; player addMagazine "30Rnd_9x21_Mag_SMG_02"; player addMagazine "30Rnd_9x21_Mag_SMG_02"; player addMagazine "30Rnd_9x21_Mag_SMG_02"; /* ITEMS */ player addItem "ItemMap"; player assignItem "ItemMap"; player addItem "ItemCompass"; player assignItem "ItemCompass"; player addItem "ItemWatch"; player assignItem "ItemWatch"; player addItem "ItemGPS"; player assignItem "ItemGPS"; /* Dafür wirst du noch bezahlen */ If (CASH >= 2000) then { CASH = CASH - _price } else { BANK = BANK - 2000 }; hint "Vielen Dank für Ihren Einkauf!"; [] call life_fnc_playerSkins; [] call life_fnc_saveGear;Da ist ganz am Anfang eine Abfrage drin ob derjenige überhaupt genug Geld hat, wenn ja wird das Script ausgeführt und am Ende entweder vom Bargeld oder - falls Bar nicht genügend vorhanden ist - vom Konto das Geld abgezogen. _price stellt dabei eine Variable dar, die den Preis des Loadouts angibt, diese kannst du beliebig anpassen
-
Am besten nutzt du dazu noch einen SQF-Syntax um das ganze schön bunt zu haben, dann lässt sich der Code auch gut lesen (SQF-Syntax für Notepad++: http://www.armaholic.com/page.php?id=8680)
Sonst kann ich auch PoseidonTools oder den Atom-Editor mit dem SQF-Highlighting vom ACE-Mod Team empfehlen -
...Oder du regelst das ganze über eine Lizenz. Wenn du das erste mal da bist, hast du diese logischerweise nicht. Dann wird das Intro ausgeführt und danach die Lizenz vergeben. Wenn du sie hast wird das Intro nicht ausgeführt. Simpelste Methode und wieder einmal kommt keiner darauf...
-
Dann wären Logs wohl hilfreich (Server, Client, [lexicon]extDB[/lexicon])
-
Wenn ich dich korrigieren darf, das database kommt da gar nicht rein:
C: fn_JailSys.sqf
Alles anzeigen/*File: fn_jailSys.sqf Author: Bryan "Tonic" Boardwine Description: I forget?*/ private["_unit","_bad","_id","_ret","_time"]; _unit = [_this,0,Objnull,[Objnull]] call BIS_fnc_param;if(isNull _unit) exitWith {}; _bad = [_this,1,false,[false]] call BIS_fnc_param; _time = [_this,2,15,[0]] call BIS_fnc_param; if (_bad) then { diag_log "[Jailtime] Loading time ..."; _query = format["SELECT jail_time FROM players WHERE playerid='%2'", _time, getPlayerUID _unit]; waitUntil{!DB_Async_Active}; _result = [_query,2] call DB_fnc_asyncCall; _result = (_result select 0); diag_log format["[Jailtime] reset %1", _result]; _time = _result; } else { diag_log "[Jailtime] sending jailtime to database"; _query = format["UPDATE players SET jail_time='%1' WHERE playerid='%2'", _time, getPlayerUID _unit]; waitUntil{!DB_Async_Active}; _result = [_query,1] call DB_fnc_asyncCall; }; diag_log format["[Jailtime] for the player %1 is %2",name _unit , _time]; _id = owner _unit; _ret = [_unit] call life_fnc_wantedPerson; [[_ret,_bad,_time],"life_fnc_jailMe",_id,false] spawn life_fnc_MP; -
Wenn du Jackson County runtergeladen hast, dann ist das keine Mod, das steht sogar fett oben drüber:
Wenn du das Ingame nutzen möchtest, musst du das ganze erst zu einer für Arma 3 nutzbaren Map machen, das müsste mit den Terrain Builder gehen. Augen auf beim runterladen & recherchieren! -
Dabei möchte ich mal hier verweisen auf die Arma EULA hinweisen, die den Verkauf von Spielinhalten & Scripts nicht wirklich erlaubt...
Zudem ist so ein Script meiner Meinung nach keine 5€ wert weil es mit ein wenig denken und simpel gesagt etwas umbauen des Blaulicht-Scripts ziemlich einfach selbst zu schreiben ist
-
RPT-Logs? Du kannst von keinem erwarten, dass er diese 900 Zeilen Code für dich auseinander nimmt...
-
"An benutzerdefinierten Punkten" und alle Häkchen raus.
Auf der Map (Spawninsel) Marker namens
erstellen und das wars schon. Der Rest läuft über das Script von Altis Life
Und das wiederbeleben deaktivieren! Das ist in Altis Life nicht so ganz kompatibel und sinnig mit dem eingebauten Medic System nach meinen Beobachtungen