Advertisement
ForTrezZDesign

[FS] Sistema de Direccionales Basico

Jun 25th, 2014
534
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 4.63 KB | None | 0 0
  1. //Sistema de Direccionales by ForTrezZ (www.fortrezz.tk)
  2. // Respeten creditos porfavor
  3.  
  4. //la funcion encode_lights la saque de wiki.sa-mp.com
  5.  
  6. /*
  7.     Explicacion para que entiendan el uso de encode_light
  8.     encode_lights(0,0,0,0)
  9.     encode_lights(izquierda, izquierda, derecha, derecha)
  10.     0 Apagado 1 Prendido
  11.  
  12.     Por mi entendimiento las dos primeras significan las Luces de adelante y las de atras pero alfinal no
  13.     fue asi, por este motivo libero este code ya que solo funcionan las luces de adelante.
  14. */
  15.  
  16. #include <a_samp>
  17.  
  18. #define             function%0(%1)              forward %0(%1); public %0(%1)
  19.  
  20. new bool:precionado[MAX_PLAYERS] = false;
  21. new ppanels[MAX_PLAYERS],pdoors[MAX_PLAYERS],plights[MAX_PLAYERS], pplights[MAX_PLAYERS],ptires[MAX_PLAYERS];
  22. new pTimerLuz[MAX_PLAYERS];
  23. new DireccionalVar[MAX_PLAYERS] = true;
  24.  
  25. public OnFilterScriptInit()
  26. {
  27.     print("\n--------------------------------------");
  28.     print(" Direccionales by ForTrezZ Design (www.fortrezz.tk)");
  29.     print("--------------------------------------\n");
  30.     return 1;
  31. }
  32.  
  33. public OnFilterScriptExit()
  34. {
  35.     return 1;
  36. }
  37.  
  38. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  39. {
  40.     if(newkeys & KEY_LOOK_RIGHT)
  41.     {
  42.         new vehicleid = GetPlayerVehicleID(playerid);
  43.         if(vehicleid != INVALID_VEHICLE_ID && IsPlayerInVehicle(playerid, vehicleid))
  44.         {
  45.             new enginem, lights, alarm, doors, bonnet, boot, objective;
  46.             GetVehicleParamsEx(vehicleid, enginem, lights, alarm, doors, bonnet, boot, objective);
  47.             if(lights == VEHICLE_PARAMS_OFF) return SendClientMessage(playerid, -1, "* Las luces del vehiculo no estan encendidas");
  48.             if(!precionado[playerid])
  49.             {
  50.                 GetVehicleDamageStatus(vehicleid, ppanels[playerid], pdoors[playerid], pplights[playerid], ptires[playerid]);
  51.                 precionado[playerid] = true;
  52.                 pTimerLuz[playerid] = SetTimerEx("DireccionalesDerecha", 500, true, "dd", playerid, vehicleid);
  53.             } else {
  54.                 UpdateVehicleDamageStatus(vehicleid, ppanels[playerid], pdoors[playerid], pplights[playerid], ptires[playerid]);
  55.                 KillTimer(pTimerLuz[playerid]);
  56.                 precionado[playerid] = false;
  57.             }
  58.         }
  59.     }
  60.     if(newkeys & KEY_LOOK_LEFT)
  61.     {
  62.         new vehicleid = GetPlayerVehicleID(playerid);
  63.         if(vehicleid != INVALID_VEHICLE_ID && IsPlayerInVehicle(playerid, vehicleid))
  64.         {
  65.             new enginem, lights, alarm, doors, bonnet, boot, objective;
  66.             GetVehicleParamsEx(vehicleid, enginem, lights, alarm, doors, bonnet, boot, objective);
  67.             if(lights == VEHICLE_PARAMS_OFF) return SendClientMessage(playerid, -1, "* Las luces del vehiculo no estan encendidas");
  68.             if(!precionado[playerid])
  69.             {
  70.                 GetVehicleDamageStatus(vehicleid, ppanels[playerid], pdoors[playerid], pplights[playerid], ptires[playerid]);
  71.                 precionado[playerid] = true;
  72.                 pTimerLuz[playerid] = SetTimerEx("DireccionalesIzquierda", 500, true, "dd", playerid, vehicleid);
  73.             } else {
  74.                 UpdateVehicleDamageStatus(vehicleid, ppanels[playerid], pdoors[playerid], pplights[playerid], ptires[playerid]);
  75.                 KillTimer(pTimerLuz[playerid]);
  76.                 precionado[playerid] = false;
  77.             }
  78.         }
  79.     }
  80.     return 1;
  81. }
  82.  
  83. encode_lights(light1, light2, light3, light4)
  84. {
  85.     return light1 | (light2 << 1) | (light3 << 2) | (light4 << 3);
  86. }
  87.  
  88. function DireccionalesDerecha(playerid, vehicleid)
  89. {
  90.     if(DireccionalVar[playerid])
  91.     {
  92.         GetVehicleDamageStatus(vehicleid, ppanels[playerid], pdoors[playerid], plights[playerid], ptires[playerid]);
  93.         UpdateVehicleDamageStatus(vehicleid, ppanels[playerid], pdoors[playerid], encode_lights(0,0,1,1), ptires[playerid]);
  94.         DireccionalVar[playerid] = false;
  95.     } else {
  96.         GetVehicleDamageStatus(vehicleid, ppanels[playerid], pdoors[playerid], plights[playerid], ptires[playerid]);
  97.         UpdateVehicleDamageStatus(vehicleid, ppanels[playerid], pdoors[playerid], encode_lights(0,0,0,0), ptires[playerid]);
  98.         DireccionalVar[playerid] = true;
  99.     }
  100. }
  101.  
  102. function DireccionalesIzquierda(playerid, vehicleid)
  103. {
  104.     if(DireccionalVar[playerid])
  105.     {
  106.         GetVehicleDamageStatus(vehicleid, ppanels[playerid], pdoors[playerid], plights[playerid], ptires[playerid]);
  107.         UpdateVehicleDamageStatus(vehicleid, ppanels[playerid], pdoors[playerid], encode_lights(1,1,0,0), ptires[playerid]);
  108.         DireccionalVar[playerid] = false;
  109.     } else {
  110.         GetVehicleDamageStatus(vehicleid, ppanels[playerid], pdoors[playerid], plights[playerid], ptires[playerid]);
  111.         UpdateVehicleDamageStatus(vehicleid, ppanels[playerid], pdoors[playerid], encode_lights(0,0,0,0), ptires[playerid]);
  112.         DireccionalVar[playerid] = true;
  113.     }
  114. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement