mgm Posted September 9, 2014 Report Share Posted September 9, 2014 we do truncate it because this trigger only works on insert in player_data not and not on update, (it would be possible to create a trigger for update too!) so if you would have a player where banking_Data did not get created and he is already in the player_Data table, my trigger would not help fix it .... it doesnt really hurt to truncate the player_Data table because nothing gets lost. No character gets wiped or anything its only a table with playername and playerUID which simply gets created new if its missing ... gotcha Link to comment Share on other sites More sharing options...
Guest Posted September 10, 2014 Report Share Posted September 10, 2014 well at least i found a solution :P Link to comment Share on other sites More sharing options...
sunnypt Posted September 16, 2014 Report Share Posted September 16, 2014 Open \dayz_server\bankzones\bankinit.sqf (from your server's PBO) uh, i can't find this. i extracted my dayz_server.pbo and went to bankzones, but no bankinit.sqf there ? Link to comment Share on other sites More sharing options...
Rocu Posted September 16, 2014 Author Report Share Posted September 16, 2014 You can find it over at Soul's Github: https://github.com/UK431-Soul/DayZ-Epoch_SCHiveExt/tree/master/dayz_server/bankzones. If you've downloaded that file, make sure you update your server_functions.sqf as well. Note that this fix is for people who use Soul's DLL. If you don't have it installed I don't think this works for you. If you DO have it installed, you should already have those files. Link to comment Share on other sites More sharing options...
raymix Posted October 5, 2014 Report Share Posted October 5, 2014 For some reason none of fixes actually worked for me on dedi, but did work on local test machine by default. Weird.. Anyway, since I am not running as root, I changed definer. Also AFTER UPDATE ON didn't work, since fields are not updated, just created when a new player joins (right?)... it's a fresh server However making a trigger for AFTER INSERT ON works. CREATE DEFINER=`dayz`@`localhost` TRIGGER `banking` AFTER INSERT ON `player_data` FOR EACH ROW INSERT INTO banking_data ( PlayerUID, PlayerName, BankSaldo, LastUpdated) VALUES (NEW.PlayerUID, NEW.PlayerName, 0, NOW()) Slimdickens and Rocu 2 Link to comment Share on other sites More sharing options...
Rocu Posted October 5, 2014 Author Report Share Posted October 5, 2014 For some reason none of fixes actually worked for me on dedi, but did work on local test machine by default. Weird.. Anyway, since I am not running as root, I changed definer. Also AFTER UPDATE ON didn't work, since fields are not updated, just created when a new player joins (right?)... it's a fresh server However making a trigger for AFTER INSERT ON works. CREATE DEFINER=`dayz`@`localhost` TRIGGER `banking` AFTER INSERT ON `player_data` FOR EACH ROW INSERT INTO banking_data ( PlayerUID, PlayerName, BankSaldo, LastUpdated) VALUES (NEW.PlayerUID, NEW.PlayerName, 0, NOW()) You have a point. The event should run with AFTER INSERT instead of UPDATE, indeed. I'll update the first post. raymix 1 Link to comment Share on other sites More sharing options...
carl101 Posted October 5, 2014 Report Share Posted October 5, 2014 i could do with some help on this, i have applied the fixes in this thread but no coins are being sent to database and lose when relogging or server restart. i can alter the coin amount in the database and when the player relogs, the new amount will show on him but not the other way around. the amount on the players person stays after relogging/restarts just noth the bank amount i have gone over the installation and everything looks fine. any help is appreciated Link to comment Share on other sites More sharing options...
raymix Posted October 5, 2014 Report Share Posted October 5, 2014 i could do with some help on this, i have applied the fixes in this thread but no coins are being sent to database and lose when relogging or server restart. i can alter the coin amount in the database and when the player relogs, the new amount will show on him but not the other way around. the amount on the players person stays after relogging/restarts just noth the bank amount i have gone over the installation and everything looks fine. any help is appreciated make sure to run code from #6 as a query, that way game will be allowed to change fields in banking_data Link to comment Share on other sites More sharing options...
carl101 Posted October 5, 2014 Report Share Posted October 5, 2014 do i just simply add that into the query box and press submit? i assume you mean this code ALTER TABLE `banking_data` CHANGE `BankSaldo` `BankSaldo` BIGINT( 24 ) NULL DEFAULT '0' Link to comment Share on other sites More sharing options...
rhammer2003 Posted October 6, 2014 Report Share Posted October 6, 2014 Hey All I am trying to execute the following code on my "mySql" database since none of my new users banking data is saved, I have all the fixes that are at the beginning of this thread installed. when I try to execute this code CREATE TRIGGER banking AFTER UPDATE ON player_Data FOR EACH ROW INSERT INTO banking_Data( PlayerUID, PlayerName, BankSaldo, LastUpdated)VALUES(NEW.PlayerUID, NEW.PlayerName, 0, NOW()); I get the following error [Err] 1235 - This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'. I am having to manually enter my players data in the banking field and this is getting to be way more work than should be needed. Does anyone have a working solution for this? I am using Souls files thanks. Link to comment Share on other sites More sharing options...
raymix Posted October 6, 2014 Report Share Posted October 6, 2014 do i just simply add that into the query box and press submit? i assume you mean this code ALTER TABLE `banking_data` CHANGE `BankSaldo` `BankSaldo` BIGINT( 24 ) NULL DEFAULT '0' Yup, that's all there is to it, copy > paste into query and run it. If using heidiSQL, check Data tab before and after doing this, you will see that a new tick will be added Link to comment Share on other sites More sharing options...
raymix Posted October 6, 2014 Report Share Posted October 6, 2014 I get the following error [Err] 1235 - This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'. delete old trigger before adding new one Link to comment Share on other sites More sharing options...
rhammer2003 Posted October 6, 2014 Report Share Posted October 6, 2014 Delete what old trigger? Link to comment Share on other sites More sharing options...
Gr8 Posted October 6, 2014 Report Share Posted October 6, 2014 When a players uses his bank on the first login, it doesnt save. Tried all the possible Fixes Link to comment Share on other sites More sharing options...
rhammer2003 Posted October 6, 2014 Report Share Posted October 6, 2014 I am using Naviicat lite for Mysql and cant seem to find any triggers anywhere, How would I go about finding the trigger and removing it? Link to comment Share on other sites More sharing options...
carl101 Posted October 6, 2014 Report Share Posted October 6, 2014 Didn't work for me I'm afraid, Any other ideas on what I can check or do? Link to comment Share on other sites More sharing options...
rhammer2003 Posted October 10, 2014 Report Share Posted October 10, 2014 Hello, does anyone have any info on this? I am still having issues with banking data not saving for new players yet, I have patched with the info at the beginning of this thread and I can not run the sql command Link to comment Share on other sites More sharing options...
Gr8 Posted October 10, 2014 Report Share Posted October 10, 2014 I am using Naviicat lite for Mysql and cant seem to find any triggers anywhere, How would I go about finding the trigger and removing it? Use HiediSQL :) Link to comment Share on other sites More sharing options...
Rocu Posted October 10, 2014 Author Report Share Posted October 10, 2014 Hello, does anyone have any info on this? I am still having issues with banking data not saving for new players yet, I have patched with the info at the beginning of this thread and I can not run the sql command Why can't you run the command? What error does it give you? Link to comment Share on other sites More sharing options...
rhammer2003 Posted October 10, 2014 Report Share Posted October 10, 2014 Hi Rocu, thanks for your response, please see my previous messages in this thread. I listed the error, I am not a sql guru annd could use some assistance in getting the command to run properly. Link to comment Share on other sites More sharing options...
Rocu Posted October 10, 2014 Author Report Share Posted October 10, 2014 Hi Rocu, thanks for your response, please see my previous messages in this thread. I listed the error, I am not a sql guru annd could use some assistance in getting the command to run properly. Ah yes sorry, my bad. In that case, do as suggested - remove the existing event first. As recommended previously, you should try and use HeidiSQL for that. Link to comment Share on other sites More sharing options...
rhammer2003 Posted October 11, 2014 Report Share Posted October 11, 2014 but how do I remove the existing event? I do not see where I have an existing one Link to comment Share on other sites More sharing options...
rhammer2003 Posted October 12, 2014 Report Share Posted October 12, 2014 Bump Link to comment Share on other sites More sharing options...
PcKoPaT Posted October 12, 2014 Report Share Posted October 12, 2014 Banking_data not saving Can anyone tell me why Thanks for your help dayz_server\bankzones\banks.sqf /*************************************************************************************************/ /* */ /* Author: Soul */ /* Filename: bankinit.sqf */ /* Description: Initiates all server side used functions/EH/Map edits used in SC Mod */ /* */ /* Credits: To be filled in on final release */ /* */ /*************************************************************************************************/ execVM "\z\addons\dayz_server\bankzones\banks.sqf"; "PVDZE_bank_Save" addPublicVariableEventHandler { _playerObj = ((_this select 1) select 0); _playerID = getPlayerUID _playerObj; _bankMoney = _playerObj getVariable ["bankMoney",0]; if(_playerID != "") then { _key = format["CHILD:299:%1:%2:",_playerID,_bankMoney]; _key call server_hiveReadWrite; }; }; server_playerSetup.sqf private ["_characterID","_playerObj","_playerID","_dummy","_worldspace","_state","_doLoop","_key","_primary","_medical","_stats","_humanity","_lastinstance","_friendlies","_randomSpot","_position","_debug","_distance","_hit","_fractures","_score","_findSpot","_pos","_isIsland","_w","_clientID","_spawnMC","_namespace"]; //diag_log ("SETUP: attempted with " + str(_this)); _characterID = _this select 0; _playerObj = _this select 1; _playerID = getPlayerUID _playerObj; _playerName = name _playerObj; if (isNull _playerObj) exitWith { diag_log ("SETUP INIT FAILED: Exiting, player object null: " + str(_playerObj)); }; //Add MPHit event handler // diag_log("Adding MPHit EH for " + str(_playerObj)); _playerObj addMPEventHandler ["MPHit", {_this spawn fnc_plyrHit;}]; if (_playerID == "") then { _playerID = getPlayerUID _playerObj; }; if (_playerID == "") exitWith { diag_log ("SETUP INIT FAILED: Exiting, no player ID: " + str(_playerObj)); }; private["_dummy"]; _dummy = getPlayerUID _playerObj; if ( _playerID != _dummy ) then { diag_log format["DEBUG: _playerID miscompare with UID! _playerID:%1",_playerID]; _playerID = _dummy; }; //Variables _worldspace = []; _state = []; //Soul start: SC Edit >>> initialize variables in main scope (helps avoiding scope issues within the file and avoids undeclared variable errors in rpt, aswell they server as default values if anything goes wrong) _cashMoney = 0; _bankMoney = 0; //Soul end: SC Edit //Do Connection Attempt _doLoop = 0; while {_doLoop < 5} do { _key = format["CHILD:102:%1:",_characterID]; _primary = _key call server_hiveReadWrite; if (count _primary > 0) then { if ((_primary select 0) != "ERROR") then { _doLoop = 9; }; }; _doLoop = _doLoop + 1; }; if (isNull _playerObj || !isPlayer _playerObj) exitWith { diag_log ("SETUP RESULT: Exiting, player object null: " + str(_playerObj)); }; //Wait for HIVE to be free //diag_log ("SETUP: RESULT: Successful with " + str(_primary)); _medical = _primary select 1; _stats = _primary select 2; _state = _primary select 3; _worldspace = _primary select 4; _humanity = _primary select 5; _lastinstance = _primary select 6; //Soul start: SC Edit >>> loading player cash into variable / overwriting default 0 value with returned value. _cashMoney = _primary select 7; //Soul end: SC Edit //Set position _randomSpot = false; if (count _worldspace > 0) then { _position = _worldspace select 1; if (count _position < 3) then { //prevent debug world! _randomSpot = true; }; _debug = getMarkerpos "respawn_west"; _distance = _debug distance _position; if (_distance < 2000) then { _randomSpot = true; }; _distance = [0,0,0] distance _position; if (_distance < 500) then { _randomSpot = true; }; // Came from another server force random spawn if (_lastinstance != dayZ_instance) then { _randomSpot = true; }; //_playerObj setPosATL _position; } else { _randomSpot = true; }; //diag_log ("LOGIN: Location: " + str(_worldspace) + " doRnd?: " + str(_randomSpot)); //set medical values if (count _medical > 0) then { _playerObj setVariable["USEC_isDead",(_medical select 0),true]; _playerObj setVariable["NORRN_unconscious", (_medical select 1), true]; _playerObj setVariable["USEC_infected",(_medical select 2),true]; _playerObj setVariable["USEC_injured",(_medical select 3),true]; _playerObj setVariable["USEC_inPain",(_medical select 4),true]; _playerObj setVariable["USEC_isCardiac",(_medical select 5),true]; _playerObj setVariable["USEC_lowBlood",(_medical select 6),true]; _playerObj setVariable["USEC_BloodQty",(_medical select 7),true]; _playerObj setVariable["unconsciousTime",(_medical select 10),true]; //Add Wounds { _playerObj setVariable[_x,true,true]; //["usecBleed",[_playerObj,_x,_hit]] call broadcastRpcCallAll; usecBleed = [_playerObj,_x,_hit]; publicVariable "usecBleed"; } count (_medical select 8); //Add fractures _fractures = (_medical select 9); _playerObj setVariable ["hit_legs",(_fractures select 0),true]; _playerObj setVariable ["hit_hands",(_fractures select 1),true]; if (count _medical > 11) then { //Additional medical stats _playerObj setVariable ["messing",(_medical select 11),true]; }; } else { //Reset Fractures _playerObj setVariable ["hit_legs",0,true]; _playerObj setVariable ["hit_hands",0,true]; _playerObj setVariable ["USEC_injured",false,true]; _playerObj setVariable ["USEC_inPain",false,true]; _playerObj setVariable ["messing",[0,0],true]; }; if (count _stats > 0) then { //register stats _playerObj setVariable["zombieKills",(_stats select 0),true]; _playerObj setVariable["headShots",(_stats select 1),true]; _playerObj setVariable["humanKills",(_stats select 2),true]; _playerObj setVariable["banditKills",(_stats select 3),true]; _playerObj addScore (_stats select 1); _playerObj setVariable ["moneychanged",0,true]; _playerObj setVariable ["bankchanged",0,true]; _playerObj setVariable["AsReMixhud", true,true]; //Save Score _score = score _playerObj; _playerObj addScore ((_stats select 0) - _score); //record for Server JIP checks _playerObj setVariable["zombieKills_CHK",(_stats select 0)]; _playerObj setVariable["headShots_CHK",(_stats select 1)]; _playerObj setVariable["humanKills_CHK",(_stats select 2)]; _playerObj setVariable["banditKills_CHK",(_stats select 3)]; if (count _stats > 4) then { if (!(_stats select 3)) then { _playerObj setVariable["selectSex",true,true]; }; } else { _playerObj setVariable["selectSex",true,true]; }; } else { //Save initial loadout //register stats _playerObj setVariable["zombieKills",0,true]; _playerObj setVariable["humanKills",0,true]; _playerObj setVariable["banditKills",0,true]; _playerObj setVariable["headShots",0,true]; _playerObj setVariable ["friendlies",[],true]; _playerObj setVariable["AsReMixhud", true,true]; //record for Server JIP checks _playerObj setVariable["zombieKills_CHK",0,true]; _playerObj setVariable["humanKills_CHK",0,true]; _playerObj setVariable["banditKills_CHK",0,true]; _playerObj setVariable["headShots_CHK",0,true]; }; if (_randomSpot) then { private["_counter","_position","_isNear","_isZero","_mkr"]; if (!isDedicated) then { endLoadingScreen; }; //Spawn modify via mission init.sqf if(isnil "spawnArea") then { spawnArea = 1500; }; if(isnil "spawnShoremode") then { spawnShoremode = 1; }; // _spawnMC = actualSpawnMarkerCount; //spawn into random _findSpot = true; _mkr = ""; while {_findSpot} do { _counter = 0; while {_counter < 20 && _findSpot} do { // switched to floor _mkr = "spawn" + str(floor(random _spawnMC)); _position = ([(getMarkerPos _mkr),0,spawnArea,10,0,2000,spawnShoremode] call BIS_fnc_findSafePos); _isNear = count (_position nearEntities ["Man",100]) == 0; _isZero = ((_position select 0) == 0) && ((_position select 1) == 0); //Island Check //TeeChange _pos = _position; _isIsland = false; //Can be set to true during the Check for [{_w=0},{_w<=150},{_w=_w+2}] do { _pos = [(_pos select 0),((_pos select 1) + _w),(_pos select 2)]; if(surfaceisWater _pos) exitWith { _isIsland = true; }; }; if ((_isNear && !_isZero) || _isIsland) then {_findSpot = false}; _counter = _counter + 1; }; }; _isZero = ((_position select 0) == 0) && ((_position select 1) == 0); _position = [_position select 0,_position select 1,0]; if (!_isZero) then { //_playerObj setPosATL _position; _worldspace = [0,_position]; }; }; //Record player for management dayz_players set [count dayz_players,_playerObj]; //record player pos locally for server checking _playerObj setVariable["CharacterID",_characterID,true]; _playerObj setVariable["humanity",_humanity,true]; _playerObj setVariable["humanity_CHK",_humanity]; //_playerObj setVariable["worldspace",_worldspace,true]; //_playerObj setVariable["state",_state,true]; _playerObj setVariable["lastPos",getPosATL _playerObj]; //Soul start: SC Edit >>> assigning player new variable for cashmoney and bankMoney _playerObj setVariable ["cashMoney",_cashMoney,true]; _playerObj setVariable ["cashMoney_CHK",_cashMoney]; //Soul end: SC Edit dayzPlayerLogin2 = [_worldspace,_state]; // PVDZE_obj_Debris = DZE_LocalRoadBlocks; _clientID = owner _playerObj; if (!isNull _playerObj) then { _clientID publicVariableClient "dayzPlayerLogin2"; if (isNil "PVDZE_plr_SetDate") then { call server_timeSync; }; _clientID publicVariableClient "PVDZE_plr_SetDate"; }; //record time started _playerObj setVariable ["lastTime",time]; //_playerObj setVariable ["model_CHK",typeOf _playerObj]; // ------------ SOUL - Single Currency - Get Bank Value ---------------- _key2 = format["CHILD:298:%1:",_playerID]; _primary2 = _key2 call server_hiveReadWrite; if(count _primary2 > 0) then { if((_primary2 select 0) != "ERROR") then { _bankMoney = _primary2 select 1; _playerObj setVariable["bankMoney",_bankMoney,true]; _playerObj setVariable["bankMoney_CHK",_bankMoney]; } else { _playerObj setVariable["bankMoney",0,true]; _playerObj setVariable["bankMoney_CHK",0]; }; } else { _playerObj setVariable["bankMoney",0,true]; _playerObj setVariable["bankMoney_CHK",0]; }; //diag_log ("LOGIN PUBLISHING: " + str(_playerObj) + " Type: " + (typeOf _playerObj)); PVDZE_plr_Login = nil; PVDZE_plr_Login2 = nil; More detailed files (BattlEye,missioni-server.pbo): https://github.com/HaYToKoRaZ/no-save-bank/ mysq banking_data mysq Character_DATA Link to comment Share on other sites More sharing options...
Rocu Posted October 13, 2014 Author Report Share Posted October 13, 2014 but how do I remove the existing event? I do not see where I have an existing one If you can't find the existing events with HeidiSQL then just insert this query: SHOW EVENTS And that should list all of the events you have. Look for the event name that you want deleted and then just insert this query: DROP EVENT IF EXISTS yourEventName; Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now