Hallo,
ich versuche grade ACE auf meinem Server zum laufen zu bringen.
FOlgendes habe ich bereits:
fn_weaponShopBuySell:
Code
#include "..\..\script_macros.hpp"
/*
File: fn_weaponShopBuySell.sqf
Author: Bryan "Tonic" Boardwine
Description:
Master handling of the weapon shop for buying / selling an item.
*/
disableSerialization;
private["_price","_item","_itemInfo","_bad"];
if((lbCurSel 38403) == -1) exitWith {hint localize "STR_Shop_Weapon_NoSelect"};
_price = lbValue[38403,(lbCurSel 38403)]; if(isNil "_price") then {_price = 0;};
_item = lbData[38403,(lbCurSel 38403)];
_itemInfo = [_item] call life_fnc_fetchCfgDetails;
_bad = "";
if((_itemInfo select 6) != "CfgVehicles") then {
if((_itemInfo select 4) in [4096,131072]) then {
if(!(player canAdd _item) && (uiNamespace getVariable["Weapon_Shop_Filter",0]) != 1) exitWith {_bad = (localize "STR_NOTF_NoRoom")};
};
};
if(_bad != "") exitWith {hint _bad};
if((uiNamespace getVariable["Weapon_Shop_Filter",0]) == 1) then {
ADD(CASH,_price);
[_item,false] call life_fnc_handleItem;
hint parseText format[localize "STR_Shop_Weapon_Sold",_itemInfo select 1,[_price] call life_fnc_numberText];
[nil,(uiNamespace getVariable["Weapon_Shop_Filter",0])] call life_fnc_weaponShopFilter; //Update the menu.
} else {
private["_hideout"];
_hideout = (nearestObjects[getPosATL player,["Land_u_Barracks_V2_F","Land_i_Barracks_V2_F"],25]) select 0;
if(!isNil "_hideout" && {!isNil {grpPlayer getVariable "gang_bank"}} && {(grpPlayer getVariable "gang_bank") >= _price}) then {
_action = [
format[(localize "STR_Shop_Virt_Gang_FundsMSG")+ "<br/><br/>" +(localize "STR_Shop_Virt_Gang_Funds")+ " <t color='#8cff9b'>$%1</t><br/>" +(localize "STR_Shop_Virt_YourFunds")+ " <t color='#8cff9b'>$%2</t>",
[(grpPlayer getVariable "gang_bank")] call life_fnc_numberText,
[CASH] call life_fnc_numberText
],
localize "STR_Shop_Virt_YourorGang",
localize "STR_Shop_Virt_UI_GangFunds",
localize "STR_Shop_Virt_UI_YourCash"
] call BIS_fnc_guiMessage;
if(_action) then {
hint parseText format[localize "STR_Shop_Weapon_BoughtGang",_itemInfo select 1,[_price] call life_fnc_numberText];
_funds = grpPlayer getVariable "gang_bank";
_funds = _funds - _price;
grpPlayer setVariable["gang_bank",_funds,true];
[_item,true,false,false,true] spawn life_fnc_handleItem;
[1,grpPlayer] remoteExecCall ["TON_fnc_updateGang",RSERV];
} else {
if(_price > CASH) exitWith {hint localize "STR_NOTF_NotEnoughMoney"};
hint parseText format[localize "STR_Shop_Weapon_BoughtItem",_itemInfo select 1,[_price] call life_fnc_numberText];
SUB(CASH,_price);
[_item,true,false,false,true] spawn life_fnc_handleItem;
};
} else {
if(_price > CASH) exitWith {hint localize "STR_NOTF_NotEnoughMoney"};
hint parseText format[localize "STR_Shop_Weapon_BoughtItem",_itemInfo select 1,[_price] call life_fnc_numberText];
CASH = CASH - _price;
[_item,true,false,false,true] spawn life_fnc_handleItem;
};
};
[] call life_fnc_saveGear;
Alles anzeigen
fn_handleItem:
Code
/*
Author: Bryan "Tonic" Boardwine
Description
Main gear handling functionality.
*/
private["_item","_details","_bool","_ispack","_items","_isgun","_ongun","_override","_toUniform","_toVest","_preview","_acecheck"];
_item = [_this,0,"",[""]] call BIS_fnc_param;
_bool = [_this,1,false,[false]] call BIS_fnc_param;
_ispack = [_this,2,false,[false]] call BIS_fnc_param;
_ongun = [_this,3,false,[false]] call BIS_fnc_param;
_override = [_this,4,false,[false]] call BIS_fnc_param;
_toUniform = [_this,5,false,[false]] call BIS_fnc_param; //Manual override to send items specifically to a uniform.
_toVest = [_this,6,false,[false]] call BIS_fnc_param; //Manual override to send items specifically to a vest
_preview = [_this,7,false,[true]] call BIS_fnc_param;
_acecheck = ["ACE_atropine","ACE_morphine","ACE_epinephrine","ACE_fieldDressing","ACE_elasticBandage","ACE_quikclot","ACE_bodyBag","ACE_CableTie","ACE_packingBandage","ACE_EarPlugs","ACE_tourniquet","ACE_surgicalKit","ACE_wirecutter"];
//Some checks
if(_item == "") exitWith {};
_isgun = false;
_details = [_item] call life_fnc_fetchCfgDetails;
if(count _details == 0) exitWith {};
if(_bool) then
{
switch((_details select 6)) do
{
case "CfgGlasses":
{
if(_toUniform) exitWith {player addItemToUniform _item;};
if(_toVest) exitWith {player addItemToVest _item;};
if(_ispack) then
{
player addItemToBackpack _item;
}
else
{
if(_override) then
{
player addItem _item;
}
else
{
if(goggles player != "") then
{
removeGoggles player;
};
player addGoggles _item;
};
};
};
case "CfgVehicles":
{
if(backpack player != "") then
{
_items = (backpackItems player);
removeBackpack player;
};
player addBackpack _item;
clearAllItemsFromBackpack player;
if(!isNil {_items}) then
{
{[_x,true,true,false,true] spawn life_fnc_handleItem; } foreach _items;
};
};
case "CfgMagazines":
{
if(_toUniform) exitWith {player addItemToUniform _item;};
if(_toVest) exitWith {player addItemToVest _item;};
if(_ispack) exitWith {player addItemToBackpack _item;};
player addMagazine _item;
};
case "CfgWeapons":
{
//New addition
if(_toUniform) exitWith {player addItemToUniform _item;};
if(_toVest) exitWith {player addItemToVest _item;};
if(_ispack) exitWith {player addItemToBackpack _item;};
if((_details select 4) in [1,2,4,5,4096]) then
{
if(_item in _acecheck) then{player addItem _item;};
if((_details select 4) == 4096) then
{
if((_details select 5) == -1) then
{
_isgun = true;
};
}
else
{
_isgun = true;
};
};
if(_isgun) then
{
if(!_ispack && _override) exitWith {}; //It was in the vest/uniform, try to close to prevent it overriding stuff... (Actual weapon and not an item)
if(_item == "MineDetector") then
{
player addItem _item;
}
else
{
player addWeapon _item;
};
}
else
{
switch(_details select 5) do
{
case 0:
{
if(_ispack) then
{
player addItemToBackpack _item;
}
else
{
if(_override) then
{
player addItem _item;
}
else
{
if(_item in (assignedItems player)) then
{
player addItem _item;
}
else
{
player addItem _item;
player assignItem _item;
};
};
};
};
case 605:
{
if(_ispack) then
{
player addItemToBackpack _item;
}
else
{
if(_override) then
{
player addItem _item;
}
else
{
if(headGear player == _item) then
{
player addItem _item;
}
else
{
if(headGear player != "") then
{
removeHeadGear player;
};
player addHeadGear _item;
};
};
};
};
case 801:
{
if(_ispack) then
{
player addItemToBackpack _item;
}
else
{
if(_override) then
{
player addItem _item;
}
else
{
if(player isKindOf "Civilian") then {
if(uniform player == _item && {!_preview}) then {
player addItem _item;
} else {
if(uniform player != "") then {
_items = uniformItems player;
removeUniform player;
};
player addUniform _item;
if(!isNil "_items") then {
{player addItemToUniform _x} foreach _items;
};
};
} else {
if(uniform player != "") then {
_items = uniformItems player;
removeUniform player;
};
if(!(player isUniformAllowed _item)) then {
player forceAddUniform _item;
} else {
player addUniform _item;
};
if(!isNil "_items") then {
{player addItemToUniform _x} foreach _items;
};
};
};
};
};
case 701:
{
if(_ispack) then
{
player addItemToBackpack _item;
}
else
{
if(_override) then
{
player addItem _item;
}
else
{
if(vest player == _item) then
{
player addItem _item;
}
else
{
if(vest player != "") then
{
_items = vestItems player;
removeVest player;
};
player addVest _item;
if(!isNil {_items}) then
{
{[_x,true,false,false,true] spawn life_fnc_handleItem;} foreach _items;
};
};
};
};
};
case 201:
{
if(_ispack) then
{
player addItemToBackpack _item;
}
else
{
private["_type"];
_type = [_item,201] call life_fnc_accType;
if(_ongun) then
{
switch (_type) do
{
case 1: { player addPrimaryWeaponItem _item; };
case 2: { player addSecondaryWeaponItem _item; };
case 3: { player addHandgunItem _item; };
};
}
else
{
if(_override) then
{
player addItem _item;
}
else
{
private["_wepItems","_action","_slotTaken"];
_wepItems = switch(_type) do {case 1:{primaryWeaponItems player}; case 2:{secondaryWeaponItems player}; case 3:{handgunItems player}; default {["","",""]};};
_slotTaken = false;
if(_wepItems select 2 != "") then {_slotTaken = true;};
if(_slotTaken) then {
_action = [localize "STR_MISC_AttachmentMSG",localize "STR_MISC_Attachment",localize "STR_MISC_Weapon",localize "STR_MISC_Inventory"] call BIS_fnc_guiMessage;
if(_action) then {
switch(_type) do {
case 1: {player addPrimaryWeaponItem _item;};
case 2: {player addSecondaryWeaponItem _item;};
case 3: {player addHandgunItem _item;};
default {player addItem _item;};
};
} else {
player addItem _item; //Add it to any available container
};
} else {
switch(_type) do {
case 1: {player addPrimaryWeaponItem _item;};
case 2: {player addSecondaryWeaponItem _item;};
case 3: {player addHandgunItem _item;};
default {player addItem _item;};
};
};
};
};
};
};
case 301:
{
if(_ispack) then
{
player addItemToBackpack _item;
}
else
{
private["_type"];
_type = [_item,301] call life_fnc_accType;
if(_ongun) then
{
switch (_type) do
{
case 1: { player addPrimaryWeaponItem _item; };
case 2: { player addSecondaryWeaponItem _item; };
case 3: { player addHandgunItem _item; };
};
}
else
{
if(_override) then
{
player addItem _item;
}
else
{
private["_wepItems","_action","_slotTaken"];
_wepItems = switch(_type) do {case 1:{primaryWeaponItems player}; case 2:{secondaryWeaponItems player}; case 3:{handgunItems player}; default {["","",""]};};
_slotTaken = false;
if(_wepItems select 1 != "") then {_slotTaken = true;};
if(_slotTaken) then {
_action = [localize "STR_MISC_AttachmentMSG",localize "STR_MISC_Attachment",localize "STR_MISC_Weapon",localize "STR_MISC_Inventory"] call BIS_fnc_guiMessage;
if(_action) then {
switch(_type) do {
case 1: {player addPrimaryWeaponItem _item;};
case 2: {player addSecondaryWeaponItem _item;};
case 3: {player addHandgunItem _item;};
default {player addItem _item;};
};
} else {
player addItem _item; //Add it to any available container
};
} else {
switch(_type) do {
case 1: {player addPrimaryWeaponItem _item;};
case 2: {player addSecondaryWeaponItem _item;};
case 3: {player addHandgunItem _item;};
default {player addItem _item;};
};
};
};
};
};
};
case 101:
{
if(_ispack) then
{
player addItemToBackpack _item;
}
else
{
private["_type"];
_type = [_item,101] call life_fnc_accType;
if(_ongun) then
{
switch (_type) do
{
case 1: { player addPrimaryWeaponItem _item; };
case 2: { player addSecondaryWeaponItem _item; };
case 3: { player addHandgunItem _item; };
};
}
else
{
if(_override) then
{
player addItem _item;
}
else
{
private["_wepItems","_action","_slotTaken"];
_wepItems = switch(_type) do {case 1:{primaryWeaponItems player}; case 2:{secondaryWeaponItems player}; case 3:{handgunItems player}; default {["","",""]};};
_slotTaken = false;
if(_wepItems select 0 != "") then {_slotTaken = true;};
if(_slotTaken) then {
_action = [localize "STR_MISC_AttachmentMSG",localize "STR_MISC_Attachment",localize "STR_MISC_Weapon",localize "STR_MISC_Inventory"] call BIS_fnc_guiMessage;
if(_action) then {
switch(_type) do {
case 1: {player addPrimaryWeaponItem _item;};
case 2: {player addSecondaryWeaponItem _item;};
case 3: {player addHandgunItem _item;};
default {player addItem _item;};
};
} else {
player addItem _item; //Add it to any available container
};
} else {
switch(_type) do {
case 1: {player addPrimaryWeaponItem _item;};
case 2: {player addSecondaryWeaponItem _item;};
case 3: {player addHandgunItem _item;};
default {player addItem _item;};
};
};
};
};
};
};
case 621:
{
if(_ispack) then
{
player addItemToBackpack _item;
}
else
{
if(_override) then
{
player addItem _item;
}
else
{
player addItem _item;
player assignItem _item;
};
};
};
case 616:
{
if(_ispack) then
{
player addItemToBackpack _item;
}
else
{
if(_override) then
{
player addItem _item;
}
else
{
player addItem _item;
player assignItem _item;
};
};
};
default
{
if(_ispack) then
{
player addItemToBackpack _item;
}
else
{
player addItem _item;
};
};
};
};
};
};
}
else
{
switch((_details select 6)) do
{
case "CfgVehicles":
{
removeBackpack player;
};
case "CfgMagazines":
{
player removeMagazine _item;
};
case "CfgGlasses":
{
if(_item == goggles player) then
{
removeGoggles player;
}
else
{
player removeItem _item;
};
};
case "CfgWeapons":
{
if((_details select 4) in [1,2,4,5,4096]) then
{
if(_item in _acecheck) then{player addItem _item;};
if((_details select 4) == 4096) then
{
if((_details select 5) == -1) then
{
_isgun = true;
};
}
else
{
_isgun = true;
};
};
if(_isgun) then
{
switch(true) do
{
case (primaryWeapon player == _item) : {_ispack = false;};
case (secondaryWeapon player == _item) : {_ispack = false;};
case (handGunweapon player == _item) : {_ispack = false;};
case (_item in assignedItems player) : {_ispack = false;};
default {_ispack = true;};
};
if(_item == "MineDetector") then
{
player removeItem _item;
}
else
{
//Lovely code provided by [OCB]Dash
private["_tmpfunction"];
_tmpfunction = {
private["_tWeapons","_tWeaponCount"];
switch(true) do {
case (_this in (uniformItems player)): {
_tWeapons = (getWeaponCargo (uniformContainer player)) select 0;
_tWeaponCount = (getWeaponCargo (uniformContainer player)) select 1;
clearWeaponCargo (uniformContainer player);
{
_numVestWeps = _tWeaponCount select _forEachIndex;
if(_x == _this) then
{
_numVestWeps = _numVestWeps - 1;
};
(uniformContainer player) addWeaponCargo [ _x,_numVestWeps];
}forEach _tWeapons;
};
case (_this in (vestItems player)): {
_tWeapons = (getWeaponCargo (vestContainer player)) select 0;
_tWeaponCount = (getWeaponCargo (vestContainer player)) select 1;
clearWeaponCargo (vestContainer player);
{
_numVestWeps = _tWeaponCount select _forEachIndex;
if(_x == _this) then
{
_numVestWeps = _numVestWeps - 1;
};
(vestContainer player) addWeaponCargo [ _x,_numVestWeps];
}forEach _tWeapons;
};
case (_this in (backpackItems player)): {
_tWeapons = (getWeaponCargo (backpackContainer player)) select 0;
_tWeaponCount = (getWeaponCargo (backpackContainer player)) select 1;
clearWeaponCargo (backpackContainer player);
{
_numVestWeps = _tWeaponCount select _forEachIndex;
if(_x == _this) then
{
_numVestWeps = _numVestWeps - 1;
};
(backpackContainer player) addWeaponCargo [ _x,_numVestWeps];
}forEach _tWeapons;
};
};
};
if(_ispack) then
{
_item call _tmpfunction;
}
else
{
switch(true) do
{
case (_item in (uniformItems player)): {_item call _tmpfunction;};
case (_item in (vestItems player)) : {_item call _tmpfunction;};
case (_item in (backpackItems player)) : {_item call _tmpfunction;};
default {player removeWeapon _item;};
};
};
};
}
else
{
switch((_details select 5)) do
{
case 0: {player unassignItem _item; player removeItem _item;};
case 605: {if(headGear player == _item) then {removeHeadgear player} else {player removeItem _item};};
case 801: {if(uniform player == _item) then {removeUniform player} else {player removeItem _item};};
case 701: {if(vest player == _item) then {removeVest player} else {player removeItem _item};};
case 621: {player unassignItem _item; player removeItem _item;};
case 616: {player unassignItem _item; player removeItem _item;};
default
{
switch (true) do
{
case (_item in (primaryWeaponItems player)) : {player removePrimaryWeaponItem _item;};
case (_item in (handgunItems player)) : {player removeHandgunItem _item;};
default {player removeItem _item;};
};
};
};
};
};
};
};
Alles anzeigen
Der Error:
Code
Error in expression <Weapon_Shop_Filter",0]) == 1) then {
ADD(life_cash,_price);
[_item,false] call l>
Error position: <(life_cash,_price);
[_item,false] call l>
Error Missing ;
File mpmissions\Life.Jackson_County\core\shops\fn_weaponShopBuySell.sqf, line 22
Error in expression <Weapon_Shop_Filter",0]) == 1) then {
ADD(life_cash,_price);
[_item,false] call l>
Error position: <(life_cash,_price);
[_item,false] call l>
Error Missing ;
File mpmissions\Life.Jackson_County\core\shops\fn_weaponShopBuySell.sqf, line 22
Alles anzeigen
Ich habe kein Ahnung wo ich weiter machen soll