Advertisement
Guest User

Untitled

a guest
Jul 18th, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.78 KB | None | 0 0
  1.  
  2. /*
  3. por: Icaruk
  4.     call ica_fnc_agricultura // el parámetro depende de tu stance
  5.     no funciona en el editor
  6. */
  7.  
  8. // --- SERVIDOR ---
  9. _param = _this select 0;
  10.  
  11. if (isServer) exitWith {
  12.     if (_param  isEqualTo  "plantoServer") exitWith {
  13.         private ["_class", "_planta", "_hundimiento", "_pos"];
  14.         _pos = _this select 1;
  15.         _class = _this select 2;
  16.  
  17.         _planta = createVehicle [_class select 0, [(getpos _pos select 0), (getpos _pos select 1), (getpos _pos select 2) - 0.1], [], 0, "CAN_COLLIDE"];
  18.         _hundimiento = (boundingBox _planta select 1 select 2);
  19.         _planta setPos [(getPos _planta select 0), (getPos _planta select 1), (getPos _planta select 2) - _hundimiento];
  20.         _planta setVariable ["crecimiento", 0, true];
  21.         while {true} do {
  22.             if (isNil {_planta getVariable "crecimiento"}) exitWith {};
  23.             if (isNull _planta) exitWith {};
  24.            
  25.             if ((_planta getVariable "crecimiento") >= 100) exitWith {
  26.                 _planta setVariable ["crecimiento", 100, true];
  27.                 _hundimiento = (boundingBox _planta select 1 select 2);
  28.                 _planta setPos [(getPos _planta select 0), (getPos _planta select 1), (getPos _planta select 2) + _hundimiento];
  29.             };
  30.             _planta setVariable ["crecimiento", (_planta getVariable "crecimiento") + 20, true];
  31.             sleep ((_class select 1) / 5);
  32.         };
  33.     };
  34. };
  35.  
  36.  
  37. // --- CLIENTE ---
  38.  
  39. // antispam
  40. if (!isNil {spamAgricultura}) exitWith {
  41.     spamAgricultura = spamAgricultura + 1;
  42.     closeDialog 0;
  43.     hint format ["Tienes que esperar %1 segundo(s)", spamAgricultura];
  44. };
  45. [] spawn {
  46.     if (isNil {spamAgricultura}) then {
  47.         spamAgricultura = 1;
  48.  
  49.         while {true} do {
  50.             if (spamAgricultura <= 0) exitWith {spamAgricultura = nil };
  51.             sleep 1;
  52.             spamAgricultura = spamAgricultura - 1;
  53.         };
  54.     };
  55. };
  56.  
  57. // seleccion de modo
  58. private "_param";
  59. _param = switch (stance player) do {
  60.     case "STAND": {"planto"};
  61.     case "CROUCH": {"recolecto"};
  62.     case "PRONE": {"riego"};
  63. };
  64. if ((typeName _param)  isEqualTo  "BOOL") exitWith {hint "Error"};
  65.  
  66. _plantas = [
  67.     "pop_rabano_plan",
  68.     "pop_bamboo_plan",
  69.     "pop_algodon_plan",
  70.     "pop_girasol_plan",
  71.     "pop_maiz_plan",
  72.     "pop_trigo_plan",
  73.     "pop_cannabis1_plan",
  74.     "pop_flower_roja",
  75.     "pop_flower_verd",
  76.     "pop_flower_azul",
  77.     "pop_flower_amar",
  78.     "pop_flower_rosa",
  79.     "pop_flower_mora",
  80.     "pop_flower_nara",
  81.     "pop_flower_marr",
  82.     "pop_flower_negr"  
  83. ];
  84.  
  85.  
  86. if (_param  isEqualTo  "planto") exitWith {
  87.     private ["_cercania"];
  88.  
  89.     if (isNil {estoyPlantando}) exitWith {hint "Usa una semilla y después intenta plantar" };
  90.     _semilla = estoyPlantando;
  91.     if ((_semilla isEqualTo "cannabis") AND (("ti" call ica_fnc_expToLevel) < 2)) exitWith {hint "No sabes plantar eso"};
  92.  
  93.     // seleccion classname planta
  94.     _mrkAcidos = ["TPHacido1", "TPHacido2", "TPHacido3"];
  95.     _mrkBasicos = ["TPHbasico1", "TPHbasico2", "TPHbasico3"];
  96.     _mrkNeutros = ["TPHneutro1", "TPHneutro2", "TPHneutro3"];
  97.  
  98.     _t = if (("tl" call ica_fnc_expToLevel) >= 1) then {3} else {12};
  99.  
  100.     _class = switch (_semilla) do {
  101.         case "rabano":  {["pop_rabano_plan", (60 * _t), "pop_rabano_s", _mrkBasicos]};
  102.         case "bamboo":  {["pop_bamboo_plan", (60 * _t), "pop_bamboo_s", _mrkNeutros]};
  103.         case "algodon": {["pop_algodon_plan", (60 * _t), "pop_algodon_s", _mrkNeutros]};
  104.         case "girasol": {["pop_girasol_plan", (60 * _t), "pop_girasol_s", _mrkBasicos]};
  105.         case "maiz":    {["pop_maiz_plan", (60 * _t), "pop_maiz_s", _mrkAcidos]};
  106.         case "trigo":   {["pop_trigo_plan", (60 * _t), "pop_trigo_s", _mrkAcidos]};
  107.         case "cannabis":    {["pop_cannabis1_plan", (60 * _t), "pop_cannabis_s", _mrkNeutros]};
  108.     };
  109.     if ((typeName _class)  isEqualTo  "BOOL") exitWith {hint "Error"};
  110.  
  111.     // comprobacion tipo de tierra
  112.     if (((getMarkerPos ((_class select 3) call ica_fnc_masCercano)) distance player) > 30) exitWith {
  113.         hint "Esta planta no va aquí, o estás demasiado lejos de donde debería de ir";
  114.     };
  115.  
  116.     // comprobacion cercania
  117.     _cercania = nearestObjects [player, _plantas, 3];
  118.     if (count _cercania  isEqualTo  0) then {_cercania = false} else {_cercania = true};
  119.     if (_cercania) exitWith { hint "Hay una planta demasiado cerca"; };
  120.  
  121.     // comprobacion item
  122.     if !(([_class select 2] call ica_fnc_tengo) >= 1) exitWith { hint "No tienes semillas"; };
  123.     [_class select 2, -1] call ica_fnc_item;
  124.     [format ["-1 %1", [_class select 2] call ica_fnc_classToName]] call ica_fnc_infolog;
  125.  
  126.     _str = format ["Plantando %1", _semilla];
  127.     titleText [_str, "PLAIN", 0.3];
  128.  
  129.     // se lo mando al servidor
  130.     [["plantoServer", player, _class], "ica_fnc_agricultura", false, false, false] call life_fnc_MP;
  131. };
  132.  
  133.  
  134. if (_param  isEqualTo  "recolecto") exitWith {
  135.     _cercania = nearestObjects [player, _plantas, 3];
  136.     if (isNull (_cercania select 0)) exitWith {};
  137.     if ((((_cercania select 0) getVariable "crecimiento") < 100) OR (isNil {(_cercania select 0) getVariable "crecimiento"})) then {
  138.         hint format ["Esta planta está al %1%2 de su crecimiento, la paciencia es la clave", (_cercania select 0) getVariable "crecimiento", "%"];
  139.     } else {
  140.         _que = typeOf (_cercania select 0);
  141.  
  142.         _pillo = switch (_que) do {
  143.             case "pop_rabano_plan":         {"pop_rabano_i" };
  144.             case "pop_bamboo_plan":     {"pop_bamboo_i" };
  145.             case "pop_algodon_plan":        {"pop_algodon_i" };
  146.             case "pop_girasol_plan":        {"pop_girasol_i" };
  147.             case "pop_maiz_plan":           {"pop_maiz_i" };
  148.             case "pop_trigo_plan":      {"pop_trigo_i" };
  149.             case "pop_cannabis1_plan":  {"pop_cannabis_i" };
  150.             case "pop_flower_roja":     {"pop_flower_roja_inv" };
  151.             case "pop_flower_verd":     {"pop_flower_verd_inv" };
  152.             case "pop_flower_azul":     {"pop_flower_azul_inv" };
  153.             case "pop_flower_amar":     {"pop_flower_amar_inv" };
  154.             case "pop_flower_mora":     {"pop_flower_mora_inv" };
  155.             case "pop_flower_marr":     {"pop_flower_marr_inv" };
  156.             case "pop_flower_negr":     {"pop_flower_negr_inv" };
  157.         };
  158.  
  159.         _n = if (("tl" call ica_fnc_expToLevel) >= 1) then {4} else {2};
  160.  
  161.         if !(player canAdd _pillo) exitWith {hint "No tienes suficiente espacio"};
  162.         [_pillo, _n] call ica_fnc_item;
  163.         deleteVehicle (_cercania select 0);
  164.         _str = format ["Recolectando %1", _pillo];
  165.         titleText [_str, "PLAIN", 0.3];
  166.     };
  167. };
  168.  
  169. if (_param  isEqualTo  "riego") exitWith {
  170.     _cercania = nearestObjects [player, _plantas, 3];
  171.     if (isNull (_cercania select 0)) exitWith {};
  172.     if (isNil {(_cercania select 0) getVariable "crecimiento"}) exitWith {};
  173.  
  174.     if !((["pop_aguasucia"] call ica_fnc_tengo) >= 1) exitWith {hint "No tienes agua para regar. No, la saliva no vale."};
  175.  
  176.     if ((((_cercania select 0) getVariable "crecimiento") > 90) AND (((_cercania select 0) getVariable "crecimiento") <= 100)) then {
  177.         ["pop_aguasucia", -1] call ica_fnc_item;
  178.         (_cercania select 0) setVariable ["crecimiento", ((_cercania select 0) getVariable "crecimiento") - 20, true];
  179.         titleText ["Has regado con suma preción", "PLAIN", 0.3];
  180.     } else {
  181.         hint "Esta planta ya ha pasado su fase inicial, no puedes regarla o la matarás. ¿Acaso quieres matarla? ¿eh, eh?";
  182.     };
  183. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement