Das Urheberrecht dieses Beitrags liegt bei McCarrett, am 25. Oktober 2014
Zitat von McCarrettAlles anzeigenGuten Tag,
ich zeige euch heute, da ich gesehen habe, dass einige beim SQL Smartphone einige Probleme haben,
die Lösung des Problems an. Hier ist einfach nur das Tutorial von @Noldy überarbeitet.Bitte vorher ein Backup machen!
1. Öffnet eure configuration.sqf und fügt folgendes unter Life Variables ein:2. Geht in eure Functions.h und fügt folgendes unter class Player_Menu ein:
3. Geht in euer Ordner /dialog/player_inv.hpp und sucht nach class ButtonCell. Dort findest du ein onButtonClick Event mit einem Code dahinter. Ersetze diesen mit folgendem:
4. Öffnet euer Ordner /dialog/MasterHandler.h und fügt folgendes dazu:
5. Öffnet eure /dialog/common.hpp und sucht nach der class Life_RscListNBox und komentiert dieses aus in den {} Das ganze sieht so aus:
Code Alles anzeigenclass Life_RscListNBox { /*style = 16; type = 102; shadow = 0; font = "PuristaMedium"; sizeEx = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; color[] = {0.95,0.95,0.95,1}; colorText[] = {1,1,1,1.0}; colorDisabled[] = {1,1,1,0.25}; colorScrollbar[] = {0.95,0.95,0.95,1}; colorSelect[] = {0,0,0,1}; colorSelect2[] = {0,0,0,1}; colorSelectBackground[] = {0.8,0.8,0.8,1}; colorSelectBackground2[] = {1,1,1,0.5}; soundSelect[] = {"",0.1,1}; soundExpand[] = {"",0.1,1}; soundCollapse[] = {"",0.1,1}; period = 1.2; maxHistoryDelay = 0.5; autoScrollSpeed = -1; autoScrollDelay = 5; autoScrollRewind = 0; class ListScrollBar: Life_RscScrollBar{}; class ScrollBar: Life_RscScrollBar{};*/
Direkt darunter fügt nun folgendes ein:Code Alles anzeigenstyle = 16; type = 102; shadow = 0; font = "PuristaMedium"; sizeEx = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; color[] = {0.95,0.95,0.95,1}; colorText[] = {1,1,1,1.0}; colorDisabled[] = {1,1,1,0.25}; colorScrollbar[] = {0.95,0.95,0.95,1}; colorSelect[] = {0,0,0,1}; colorSelect2[] = {0,0,0,1}; colorSelectBackground[] = {0.8,0.8,0.8,1}; colorSelectBackground2[] = {1,1,1,0.5}; soundSelect[] = {"",0.1,1}; soundExpand[] = {"",0.1,1}; soundCollapse[] = {"",0.1,1}; period = 1.2; maxHistoryDelay = 0.5; autoScrollSpeed = -1; autoScrollDelay = 5; autoScrollRewind = 0; rowHeight = 0.04; drawSideArrows = 0; idcLeft = -1; idcRight = -1; class ListScrollBar: Life_RscScrollBar{}; class ScrollBar: Life_RscScrollBar{};
Das ganze müsste jetzt so aussehen:Code Alles anzeigenclass Life_RscListNBox { /*style = 16; type = 102; shadow = 0; font = "PuristaMedium"; sizeEx = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; color[] = {0.95,0.95,0.95,1}; colorText[] = {1,1,1,1.0}; colorDisabled[] = {1,1,1,0.25}; colorScrollbar[] = {0.95,0.95,0.95,1}; colorSelect[] = {0,0,0,1}; colorSelect2[] = {0,0,0,1}; colorSelectBackground[] = {0.8,0.8,0.8,1}; colorSelectBackground2[] = {1,1,1,0.5}; soundSelect[] = {"",0.1,1}; soundExpand[] = {"",0.1,1}; soundCollapse[] = {"",0.1,1}; period = 1.2; maxHistoryDelay = 0.5; autoScrollSpeed = -1; autoScrollDelay = 5; autoScrollRewind = 0; class ListScrollBar: Life_RscScrollBar{}; class ScrollBar: Life_RscScrollBar{};*/ style = 16; type = 102; shadow = 0; font = "PuristaMedium"; sizeEx = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; color[] = {0.95,0.95,0.95,1}; colorText[] = {1,1,1,1.0}; colorDisabled[] = {1,1,1,0.25}; colorScrollbar[] = {0.95,0.95,0.95,1}; colorSelect[] = {0,0,0,1}; colorSelect2[] = {0,0,0,1}; colorSelectBackground[] = {0.8,0.8,0.8,1}; colorSelectBackground2[] = {1,1,1,0.5}; soundSelect[] = {"",0.1,1}; soundExpand[] = {"",0.1,1}; soundCollapse[] = {"",0.1,1}; period = 1.2; maxHistoryDelay = 0.5; autoScrollSpeed = -1; autoScrollDelay = 5; autoScrollRewind = 0; rowHeight = 0.04; drawSideArrows = 0; idcLeft = -1; idcRight = -1; class ListScrollBar: Life_RscScrollBar{}; class ScrollBar: Life_RscScrollBar{}; };
6. Datei im Anhang herunterladen und im Ordner dialog einfügen.
7. Geht in euer stringtable.xml und fügt folgendes dazu in einer neuen Package:
Code Alles anzeigen<Package name="Smartphone"> <Key ID="STR_PM_Smartphone"> <Original>Smartphone</Original> </Key> <Key ID="STR_SMARTPHONE_TITLE"> <Original>Smartphone Menu</Original> </Key> <Key ID="STR_SMARTPHONE_PLAYERLISTTITLE"> <Original>Playerlist</Original> </Key> <Key ID="STR_SMARTPHONE_MESSAGETITLE"> <Original>Nachrichten | VON | WANN</Original> </Key> <Key ID="STR_SMARTPHONE_RANDOMTITLE"> <Original>Nachricht zum lesen auswählen</Original> </Key> <Key ID="STR_Global_Close"> <Original>Close</Original> </Key> <Key ID="STR_SMARTPHONE_SCHREIBEN"> <Original>Schreiben</Original> </Key> <Key ID="STR_SMARTPHONE_NOTRUF"> <Original>Notruf</Original> </Key> <Key ID="STR_SMARTPHONE_Absenden"> <Original>Absenden</Original> </Key> <Key ID="STR_SMARTPHONE_NACHRICHTTITLE"> <Original>Nachricht an:</Original> </Key> <Key ID="STR_SMARTPHONE_Notruftitle"> <Original>NOTRUFE | Ausnutzung führt zum Ban!</Original> </Key> </Package>
8. Datei im Anhang herunterladen, und folgende 3 Dateien in den /core/pmenu Ordner machen:
fn_newMsg.sqf
fn_showMsg.sqf
fn_smartphone.sqf
Das war es an der MPMissions. Nun geht es ab zu dem @life_server.
9. Öffnet eure config.cpp und sucht nach class TON_system und fügt folgendes darunter:Codeclass Smartphone { file = "\life_server\Functions\Smartphone"; class handleMessages {}; class msgRequest {}; class cleanupMessages {}; };
Das ganze sollte nun so aussehen:Code Alles anzeigenclass TON_System { tag = "TON"; class Systems { file = "\life_server\Functions\Systems"; class managesc {}; class cleanup {}; class huntingZone {}; class getID {}; class vehicleCreate {}; class vehicleDead {}; class spawnVehicle {}; class getVehicles {}; class vehicleStore {}; class vehicleDelete {}; class spikeStrip {}; class logIt {}; class federalUpdate {}; class chopShopSell {}; class clientDisconnect {}; class cleanupRequest {}; class setObjVar {}; class keyManagement {}; class robShops {}; class shopState {}; }; class Housing { file = "\life_server\Functions\Housing"; class addHouse {}; class fetchPlayerHouses {}; class initHouses {}; class sellHouse {}; class updateHouseContainers {}; class updateHouseTrunk {}; class houseCleanup {}; }; class Gangs { file = "\life_server\Functions\Gangs"; class insertGang {}; class queryPlayerGang {}; class removeGang {}; class updateGang {}; }; class Smartphone { file = "\life_server\Functions\Smartphone"; class handleMessages {}; class msgRequest {}; class cleanupMessages {}; }; }; };
10. Ebenfalls in der Datei vorhanden. Der Ordner Smartphone einfach in den functions Ordner ziehen.
11. Das letzte was ihr jetzt noch machen müsst, ist folgendes in eure Datenbank einzuspielen:
CodeCREATE TABLE IF NOT EXISTS `messages` ( `uid` int(12) NOT NULL AUTO_INCREMENT, `fromID` varchar(50) NOT NULL, `toID` varchar(50) NOT NULL, `message` text, `fromName` varchar(32) NOT NULL, `toName` varchar(32) NOT NULL, `time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`uid`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=13 ;
Mit diesem Tutorial sollte es einwandfrei von Version 3.1.4.5 - 3.1.4.8 funktionieren.
Der ADAC Button und der Button zum löschen aller empfangener Daten ist auch schon vorhanden.
Ich hoffe es stört @Noldy nicht, dass ich sein Tutorial einfach nur geklaut und überschrieben habe.
Dateien zum downloaden: http://www.file-upload.net/download-9936388/Smartphone.rar.html
PS.: @Maiksdl hat mir dabei geholfen, dass Smartphone funktionstüchtig zu machen auf Version 3.1.4.8