Gr8 Posted May 29, 2014 Report Share Posted May 29, 2014 This Tutorial will teach you how to alter/change or remove trader animations for faster trading Requirements: * Basic knowledge of unpacking pbo's * Custom compiles * Common sense * Text Editor (notepad++) Installation (If you already have a compiles file, Skip to #4 please) 1) Open your dayz_mission.pbo and open init.sqf Find: call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\compiles.sqf"; //Compile regular functions Replace it with: call compile preprocessFileLineNumbers "fixes\compiles.sqf"; //Compile regular functions 2) Now make a folder called fixes 3) copy this file into the fixes folder ..\Steam\SteamApps\common\Arma 2 Operation Arrowhead\@DayZ_Epoch\addonsdayz_code.pbo\init\compiles.sqf (if you already have a custom compiles.sqf, start here) 4) Open fixes/compiles.sqf Find: call compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_traderMenuHive.sqf"; Replace it with: call compile preprocessFileLineNumbers "fixes\player_traderMenuHive.sqf"; 5) Copy this file into your fixes folder ..\Steam\SteamApps\common\Arma 2 Operation Arrowhead\@DayZ_Epoch\addonsdayz_code.pbo\compile\player_traderMenuHive.sqf 6) Open fixes/player_traderMenuHive.sqf Find: _File = "\z\addons\dayz_code\actions\" + _afile + ".sqf"; Replace it with: _File = "fixes\trade\" + _afile + ".sqf"; 7) Make a folder called trade inside the fixes folder 8) Download the appropriate file for your server and extract them inside the traders folder Epoch Epoch With Zupa 1.1 Single CurrencyEpoch With Soul's Edit 9) Repack and you're done :) Configuration If you leave the way you installed it, it will be ready to go on the server. On my version of code, instead of the medic animation, it will do a pickup or lean animation which is way quicker than the medic animation. however if you want to modify it to your likings, you may do so very easily. To Change the animation of trading Open every file inside the fixes/trade folder Find: player playActionNow "PutDown"; and replace "PutDown" with any other animation you like. Check this link for almost all the arma animation To Remove the animation of trading Open every file inside the fixes/trade folder Find: player playActionNow "PutDown"; Remove the line whole line, to simple get rid of the animation. Credits: Zupa PeterBeer Cinjun, Donnovan, 31_D!4b10 and 2 others 5 Link to comment Share on other sites More sharing options...
sisquo007 Posted May 29, 2014 Report Share Posted May 29, 2014 Seems to be a cool idea but doesent work for me. The animation doesent loop and u could buy just one Item. Link to comment Share on other sites More sharing options...
Gr8 Posted May 29, 2014 Author Report Share Posted May 29, 2014 Yes, Is seems to be a bug where the trade_items loop do not work. I will be posting a fix soon Link to comment Share on other sites More sharing options...
Gr8 Posted May 29, 2014 Author Report Share Posted May 29, 2014 Seems to be a cool idea but doesent work for me. The animation doesent loop and u could buy just one Item. Check the link for new files, replace it with yours, Loop is now working Link to comment Share on other sites More sharing options...
ZeroK00L Posted May 30, 2014 Report Share Posted May 30, 2014 This is awesome! Thank you so much for this! Question. Have you tried any other animations? Zero Link to comment Share on other sites More sharing options...
sisquo007 Posted May 30, 2014 Report Share Posted May 30, 2014 Hey! THX for ur fast reply! I replace my old files with ur updated one. Faster trading works now but there is a new problem! I cant cancle the trade with moving. He still trade as long ur money is empty. Do u have a solution for this? THX! Link to comment Share on other sites More sharing options...
ZeroK00L Posted May 30, 2014 Report Share Posted May 30, 2014 Yes, trade_cancel.sqf is missing. Looking through the files I see the eniter block for the loop and to cancel was modified. Zero EDIT: Also noticed trade metals was not included. Wonder if this will cause an issue when the trader converts your metals... gonna revert back to the original methos until these problems are sorted out. Great idea though and much better than original animation. Hope someone smarter than me can get this working properly. EDIT2: Also not included is when players trade zombie guts for biomeat, Whiskey bottles for Tin Etc. Hope this helps get in right direction :) Link to comment Share on other sites More sharing options...
Gr8 Posted May 30, 2014 Author Report Share Posted May 30, 2014 Thank you all for pointing out the bugs and glitches, Next release, i will include trade_cancel trade_metals totally forgot about those :) Link to comment Share on other sites More sharing options...
Gr8 Posted May 30, 2014 Author Report Share Posted May 30, 2014 OP Updated. Check this link to replace/add new files to traders folder Link to comment Share on other sites More sharing options...
sisquo007 Posted May 30, 2014 Report Share Posted May 30, 2014 Ok i tryed it but i still cant cancle the trade... anything i neet to update in the "player_traderMenuHive.sqf" too?? Link to comment Share on other sites More sharing options...
Gr8 Posted May 30, 2014 Author Report Share Posted May 30, 2014 Youre right, With a lack of a test server. I am struggling to make a stable version of this script :( Link to comment Share on other sites More sharing options...
ZeroK00L Posted May 31, 2014 Report Share Posted May 31, 2014 Youre right, With a lack of a test server. I am struggling to make a stable version of this script :( Its okay man! We will help test for you! I'd like to see this become a nice addition to our server and I know other people would too! Let me know what I can do! Keep up the good work! :) Zero Link to comment Share on other sites More sharing options...
Gr8 Posted May 31, 2014 Author Report Share Posted May 31, 2014 Stable Version is now released, replace your files with the link in OP :X Link to comment Share on other sites More sharing options...
Gr8 Posted May 31, 2014 Author Report Share Posted May 31, 2014 Still not tested tho, You guys can surely help me with that Link to comment Share on other sites More sharing options...
sisquo007 Posted June 1, 2014 Report Share Posted June 1, 2014 THX for the update but now when i buy something he start with the "PutDown" animation. i let him continue few times and then i move to concle the trade. cancel works now but i have no Items in the inventory, no money was payed and it display the message "U have interrupt the trade" Link to comment Share on other sites More sharing options...
Gr8 Posted June 1, 2014 Author Report Share Posted June 1, 2014 THX for the update but now when i buy something he start with the "PutDown" animation. i let him continue few times and then i move to concle the trade. cancel works now but i have no Items in the inventory, no money was payed and it display the message "U have interrupt the trade" Thanks for the update, will report to you with a new version soon :) Link to comment Share on other sites More sharing options...
Hazard Posted June 1, 2014 Report Share Posted June 1, 2014 I have the latest files installed on our server and it will continue to trade over 200m away from the trader without stopping. Im looking to find a way to make it cancel on each trade if that's okay with you, no guarantee's tho :) Link to comment Share on other sites More sharing options...
Gr8 Posted June 1, 2014 Author Report Share Posted June 1, 2014 Yes, Just private message me the files Link to comment Share on other sites More sharing options...
Gr8 Posted June 2, 2014 Author Report Share Posted June 2, 2014 Adding a counter intead of checking if the animation is still running, thanks to Zupa Link to comment Share on other sites More sharing options...
Nieechi Posted June 3, 2014 Report Share Posted June 3, 2014 Hey, Thanks for all the work so far, this is something i would really love on my server :) I can't get it to work though, i believe i have the latest files but it just kneels down and no trades occur, i had a bash at editing it myself but i tend to do round in circles logic wise till i forget where i am :/ i though t the error was: while {r_doLoop} do { _animState = animationState player; _isStarted = ["putdown",_animState] call fnc_inString; if (_isStarted) then {_started = true;}; if(!_isStarted && !r_interrupt ) then { player playActionNow "PutDown"; _isStarted = true; }; if (_started && !_isStarted ) then { r_doLoop = false; sleep 1; // the amount of secs u want it to take to trade. _finished = true; }; if (r_interrupt) then { r_doLoop = false; }; sleep 0.1; }; As in if you follow it down: _animState = hasvalue _isStarted = true _started = true then the following 3 if statements in this r_doLoop dont address the case for both started and isstarted to be true and so nothing ever happens until you cancel out with an inturrupt. Also just trying to get my head around the reason for all this. When running this script i kneel down to do the putdown action but then never stand up again, i know medic animation is a loop, as in, the starting position for your character is the same as the ending one but this doesn't seem to be the case for the put down animation? Is this possibly causing the line: _isStarted = ["PutDown",_animState] call fnc_inString; to always give a value and therefore this line: if (_started && !_isStarted ) then { to never be satisfied? I thought this might be the case so i tried: while {r_doLoop} do { _animState = animationState player; _isStarted = ["PutDown",_animState] call fnc_inString; if (_isStarted) then {_started = true;}; if(!_isStarted && !r_interrupt ) then { player playActionNow "PutDown"; sleep 2; [objNull, player, rSwitchMove,""] call RE; player playActionNow "stop"; }; if (_started && !_isStarted ) then { _finished = true; r_doLoop = false; }; if (r_interrupt) then { r_doLoop = false; }; if (_started && _isStarted ) then { sleep 2; [objNull, player, rSwitchMove,""] call RE; player playActionNow "stop"; _finished = true; r_doLoop = false; }; sleep 0.1; }; To make it manually get up again after a certain amount of time like i think you were aiming for but now mine doesnt kneel in the first place lol, still says im trading though and never inturrupts... Rambling aside I don't really know what i'm doing here, first attempt but i would love for this feature to work! :D Link to comment Share on other sites More sharing options...
Nieechi Posted June 3, 2014 Report Share Posted June 3, 2014 HMM, have got it to work with a 2 second delay using the medic animation combination: private ["_part_out","_part_in","_qty_out","_qty_in","_qty","_buy_o_sell","_textPartIn","_textPartOut","_bos","_needed","_started","_finished","_animState","_isStarted","_isMedic","_total_parts_out","_abort","_removed","_activatingPlayer","_traderID","_done"]; // [part_out,part_in, qty_out, qty_in,]; if(DZE_ActionInProgress) exitWith { cutText [(localize "str_epoch_player_103") , "PLAIN DOWN"] }; DZE_ActionInProgress = true; _activatingPlayer = player; _part_out = (_this select 3) select 0; _part_in = (_this select 3) select 1; _qty_out = (_this select 3) select 2; _qty_in = (_this select 3) select 3; _buy_o_sell = (_this select 3) select 4; _textPartIn = (_this select 3) select 5; _textPartOut = (_this select 3) select 6; _traderID = (_this select 3) select 7; _bos = 0; if(_buy_o_sell == "sell") then { _bos = 1; }; _abort = false; // perform number of total trades r_autoTrade = true; while {r_autoTrade} do { _removed = 0; // check if current magazine count is greater than 20 if ((count (magazines player)) > 20) exitWith { cutText [(localize "STR_DAYZ_CODE_2"), "PLAIN DOWN"]; r_autoTrade = false}; _canAfford = false; if(_bos == 1) then { //sell _qty = {_x == _part_in} count magazines player; if (_qty >= _qty_in) then { _canAfford = true; }; } else { //buy _trade_total = [[_part_in,_qty_in]] call epoch_itemCost; _total_currency = call epoch_totalCurrency; _return_change = _total_currency - _trade_total; if (_return_change >= 0) then { _canAfford = true; }; }; if(!_canAfford) exitWith { _qty = {_x == _part_in} count magazines player; _needed = _qty_in - _qty; cutText [format[(localize "str_epoch_player_184"),_needed,_textPartIn] , "PLAIN DOWN"]; r_autoTrade = false }; cutText [(localize "str_epoch_player_105"), "PLAIN DOWN"]; [1,1] call dayz_HungerThirst; player playActionNow "Medic"; //_dis=20; //_sfx = "repair"; //[player,_sfx,0,false,_dis] call dayz_zombieSpeak; //[player,_dis,true,(getPosATL player)] spawn player_alertZombies; r_interrupt = false; _animState = animationState player; r_doLoop = true; _started = false; _finished = false; while {r_doLoop} do { _animState = animationState player; _isMedic = ["medic",_animState] call fnc_inString; if (_isMedic) then { _started = true; sleep 2; [objNull, player, rSwitchMove,""] call RE; player playActionNow "PlayerStand"; }; if (_started && !_isMedic) then { r_doLoop = false; _finished = true; }; if (r_interrupt) then { r_doLoop = false; }; sleep 0.1; }; r_doLoop = false; if (!_finished) exitWith { r_interrupt = false; if (vehicle player == player) then { [objNull, player, rSwitchMove,""] call RE; player playActionNow "stop"; }; cutText [(localize "str_epoch_player_106") , "PLAIN DOWN"]; }; if (_finished) then { //diag_log format["DEBUG TRADER DONE?: %1", _canAfford]; // Continue with trade. if (isNil "_part_in") then { _part_in = "Unknown Item" }; if (isNil "inTraderCity") then { inTraderCity = "Unknown Trader City" }; if(_bos == 1) then { // Selling PVDZE_obj_Trade = [_activatingPlayer,_traderID,_bos,_part_in,inTraderCity,_part_out,_qty_out]; } else { // Buying PVDZE_obj_Trade = [_activatingPlayer,_traderID,_bos,_part_out,inTraderCity,_part_in,_qty_in]; }; publicVariableServer "PVDZE_obj_Trade"; if(_bos == 0) then { // only wait for result when buying waitUntil {!isNil "dayzTradeResult"}; if(dayzTradeResult == "PASS") then { _done = [[[_part_in,_qty_in]],0] call epoch_returnChange; if (_done) then { for "_x" from 1 to _qty_out do { player addMagazine _part_out; }; cutText [format[(localize "str_epoch_player_186"),_qty_in,_textPartIn,_qty_out,_textPartOut], "PLAIN DOWN"]; }; } else { _abort = true; cutText [format[(localize "str_epoch_player_183"),_textPartOut] , "PLAIN DOWN"]; }; } else { _part_inClass = configFile >> "CfgMagazines" >> _part_in; _removed = _removed + ([player,_part_inClass,_qty_in] call BIS_fnc_invRemove); if (_removed == _qty_in) then { [[[_part_out,_qty_out]],1] call epoch_returnChange; }; cutText [format[(localize "str_epoch_player_186"),_qty_in,_textPartIn,_qty_out,_textPartOut], "PLAIN DOWN"]; }; dayzTradeResult = nil; }; if(_abort) exitWith {r_autoTrade = false}; sleep 1; }; DZE_ActionInProgress = false; Weird thing is if I change the variables to PutDown / _isPutDown / putdown following the same formatting rules and capitalisation as for the medic one it doesn't work, Is the action in the DB capitalised differently from what I have listed do you think or doesn't matter? At a loss really but at least it works with the medic animation at the moment. Obviously the "sleep 2;" line in the "r_doLoop" section can be changed to whatever you want the delay to be ^^ Link to comment Share on other sites More sharing options...
crazzeddemonn Posted June 3, 2014 Report Share Posted June 3, 2014 I installed and its working but i cant sell ammo nor food? Link to comment Share on other sites More sharing options...
Nieechi Posted June 3, 2014 Report Share Posted June 3, 2014 hmm, did the guide instructions in the OP work for you without any modification? I wonder what was different on mine then :/ Link to comment Share on other sites More sharing options...
Gr8 Posted June 3, 2014 Author Report Share Posted June 3, 2014 Thanks Nieechi for explaining the logic, I was messing aroung on this too, found out that Animation cannot be interupted and to stop it you have to manually stand up. So i added that when the players moves it interupts the trading, but it looks like when doing the animation, the player moves so it cancels it upon trading. Then The only successful thing i did is to remove the animation and put a sleep timer instead, that works good so far. I have updated the files with no animation code. My buddy Zupa and me are trying to add a medic animation and stop it so it doesnt take too long to trade Link to comment Share on other sites More sharing options...
Gr8 Posted June 3, 2014 Author Report Share Posted June 3, 2014 I installed and its working but i cant sell ammo nor food? Files, are updated, try now 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