• [Résolu] Duplication d'arme


    Lors de la mort d’un des joueurs sur le serveur, sont arme tombe a terre mais lors de sa réanimation son arme lui est rendu automatiquement sans son viseur mais la première reste a terre avec le viseur dessus, comment je pourrais faire pour que l’arme ne soit pas redonner au joueur lors de sa réanimation pour éviter la duplication ?

  • Pourquoi pas faire en sorte qu’il exécute une suppression des items au sol dans un rayon d’un ou deux mettre autour du joueur réanimé ?

  • J’ai pensé à cette solution mais cela ferait perdre viseur, silencieux, et le chargeur qui se trouve dans l’arme qui est a terre

  • @BrockTriger Alors faire l’inverse, fait en sorte que le joueur réanimé perde son arme, c’est encore plus facile ^^

  • Oui, je vais chercher sa car je pensait qu’il y avait déjà un système comme cela de créé de base par Tonic pour évité cette dupli

  • Je pourrais trouver la réanimation sur le wiki de bohemia ? car c’est la mod altis life qui le rajoute ?

  • Y a une option pour cela dans le Config-Master.hpp non?

  • @Proto-LEDG oui la perte d’armes que tu peux tourner en false ou true mes sa tu pers tout rien et sauvegarder .

  • @BrockTriger C’est le mode AltisLife qui ajoute la réanimation, a toi de trouver où il se trouve dans ta mission, je te laisse ce lien qui pourra t’etre utile :)

    https://community.bistudio.com/wiki/addWeapon

    Une astuce, ajoute un sleep apres la reanimation (du genre 1 ou 2sec) et après ces deux secondes regarde ce que tu peux faire avec le lien ci-dessus :)

  • Ok, je vais chercher dans la mission et sinon je ne trouve pas dans le config master

    #define true 1
    #define false 0
    
    /*
        Master settings for various features and functionality
    */
    class Life_Settings {
    /* Logging and Security Settings*/
        /* Security Settings */
        spyGlass_toggle = false; //Spyglass On/Off Toggle --> True = On & False = Off
    
        /* Data Logging Settings */
        battlEye_friendlyLogging = false; //False [default] - Read the logs from the server.rpt. True - Read the logs from the publicVariable.log. NOTE: Due to how diag_log works it will log to both files either way and the setting is merely for beautification purposes.
        player_advancedLog = false; //False [default] - No advanced logging. True - Logs house purchase and sale, vehicle purchase, sale, and chop shopping, police arrests, and gang creations. Search for: advanced_log
        player_moneyLog = false; //False [default] - No money logging. True - Logs player bank deposits, withdraws, and transfers, gang bank deposits and withdraws, money picked up off of the ground, and player robbery. Search for: money_log
        player_deathLog = false; //False [default] - No death logging. True - Logs victim and killer, and vehicle or weapon if used, when a player dies. Search for: death_log
    
    /* Database Related Settings */
        /* Player Data Saving */
        save_virtualItems = true; //Save Virtual items (all sides)?
        saved_virtualItems[] = { "pickaxe","fuelEmpty","fuelFull", "spikeStrip", "lockpick", "defuseKit","storageSmall","storageBig","redgull","coffee","waterBottle","apple","peach","tbacon","donuts","rabbit","salema","ornate","mackerel","tuna","mullet","catshark","turtle_soup","hen","rooster","sheep","goat","defibrillator","toolkit" }; //Array of virtual items that can be saved on your player.
        save_playerStats = true; //Save food, water and damage (all sides)?
        save_civilian_weapons = true; //Allow civilians to save weapons on them?
        save_civilian_position = false; //Save civilian location?
        save_civilian_position_restart = true; //Save civilian location only between restarts. After a server restart you'll have to spawn again.
        /* !!!TO SAVE POSITION BETWEEN RESTARTS save_civilian_position MUST BE TRUE!!! */
        save_civilian_positionStrict = false; //Strip the player if possible combat-log?  WARNING: Server crashes and lack of reliable syncing can trigger this.
    
        /* Vehicle Data Saving */
        save_vehicle_virtualItems = true; //Save virtual items inside the vehicle (all sides)(-- See defined items on next line --)
        save_vehicle_items[] = { "pickaxe","fuelEmpty","fuelFull", "spikeStrip", "lockpick", "defuseKit","storageSmall","storageBig","redgull","coffee","waterBottle","apple","peach","tbacon","donuts","rabbit","salema","ornate","mackerel","tuna","mullet","catshark","turtle_soup","hen","rooster","sheep","goat","defibrillator","toolkit" };
        save_vehicle_inventory = true; //Save Arma inventory of vehicle to the database
        save_vehicle_fuel = true; //Save vehicle fuel level to the database (Impounded/Garaged).
        save_vehicle_damage = true; //Save vehicle damage to the database.
        save_vehicle_illegal = true; //This will allow cops to be advised when a vehicle, with illegal items in it, is impounded. This will also save illegal items as proof of crime, and needs "save_vehicle_virtualItems" set as true. Illegal items don't need to be set in save_vehicle_items[] for being saved, if it's enabled.
    
    
    /* System Settings */
        /* ATM & Federal Reserve System Configurations */
        global_ATM = true; //Allow users to access any ATM on the map (Marked & Unmarked).
        noatm_timer = 10; //Time in minutes that players cannot deposit money after selling stolen gold.
        minimum_cops = 1; //Minimum cops required online to rob the Federal Reserve
    
        /* Basic System Configurations */
        donor_level = false; //Enable the donor level set in database (var = life_donorlevel; levels = 0,1,2,3,4,5). ATTENTION! Before enabling, read: https://www.bistudio.com/community/game-content-usage-rules & https://www.bistudio.com/monetization
        enable_fatigue = false; //Set to false to disable the ARMA 3 fatigue system.
        total_maxWeight = 24; //Static variable for the maximum weight allowed without having a backpack
        respawn_timer = 90; //How many seconds a player should wait, before being able to respawn. Minimum 5 seconds.
    
        /* Clothing System Configurations */
        civ_skins = false; //Enable or disable civilian skins. Before enabling, you must add all the SEVEN files to textures folder. (It must be named as: civilian_uniform_1.jpg, civilian_uniform_2.jpg...civilian_uniform_6.jpg, civilian_uniform_7.jpg)
        cop_extendedSkins = false; //Enable or disable cop skins by level. Before enabling, you must add all the EIGHT files to textures folder. (It must be named as: cop_uniform.jpg + cop_uniform_1.jpg, cop_uniform_2.jpg...cop_uniform_6.jpg, cop_uniform_7.jpg; meaning cop_uniform = life_coplevel=0, cop_uniform_1 = life_coplevel=1, cop_uniform_2 = life_coplevel=2, etc...)
        clothing_noTP = false;  //Disable clothing preview teleport? (true = no teleport. false = teleport)
        clothing_box = true; //true = teleport to a black box. false = teleport to somewhere on map. (It only affects the game if clothing_noTP is set as false)
        clothing_masks[] = { "H_Shemag_olive", "H_Shemag_khk", "H_Shemag_tan", "H_Shemag_olive_hs", "H_ShemagOpen_khk", "H_ShemagOpen_tan", "G_Balaclava_blk", "G_Balaclava_combat", "G_Balaclava_lowprofile", "G_Balaclava_oli", "G_Bandanna_aviator", "G_Bandanna_beast", "G_Bandanna_blk", "G_Bandanna_khk", "G_Bandanna_oli", "G_Bandanna_shades", "G_Bandanna_sport", "G_Bandanna_tan", "U_O_GhillieSuit", "U_I_GhillieSuit", "U_B_GhillieSuit", "H_RacingHelmet_1_black_F", "H_RacingHelmet_1_red_F", "H_RacingHelmet_1_white_F", "H_RacingHelmet_1_blue_F", "H_RacingHelmet_1_yellow_F", "H_RacingHelmet_1_green_F", "H_RacingHelmet_1_F", "H_RacingHelmet_2_F", "H_RacingHelmet_3_F", "H_RacingHelmet_4_F" };
    
        /* Fuel System Configurations */
        pump_service = true; //Allow users to use pump service on the map. Default = false
        fuel_cost = 10; //Cost of fuel per liter at fuel stations (if not defined for the vehicle already).
        service_chopper = 150; //Cost to service chopper at chopper service station(Repair/Refuel).
        fuelCan_refuel = 80; //Cost to refuel an empty fuel canister at the fuel station pumps. (Be wary of your buy/sell prices on fuel cans to prevent exploits...)
    
        /* Gang System Configurations */
        gang_price = 50000; //Gang creation price. --Remember they are persistent so keep it reasonable to avoid millions of gangs.
        gang_upgradeBase = 10000; //The base cost for purchasing additional slots in a gang
        gang_upgradeMultiplier = 2; //CURRENTLY NOT IN USE
    
        /* Housing System Configurations */
        house_limit = 5; //Maximum number of houses a player can own.
    
        /* Hunting & Fishing System Configurations */
        animaltypes_fish[] = { "Salema_F", "Ornate_random_F", "Mackerel_F", "Tuna_F", "Mullet_F", "CatShark_F", "Turtle_F" }; //Classnames of fish you can catch
        animaltypes_hunting[] = { "Sheep_random_F", "Goat_random_F", "Hen_random_F", "Cock_random_F", "Rabbit_F" }; //Classnames of aniamls you can hunt/gut
    
        /* Item-related Restrictions */
        restrict_medic_weapons = false; //Set to false to allow medics to use any weapon --true will remove ANY weapon they attempt to use (primary,secondary,launcher)
        restrict_clothingPickup = false; //Set to false to allow civilians to pickup/take any uniform (ground/crates/vehicles)
        restrict_weaponPickup = false; //Set to false to allow civilians to pickup/take any weapon (ground/crates/vehicles)
        restricted_uniforms[] = { "U_Rangemaster", "U_B_CombatUniform_mcam_tshirt", "U_B_CombatUniform_mcam_worn", "U_B_survival_uniform" };
        restricted_weapons[] = { "hgun_P07_snds_F", "arifle_MX_F", "arifle_MXC_F" };
    
        /* Jail System Configurations */
        jail_seize_vItems[] = { "spikeStrip","lockpick","goldbar","blastingcharge","boltcutter","defusekit","heroin_unprocessed","heroin_processed","cannabis","marijuana","cocaine_unprocessed","cocaine_processed","turtle_raw" }; //Define VIRTUAL items you want to be removed from players upon jailing here. Use "jail_seize_inventory" for Arma inventory items.
        jail_seize_inventory = false; //Set to true to run the cop seize script on inmates. False will remove only weapons and magazines otherwise. (Basically used in case cops forget to seize items). [See Lines 106-111 below]
        sendtoJail_locations[] = { "police_hq_1", "police_hq_2", "cop_spawn_3", "cop_spawn_5", "Correctional_Facility" }; //Enter the variableName from the mission.sqm here to allow cops to send a person to jail at these locations.
    
        /* Medical System Configurations */
        revive_cops = true; //true to enable cops the ability to revive everyone or false for only medics/ems.
        revive_fee = 1500; //Revive fee that players have to pay and medics only EMS(independent) are rewarded with this amount.
        hospital_heal_fee = 100; //Fee to heal at a hospital NPC
    
        /* Paycheck & Bank System Configurations */
        bank_cop = 10000; //Amount of cash in bank for new cops
        bank_civ = 10000; //Amount of cash in bank for new civillians
        bank_med = 10000; //Amount of cash in bank for new medics
    
        paycheck_cop = 200; //Payment for cops
        paycheck_civ = 200; //Payment for civillians
        paycheck_med = 200; //Payment for medics
    
        paycheck_period = 10; //Scaled in minutes
        bank_transferTax = .05; //Tax that player pays when transferring money from ATM. Tax = Amount * multiplier
    
        /* Player Job System Configurations */
        delivery_points[] = { "dp_1", "dp_2", "dp_3", "dp_4", "dp_5", "dp_6", "dp_7", "dp_8", "dp_9", "dp_10", "dp_11", "dp_12", "dp_13", "dp_14", "dp_15", "dp_15", "dp_16", "dp_17", "dp_18", "dp_19", "dp_20", "dp_21", "dp_22", "dp_23", "dp_24", "dp_25" };
        fuelTank_winMultiplier = 1; //Win Multiplier in FuelTank Missions. Increase for greater payout. Default = 1
    
        /* Search & Seizure System Configurations */
        seize_exempt[] = { "" }; //Arma items that will not get seized from player inventories
        seize_uniform[] = { "" }; //Any specific uniforms you want to be seized from players
        seize_vest[] = { "" }; //Any specific vests you want to be seized from players
        seize_headgear[] = { "" }; //Any hats or helmets you want seized from players
        seize_minimum_rank = 7; //Required minimum CopLevel to be able to seize items from players
    
        /* Vehicle System Configurations */
        chopShop_vehicles[] = { "Car", "Air" }; //Vehicles that can be chopped. (Can add: "Ship" and possibly more -> look at the BI wiki...)
        vehicle_infiniteRepair[] = {false, true, true, false}; //Set to true for unlimited repairs with 1 toolkit. False will remove toolkit upon use. civilian, west, independent, east
        vehicleShop_rentalOnly[] = { "" }; //Vehicles that can only be rented and not purchased. (Last only for the session)
        vehicleShop_3D = true; //Add preview 3D inside Shop vehicle.       Default : False
    
        /* Vehicle Purchase Prices */
        vehicle_purchase_multiplier_CIVILIAN = 1; //Civilian Vehicle Buy Price = Config_Vehicle price * multiplier
        vehicle_purchase_multiplier_COP = .5; //Cop Vehicle Buy Price = Config_Vehicle price * multiplier
        vehicle_purchase_multiplier_MEDIC = .5; //Medic Vehicle Buy Price = Config_Vehicle price * multiplier
        vehicle_purchase_multiplier_OPFOR = -1; // -- NOT IN USE -- Simply left in for east support.
    
        /* Vehicle Rental Prices */
        vehicle_rental_multiplier_CIVILIAN = .50; //Civilian Vehicle Rental Price = Config_Vehicle price * multiplier
        vehicle_rental_multiplier_COP = .2; //Cop Vehicle Rental Price = Config_Vehicle price * multiplier
        vehicle_rental_multiplier_MEDIC = .2; //Medic Vehicle Rental Price = Config_Vehicle price * multiplier
        vehicle_rental_multiplier_OPFOR = -1; // -- NOT IN USE -- Simply left in for east support.
    
        /* Vehicle Sell Prices */
        vehicle_sell_multiplier_CIVILIAN = .75; //Civilian Vehicle Garage Sell Price = Vehicle Buy Price * multiplier
        vehicle_sell_multiplier_COP = .5; //Cop Vehicle Garage Sell Price = Vehicle Buy Price * multiplier
        vehicle_sell_multiplier_MEDIC = .5; //Medic Vehicle Garage Sell Price = Vehicle Buy Price * multiplier
        vehicle_sell_multiplier_OPFOR = -1; // -- NOT IN USE -- Simply left in for east support.
    
        /* "Other" Vehicle Prices */
        vehicle_chopShop_multiplier = .5; //Chop Shop price for vehicles. TO AVOID EXPLOITS NEVER SET HIGHER THAN A PURCHASE/RENTAL multipler!   Payout = Config_vehicle Price * multiplier
        vehicle_storage_fee_multiplier = .05; //Pull from garage cost --> Cost takes the playersides Buy Price * multiplier
        vehicle_cop_impound_multiplier = .2; //TO AVOID EXPLOITS NEVER SET HIGHER THAN A PURCHASE/RENTAL multipler!   Payout = Config_vehicle Price * multiplier
    
        /* Wanted System Settings *
        /* crimes[] = {String, Bounty, Code} */
        crimes[] = {
            {"STR_Crime_187V","650","187V"},
            {"STR_Crime_187","2000","187"},
            {"STR_Crime_901","450","901"},
            {"STR_Crime_215","200","215"},
            {"STR_Crime_213","1000","213"},
            {"STR_Crime_211","100","211"},
            {"STR_Crime_207","350","207"},
            {"STR_Crime_207A","200","207A"},
            {"STR_Crime_390","1500","390"},
            {"STR_Crime_487","150","487"},
            {"STR_Crime_488","70","488"},
            {"STR_Crime_480","100","480"},
            {"STR_Crime_481","100","481"},
            {"STR_Crime_482","500","482"},
            {"STR_Crime_483","950","483"},
            {"STR_Crime_459","650","459"},
            {"STR_Crime_666","200","666"},
            {"STR_Crime_667","4500","667"},
            {"STR_Crime_668","1500","668"},
            {"STR_Crime_1","250","1"},
            {"STR_Crime_2","200","2"},
            {"STR_Crime_3","150","3"},
            {"STR_Crime_4","250","4"},
            {"STR_Crime_5","100","5"},
            {"STR_Crime_6","80","6"},
            {"STR_Crime_7","150","7"},
            {"STR_Crime_8","5000","8"},
            {"STR_Crime_9","5000","9"},
            {"STR_Crime_10","15000","10"},
            {"STR_Crime_11","10000","11"},
            {"STR_Crime_12","2500","12"},
            {"STR_Crime_13","1500","13"},
            {"STR_Crime_14","500","14"},
            {"STR_Crime_15","2500","15"},
            {"STR_Crime_16","1500","16"},
            {"STR_Crime_17","100","17"},
            {"STR_Crime_18","1500","18"},
            {"STR_Crime_19","2500","19"},
            {"STR_Crime_20","500","20"},
            {"STR_Crime_21","500","21"},
            {"STR_Crime_22","2000","22"},
            {"STR_Crime_23","5000","23"},
            {"STR_Crime_24","10000","24"},
            {"STR_Crime_25","20000","25"}
        };
    };
    
    #include "Config_Clothing.hpp"
    #include "Config_Licenses.hpp"
    #include "Config_Vehicles.hpp"
    #include "Config_vItems.hpp"
    #include "Config_Weapons.hpp"
    #include "Config_Gather.hpp"
    #include "Config_SpawnPoints.hpp"
    #include "Config_Process.hpp"
    
    
  • @BrockTriger Si tu changes dans le config master, plus aucune arme ne tombera au sol lors de la mort d’un joueur, a toi de voir si tu veux ajouter la possibilité de loot l’arme d’un joueur

  • Voila, en cherchant dans mes fichier, j’ai trouvé ceci : https://hastebin.com/nogunemeya.m et cela : https://hastebin.com/zagajiqiwu.bash

    J’hésite entre life_fnc_revived et Revive pour la variable ?

  • @BrockTriger Je te laisse comparer les deux descriptions des scripts, elles ne sont pas là pour faire beau ^^

    /*
    File: fn_revived.sqf
    Author: Bryan “Tonic” Boardwine
    Description: THANK YOU JESUS I WAS SAVED!
    */

    /*
    File: fn_revivePlayer.sqf
    Author: Bryan “Tonic” Boardwine
    Description: Starts the revive process on the player.
    */

  • C’est sur le fn_revided.sqf

    Je vois ceci pour delete le corps mort

    deleteVehicle life_corpse;
    

    et il y a cette ligne qui à mon avis peut vraiment intéresser

    life_corpse setVariable ["Revive",nil,TRUE];
    

    Qui viens de se groupe de ligne

    //Bring me back to life. Ramène-moi à la vie.
    player setDir _dir;
    player setPosASL (visiblePositionASL life_corpse);
    life_corpse setVariable ["Revive",nil,TRUE];
    life_corpse setVariable ["name",nil,TRUE];
    [life_corpse] remoteExecCall ["life_fnc_corpse",RANY];
    deleteVehicle life_corpse;
    
    life_is_alive = true;
    

    Ou de se groupe

    player setVariable ["Revive",nil,TRUE];
    player setVariable ["name",nil,TRUE];
    player setVariable ["Reviving",nil,TRUE];
    [] call life_fnc_playerSkins;
    [] call life_fnc_hudUpdate; //Request update of hud.
    [] call SOCK_fnc_updateRequest;
    
  • Voila, donc maintenant, à toi d’ajouter tes lignes pour qu’au moment ou le joueur est debout son arme lui soit retirée :)

    c’est ici
    https://community.bistudio.com/wiki/addWeapon

  • //Bring me back to life.
    player setDir _dir;
    player setPosASL (visiblePositionASL life_corpse);
    life_corpse setVariable ["Revive",nil,TRUE];
    life_corpse setVariable ["name",nil,TRUE];
    [life_corpse] remoteExecCall ["life_fnc_corpse",RANY];
    deleteVehicle life_corpse;
    
    life_is_alive = true;
    
    player setVariable ["Revive",nil,TRUE];
    player setVariable ["name",nil,TRUE];
    player setVariable ["Reviving",nil,TRUE];
    [] call life_fnc_playerSkins;
    [] call life_fnc_hudUpdate; //Request update of hud.
    [] call SOCK_fnc_updateRequest;
    uiSleep 1;
    removeAllWeapons player;
    

    ?

  • Oulaaa non pas un removeAllWeapon, celui-ci va retirer tout ce qui est des chargeurs, des armes de points ect… du joueur, il faut utiliser le addWeapon :)

  • Je ne sait pas ce que je pourrais lui donner pour remplacer son arme car je test avec la debug console mais rien ne marche

  • @BrockTriger
    Ah oui c’est vrai que le addweapon " "; ne fonctionne pas tu as raison, essaye alors de faire cela : (on va faire comme si c’était une saisie des armes par un gendarme)

    Déclare tes variables en haut du fichier :

    private ["_exempt"];
    _exempt = LIFE_SETTINGS(getArray,"seize_exempt");
    

    Et ensuite quand le joueur est reanimé ajoute ceci :

    {
        if (!(_x in _exempt)) then {
            player removeWeapon _x;
        };
    } forEach weapons player;
    

    En gros ca donne cela : https://hastebin.com/sucenuruja.m

  • #include "..\..\script_macros.hpp"
    /*
        File: fn_revived.sqf
        Author: Bryan "Tonic" Boardwine
    
        Description:
        THANK YOU JESUS I WAS SAVED!
    */
    private["_medic","_dir","_reviveCost","_exempt"];
    _exempt = LIFE_SETTINGS(getArray,"seize_exempt");
    _medic = param [0,"Unknown Medic",[""]];
    _reviveCost = LIFE_SETTINGS(getNumber,"revive_fee");
    
    [life_save_gear] spawn life_fnc_loadDeadGear;
    life_corpse setVariable ["realname",nil,true]; //Should correct the double name sinking into the ground.
    [life_corpse] remoteExecCall ["life_fnc_corpse",RANY];
    
    _dir = getDir life_corpse;
    hint format[localize "STR_Medic_RevivePay",_medic,[_reviveCost] call life_fnc_numberText];
    
    closeDialog 0;
    life_deathCamera cameraEffect ["TERMINATE","BACK"];
    camDestroy life_deathCamera;
    
    //Take fee for services.
    if (BANK > _reviveCost) then {
        BANK = BANK - _reviveCost;
    } else {
        BANK = 0;
    };
    
    //Bring me back to life.
    player setDir _dir;
    player setPosASL (visiblePositionASL life_corpse);
    life_corpse setVariable ["Revive",nil,TRUE];
    life_corpse setVariable ["name",nil,TRUE];
    [life_corpse] remoteExecCall ["life_fnc_corpse",RANY];
    deleteVehicle life_corpse;
    
    life_is_alive = true;
    
    player setVariable ["Revive",nil,TRUE];
    player setVariable ["name",nil,TRUE];
    player setVariable ["Reviving",nil,TRUE];
    [] call life_fnc_playerSkins;
    [] call life_fnc_hudUpdate; //Request update of hud.
    [] call SOCK_fnc_updateRequest;
    uiSleep 1;
    {
        if (!(_x in _exempt)) then {
            player removeWeapon _x;
        };
    } forEach weapons player;
    

    Comme cela ?

Messages 23Vues 971