Disclaimer: Die Scripts stammen nicht von mir. Als Autor ist ein gewisser Fresqo angegeben. Ich habe lediglich gemeinsam mit moeck die Sachen angepasst.
Anpassungen: Es funktioniert ohne Dupebug ;), alle unnötigen close comments sind raus, ein Zurück-Button im Inventar wurde hinzugefügt, alle Texte auf "richtiges" Deutsch übersetzt
Version: Altis Life 5.0
Schwierigkeitsgrad: 1 (Copy & Paste)
Was es tut:
Ihr erhaltet ein Auktionshaus, über das Spieler ihr gesamtes Inventar zu selbst gewählten Preisen verkaufen können.
MISSION
Schritt 1:
öffnet eure Functions.hpp und fügt in der class Life_Client_Core Folgendes ein:
class vAH {
file = "core\vAH";
class vAH_load {};
class vAH_buy {};
class vAH_receiver {};
class vAH_loadInventory {};
class vAH_sell {};
class vAH_checkItem {};
class vAH_takeBack {};
class vAH_select {};
};
Alles anzeigen
Schritt 2:
Dann in der CfgRemoteExec.hpp unter class Functions bei den /* Client only functions */ am Ende
und bei den /* Server only functions */ am Ende
Schritt 3:
In /core/init.sqf vor dem diag_log ganz unten folgendes einfügen:
//Auktionshaus
waitUntil {!isNil "vAH_loaded"};
private["_total","_uid","_toDel"];
_total = 0;
_toDel = [];
_uid = getPlayerUID player;
{if ((_x select 5 IsEqualto _uid) && (_x select 7 IsEqualto 2)) then {_total = _total + (_x select 4);_toDel pushBack (_x select 0)};}forEach all_ah_items;
if (_total > 0) then {
{[1,_x] remoteExec ["TON_fnc_vAH_update",RSERV];}forEach _toDel;
[0,format["Während du geschlafen hast hast du Gegenstände im Wert von $%1 über das Auktionshaus verkauft.",[_total]call life_fnc_numberText]] remoteExec ["life_fnc_broadcast",player];
BANK = BANK + _total;
};
Alles anzeigen
Schritt 4:
Ihr fügt ganz am Ende im Pfad /dialog/MasterHandler.hpp das ein:
LIFE_SERVER
Schritt 1:
Öffnet die config.cpp und fügt am Ende der class TON_System diese class hinzu:
Schritt 2:
In der init.sqf brauchen wir diesen Eintrag ganz am Ende vor dem diag_log:
//Auktionshaus
all_ah_items = [];
publicVariable "all_ah_items";
[] spawn TON_fnc_vAH_init;
[] spawn {
while {true} do {
sleep (20 * 60);
if (count all_ah_items > 0) then {
[] spawn TON_fnc_vAH_update;
};
};
};
Alles anzeigen
MAP
Setzt irgendwo auf der Map, wo eben das Auktionshaus hin soll, einen NPC, ein Schild oder was auch immer ihr wollt und schreibt in die Init:
this addAction ["Auktionshaus", {[] spawn life_fnc_vAH_load;},"",0,false,false,"", "vehicle player isEqualTo player && playerSide isEqualTo civilian",5 ];
DATENBANK
Dann legt ihr noch einen Datenbanksatz hiermit an:
CREATE TABLE IF NOT EXISTS `ah` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`type` int(5) NOT NULL DEFAULT '0',
`amount` int(5) NOT NULL DEFAULT '0',
`item` text NOT NULL,
`price` int(100) NOT NULL DEFAULT '0',
`seller` varchar(50) NOT NULL,
`sellername` varchar(32) NOT NULL,
`status` int(5) NOT NULL DEFAULT '0',
`time` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=174 DEFAULT CHARSET=latin1;
Alles anzeigen
ZU GUTER LETZT:
Ladet ihr euch die Dateien aus dem Anhang herunter, entpackt sie und legt die darin enthaltenen Dateien entsprechend in die dort angegebenen Pfade.