Jump to content

[TUTORIAL] Remove/Change Trading Animations (for faster trading)


Gr8

Recommended Posts

follow the steps but everywhere you see traderMenuHive, pretend it says traderMenuConfig

 

Can i use your github code on OP ? It works better than mine. And easy to setup. I will credit you on the post

Link to comment
Share on other sites

Can i use your github code on OP ? It works better than mine. And easy to setup. I will credit you on the post

 

are you talking about this?

 

I don't mind at all but:

1) it doesn't cover different animations -- just removes it

2) it's got some other weird code in there i added for blacklisting items for buying (so you can only sell but not buy them)

Link to comment
Share on other sites

follow the steps but everywhere you see traderMenuHive, pretend it says traderMenuConfig

ummm ... duh ^^ but I was asking if there is something that prevents this method from working correctly with the configtrader option ... like bugs or glitches that appear if you are using configtrader which you wouldnt have when using database traderconfig

 

Link to comment
Share on other sites

ummm ... duh ^^ but I was asking if there is something that prevents this method from working correctly with the configtrader option ... like bugs or glitches that appear if you are using configtrader which you wouldnt have when using database traderconfig

 

 

 

Seems to be working fine with config traders.   I'm still testing but it scares me that these files may be older (from 1.4.0.2) and may cause problems in a live playing environment.

Link to comment
Share on other sites

There is no way to cancel trade_items_wo_db items that I can get to work. I'm guessing the medic animation is so long it somehow allows you to break the animation or something.

Has anyone managed to use a short animation or no animation at all to use these type of trades and to have the ability to cancel at any time?

Link to comment
Share on other sites

  • 2 weeks later...

Hey everyone,

 

since im also using Zupa´s coin script, i´ve tried to make it compatible with fast trade.

But at the moment im stuck with the items. Vehicles and wepons are working fine with fast trade.

 

Has anyone made it to work yet and can help me out?

Link to comment
Share on other sites

Hey everyone,

 

since im also using Zupa´s coin script, i´ve tried to make it compatible with fast trade.

But at the moment im stuck with the items. Vehicles and wepons are working fine with fast trade.

 

Has anyone made it to work yet and can help me out?

 

 

Add me on skype : peterbeer9901 ill try help you :)

Link to comment
Share on other sites

  • 3 weeks later...

Need Help!

 

I have special trader at my Epoch Napf server, how can i trade with this entries?

 

'["ItemTopaz",1]', 276, '[2,"ItemGoldBar10oz",1]', '[1,"ItemGoldBar10oz",1]', 0, 700, 'trade_items_old');
'["ItemCitrine",1]', 275, '[2,"ItemGoldBar10oz",1]', '[1,"ItemGoldBar10oz",1]', 0, 700, 'trade_items_old');
'["ItemAmethyst",1]', 266, '[2,"ItemGoldBar10oz",1]', '[1,"ItemGoldBar10oz",1]', 0, 700, 'trade_items_old');
'["ItemEmerald",1]', 263, '[2,"ItemGoldBar10oz",1]', '[1,"ItemGoldBar10oz",1]', 0, 700, 'trade_items_old');
'["ItemObsidian",1]', 254, '[2,"ItemGoldBar10oz",1]', '[1,"ItemGoldBar10oz",1]', 0, 700, 'trade_items_old');
'["ItemRuby",1]', 253, '[2,"ItemGoldBar10oz",1]', '[1,"ItemGoldBar10oz",1]', 0, 700, 'trade_items_old');
'["ItemSapphire",1]', 253, '[2,"ItemGoldBar10oz",1]', '[1,"ItemGoldBar10oz",1]', 0, 700, 'trade_items_old');

 

'["ItemGoldBar",1]', 276, '[1,"PartOreGold",1]', '[1,"PartOreGold",1]', 0, 703, 'trade_items_old');
'["ItemGoldBar10oz",1]', 276, '[10,"PartOreGold",1]', '[10,"PartOreGold",1]', 0, 703, 'trade_items_old');
'["ItemSilverBar",1]', 276, '[1,"PartOreSilver",1]', '[1,"PartOreSilver",1]', 0, 703, 'trade_items_old');
'["ItemSilverBar10oz",1]', 276, '[10,"PartOreSilver",1]', '[10,"PartOreSilver",1]', 0, 703, 'trade_items_old');
'["PartGeneric",1]', 276, '[1,"PartOre",1]', '[1,"PartOre",1]', 0, 703, 'trade_items_old');
'["bulk_PartGeneric",1]', 276, '[12,"PartOre",1]', '[12,"PartOre",1]', 0, 703, 'trade_items_old');

Link to comment
Share on other sites

Need Help!

 

I have special trader at my Epoch Napf server, how can i trade with this entries?

 

'["ItemTopaz",1]', 276, '[2,"ItemGoldBar10oz",1]', '[1,"ItemGoldBar10oz",1]', 0, 700, 'trade_items_old');

'["ItemCitrine",1]', 275, '[2,"ItemGoldBar10oz",1]', '[1,"ItemGoldBar10oz",1]', 0, 700, 'trade_items_old');

'["ItemAmethyst",1]', 266, '[2,"ItemGoldBar10oz",1]', '[1,"ItemGoldBar10oz",1]', 0, 700, 'trade_items_old');

'["ItemEmerald",1]', 263, '[2,"ItemGoldBar10oz",1]', '[1,"ItemGoldBar10oz",1]', 0, 700, 'trade_items_old');

'["ItemObsidian",1]', 254, '[2,"ItemGoldBar10oz",1]', '[1,"ItemGoldBar10oz",1]', 0, 700, 'trade_items_old');

'["ItemRuby",1]', 253, '[2,"ItemGoldBar10oz",1]', '[1,"ItemGoldBar10oz",1]', 0, 700, 'trade_items_old');

'["ItemSapphire",1]', 253, '[2,"ItemGoldBar10oz",1]', '[1,"ItemGoldBar10oz",1]', 0, 700, 'trade_items_old');

 

'["ItemGoldBar",1]', 276, '[1,"PartOreGold",1]', '[1,"PartOreGold",1]', 0, 703, 'trade_items_old');

'["ItemGoldBar10oz",1]', 276, '[10,"PartOreGold",1]', '[10,"PartOreGold",1]', 0, 703, 'trade_items_old');

'["ItemSilverBar",1]', 276, '[1,"PartOreSilver",1]', '[1,"PartOreSilver",1]', 0, 703, 'trade_items_old');

'["ItemSilverBar10oz",1]', 276, '[10,"PartOreSilver",1]', '[10,"PartOreSilver",1]', 0, 703, 'trade_items_old');

'["PartGeneric",1]', 276, '[1,"PartOre",1]', '[1,"PartOre",1]', 0, 703, 'trade_items_old');

'["bulk_PartGeneric",1]', 276, '[12,"PartOre",1]', '[12,"PartOre",1]', 0, 703, 'trade_items_old');

 

You need to add trade_items_old.sqf in your folder

Link to comment
Share on other sites

You need to add trade_items_old.sqf in your folder

now i try copy the trade_items.sqf to trade_items_old.sqf but it doesn't work.

Trade start write the trade-letters but nothing change in inventory.

 

Here is my copy

private ["_part_out","_part_in","_qty_out","_qty_in","_qty","_buy_o_sell","_textPartIn","_textPartOut","_bos","_needed","_started","_finished","_animState","_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;
        cutText [(localize "str_epoch_player_105"), "PLAIN DOWN"];
         
      r_interrupt = false;
        r_doLoop = true;
        _started = false;
        _finished = false;
       
 
        //////////////
       
            _position = getPos player; // gets the position [x,y,z]
        _posX = _position select 0; // 1th element -> x
        _posY = _position select 1; // 2nd element -> y
 
        _counter = 0.0; // animation duration checker
       
        while {r_doLoop} do {
                _positionCheck = getPos player;
                _newX = _positionCheck select 0; // 1th element -> x
                _newY = _positionCheck select 1; // 2nd element -> y
 
                _counter = _counter + 0.1; // same as the sleep timer: 0.1 sec
 
                if (_counter >  1.5) then { // amount of secs the animation takes estimated ? 2 secs?
                        r_doLoop = false;
                                                _counter = 0.0;
                        _finished = true;
                                               
                };
                if (_newX != _posX || _newY != _posY) 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 {
               
                _canAfford = false;
                if(_bos == 1) then {
                       
                        //sell
                        _qty = {_x == _part_in} count magazines player;
                        if (_qty >= _qty_in) then {
                                _part_inClass =  configFile >> "CfgMagazines" >> _part_in;
                                _removed = _removed + ([player,_part_inClass,_qty_in] call BIS_fnc_invRemove);
                                if (_removed == _qty_in) then {
                                        _canAfford = [[[_part_out,_qty_out]],1] call epoch_returnChange;
                                };
                        };
 
                } 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;
                        };
                };
 
                diag_log format["DEBUG TRADER DONE?: %1", _canAfford];
               
                if (_canAfford) then {
                       
                        // 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 {
                                cutText [format[(localize "str_epoch_player_186"),_qty_in,_textPartIn,_qty_out,_textPartOut], "PLAIN DOWN"];
                        };
                        dayzTradeResult = nil;
                       
                } else {
                        _qty = {_x == _part_in} count magazines player;
                        _needed =  _qty_in - _qty;
                        cutText [format[(localize "str_epoch_player_184"),_needed,_textPartIn] , "PLAIN DOWN"];
                        _abort = true;
                };
        };
        if(_abort) exitWith {r_autoTrade = false};
       
        sleep 1;
};
 
DZE_ActionInProgress = false;
Link to comment
Share on other sites

how would i go about doing this for admins only?

 

I know would need something in variables.sqf like

FastTrade = ["0","0"] //Admin ID's

and also would need something to wrap the code saying basicly "if uid is in the fasttrade block then do this else do this" but im not sure how to do that bit lol

Link to comment
Share on other sites

how would i go about doing this for admins only?

 

I know would need something in variables.sqf like

FastTrade = ["0","0"] //Admin ID's

and also would need something to wrap the code saying basicly "if uid is in the fasttrade block then do this else do this" but im not sure how to do that bit lol

 

I would try this in each of the files, like trade_any_vehicle etc.

if ((getPlayerUID player) in FastTrade) then {
player playActionNow "PutDown";
} else {
player playActionNow "Medic";
};

this may not work, but it's what I would try first

Link to comment
Share on other sites

 

I would try this in each of the files, like trade_any_vehicle etc.

if ((getPlayerUID player) in FastTrade) then {
player playActionNow "PutDown";
} else {
player playActionNow "Medic";
};

this may not work, but it's what I would try first

 

 

tried it but couldn't get it to work :(

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...