Français Solved Problème avec la fonctionnalité de vol de reins sur mon serveur

  • Auteur de la discussion Auteur de la discussion TheWaza
  • Date de début Date de début

TheWaza

User
28/10/22
32
2
6
300
Bonjour,

Je voudrais mettre sur mon serveur la fonctionnalité de voler des reins comme à l'époque :D
J'ai trouvé ce tuto : [5.0] Kidney Theft

Mon seul problème est :

- Lors de l'utilisation du rein, celui-ci depop de l'inventaire mais rien ne se passe.
Idem pour le scalpel.

Je suis en train de péter mon crâne car j'ai un gros trou de mémoire sur quelle condition fait que le vItem est inutilisable comme la pickaxe ou une ressource récoltée.

Je suis persuadé que le problème viens de la car le fn_useItem.sqf est ignoré.

Merci pour votre aide x)
 
Solution
Il n'y avais pas de fonction de ce genre à l'époque, donc avec ta version ce ne sera pas possible :(
Sinon tu peux mettre à jour ACE pour utiliser la dernière version, ce qui est souvent recommandé d'ailleurs
Hello !
D'après le tutoriel quand tu utilises l'item ça ne fait visiblement rien mais ça set une variable sur false.
Et quand cette variable est sur false, tu devrais avoir une action molette qui apparaît "Harvest Organs".
Est-ce que tu peux vérifier ?

Si ce n'est pas le cas, tu peux envoyer ton fn_useItems.sqf et fn_setupActions.sqf
 
L’option molette apparaît lors de l’utilisation du rein ?

Car actuellement, par exemple je peux utiliser le scalpel dans le vide, j’aurai voulu faire en sorte que celui-ci ne soit utilisable, et que le rein passe obligatoirement par le fn_useitem.sqf qui Call dans le core\items
 
Edit,

Je n'ai pas placé le addaction dans le setupaction car je l'ai intégré dans mon menu Ace :
condition = "alive cursorTarget && isPlayer cursorTarget && cursorTarget isKindOf 'Man' && ((cursorTarget getVariable['ACE_Captives_isHandcuffed',false]) OR (cursorTarget getVariable['ACE_Captives_isSurrendering',false]) OR (cursorTarget getVariable['ACE_isUnconscious',false])) && playerSide isEqualTo civilian && (side cursorTarget in [west,civilian,independent])";

statement = "[cursorTarget,false] spawn life_fnc_takeOrgans";

Pour t'informer de tout ce que j'ai fais :

Au lieu de placer

[CODE title="initPlayerLocal.sqf"][] spawn {
while{true} do
{
waitUntil {(player getVariable "missingOrgan")};
life_max_health = .70;
while{(player getVariable "missingOrgan")} do {
life_thirst = 70;
life_hunger = 70;
if(damage player < (1 - life_max_health)) then {player setDamage (1 - life_max_health);};
"dynamicBlur" ppEffectEnable true;
"dynamicBlur" ppEffectAdjust [2];
"dynamicBlur" ppEffectCommit 1;
sleep 5;
};
"dynamicBlur" ppEffectEnable false;
life_max_health = 1;
};
};[/CODE]

J'ai fais ceci :

[CODE title="Modif"][] execVM "core\script\organe.sqf";[/CODE]

Donc dans \core\scripts\fn_organe.sqf :

[CODE title="fn_organe.sqf"][] spawn {
while {true} do
{
waitUntil {(player getVariable ["missingOrgan",true])};
while{(player getVariable ["missingOrgan",true])} do {
[player, 0.4, "body", "punch"] call ace_medical_fnc_addDamageToUnit;
"dynamicBlur" ppEffectEnable true;
"dynamicBlur" ppEffectAdjust [2];
"dynamicBlur" ppEffectCommit 1;
player setFatigue 1;
sleep 5;
};
"dynamicBlur" ppEffectEnable false;
};
};[/CODE]

Donc, la partie qui me porte défaut est que :

Dans le fn_useItem.sqf j'ai fais :

[CODE title="fn_useItem.sqf"]case "kidney": {
[] spawn life_fnc_kidney;
closeDialog 0;
};[/CODE]

Et donc don mon \core\items le fichier fn_kidney.sqf :

[CODE title="fn_kidney.sqf"]if (player getVariable ["missingOrgan",true]) then {

player setVariable ["missingOrgan",false,true];
life_thirst = 100;
life_hunger = 100;
player setFatigue .5;
player setDamage 0;
[player,player] call ace_medical_fnc_treatmentAdvanced_fullHealLocal;
};[/CODE]

Alors, ce code est peut-être pas bon MAIS, comme précisé, j'ai bien l'impression que l'utilisation du rein ne passe pas par le fn_useItem.sqf et qu'il disparaît juste de mon inventaire.
Ce qui me fait penser cela est que :

La personne n'est pas soignée lors de son utilisation, et ses saignements continues / s'empire donc sa variable reste inchangée et le script de dégats continue.

Voilà donc ma question de comment rendre l'item inutilisable comme la pioche qui n'est pas renseignée dans le fn_useItem.sqf et qui pourtant, lors de son utilisation renvoie "Cet item est inutilisable".
Comme aussi a peu près toutes les ressources.
Ceci afin de forcer l'item à passer par ce même useItem

Je sais pas si j'ai été très clair mais j'ai tenté lol

Belle soirée
 
Re édit :

Il me manquait ceci : drinkable = -1;

Tout fonctionne maintenant !

Par ailleurs, existe-t-il la possibilité de soigner 1 partie du corps ? Plutôt que de remettre tout le perso a 0 ?