Nanory

[VOS] Vehicle Object Streamer v0.35

Mar 18th, 2012
333
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 6.94 KB | None | 0 0
  1.                         /////////////////////////////
  2.                         ///Vehicle Object Streamer///
  3.                         //////   Created by:    /////
  4.                         //////    °Nanory °   ///////
  5.                         //////  Version 0.35  ///////
  6.                         /////////////////////////////
  7.  
  8. #include <a_samp>
  9. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  10. #define MAX_OBJECTS_PER_VEHICLE 10 /// With this Setting you decide how many Object a Vehicle can have!
  11. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  12.  
  13. //Variablen//
  14. new VehicleObjectModel[MAX_VEHICLES][MAX_OBJECTS_PER_VEHICLE];
  15. new Float:VehicleObjectRotX[MAX_VEHICLES][MAX_OBJECTS_PER_VEHICLE];
  16. new Float:VehicleObjectRotY[MAX_VEHICLES][MAX_OBJECTS_PER_VEHICLE];
  17. new Float:VehicleObjectRotZ[MAX_VEHICLES][MAX_OBJECTS_PER_VEHICLE];
  18. new Float:VehicleObjectPotX[MAX_VEHICLES][MAX_OBJECTS_PER_VEHICLE];
  19. new Float:VehicleObjectPotY[MAX_VEHICLES][MAX_OBJECTS_PER_VEHICLE];
  20. new Float:VehicleObjectPotZ[MAX_VEHICLES][MAX_OBJECTS_PER_VEHICLE];
  21.  
  22. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  23. forward OnGameModeInit();
  24. public OnGameModeInit()
  25. {
  26.     new x;
  27.     new i;
  28.     printf("[VOS] Vehicle Object Streamer ready to work.");
  29.     for(x=0; x< MAX_VEHICLES; x++)
  30.     {
  31.         for(i=0; i<MAX_OBJECTS_PER_VEHICLE; i++)
  32.         {
  33.             VehicleObjectModel[x][i] = -1;
  34.         }
  35.     }
  36.     return CallLocalFunction("VOS_OnGameModeInit","i",1);
  37. }
  38. forward VOS_OnGameModeInit();
  39. #if defined _ALS_OnGameModeInit
  40.     #undef OnGameModeInit
  41. #else
  42.     #define _ALS_OnGameModeInit
  43. #endif
  44. #define OnGameModeInit VOS_OnGameModeInit
  45.  
  46. public OnVehicleStreamIn(vehicleid,forplayerid)
  47. {
  48.     new i;
  49.     new str[128];
  50.     for(i=0; i<MAX_OBJECTS_PER_VEHICLE; i++)
  51.     {
  52.         if(IsAVehicleObject(vehicleid,i))
  53.         {
  54.             format(str,sizeof(str),"PlayerVehObj_%d_%d",vehicleid,i);
  55.             SetPVarInt(forplayerid,str,CreatePlayerObject(forplayerid,VehicleObjectModel[vehicleid][i],0,0,0,0,0,0));
  56.             AttachPlayerObjectToVehicle(forplayerid,GetPVarInt(forplayerid,str),vehicleid,VehicleObjectPotX[vehicleid][i],VehicleObjectPotY[vehicleid][i],VehicleObjectPotZ[vehicleid][i],VehicleObjectRotX[vehicleid][i],VehicleObjectRotY[vehicleid][i],VehicleObjectRotZ[vehicleid][i]);
  57.         }
  58.     }
  59.     return CallLocalFunction("VOS_OnVehicleStreamIn","ii",vehicleid,forplayerid);
  60. }
  61. forward VOS_OnVehicleStreamIn(vehicleid,forplayerid);
  62. #if defined _ALS_OnVehicleStreamIn
  63.     #undef OnVehicleStreamIn
  64. #else
  65.     #define _ALS_OnVehicleStreamIn
  66. #endif
  67. #define OnVehicleStreamIn VOS_OnVehicleStreamIn
  68.  
  69.  
  70. public OnVehicleStreamOut(vehicleid,forplayerid)
  71. {
  72.     new x;
  73.     new str[128];
  74.     for(x=0; x<MAX_OBJECTS_PER_VEHICLE; x++)
  75.     {
  76.         format(str,sizeof(str),"PlayerVehObj_%d_%d",vehicleid,x);
  77.         if(GetPVarType(forplayerid, str))
  78.         {
  79.             DestroyPlayerObject(forplayerid,GetPVarInt(forplayerid,str));
  80.             DeletePVar(forplayerid,str);
  81.         }
  82.     }
  83.     return CallLocalFunction("VOS_OnVehicleStreamOut","ii",vehicleid,forplayerid);
  84. }
  85. forward VOS_OnVehicleStreamOut(vehicleid,forplayerid);
  86. #if defined _ALS_OnVehicleStreamOut
  87.     #undef OnVehicleStreamOut
  88. #else
  89.     #define _ALS_OnVehicleStreamOut
  90. #endif
  91. #define OnVehicleStreamOut VOS_OnVehicleStreamOut*/
  92.  
  93. public OnVehicleDeath(vehicleid, killerid)
  94. {
  95.     RemoveVehicleObjects(vehicleid);
  96.     return CallLocalFunction("VOS_OnVehicleDeath", "ii", vehicleid, killerid);
  97. }
  98. forward VOS_OnVehicleDeath(vehicleid, killerid);
  99. #if defined _ALS_OnVehicleDeath
  100.     #undef OnVehicleDeath
  101. #else
  102.     #define _ALS_OnVehicleDeath
  103. #endif
  104. #define OnVehicleDeath VOS_OnVehicleDeath
  105.  
  106. forward CreateVehicleObject(vehicleid,objectid,Float:ObjX,Float:ObjY,Float:ObjZ,Float:RotX,Float:RotY,Float:RotZ);
  107. public CreateVehicleObject(vehicleid,objectid,Float:ObjX,Float:ObjY,Float:ObjZ,Float:RotX,Float:RotY,Float:RotZ)
  108. {
  109.     new str[128];
  110.     new freeslot = GetVehicleFreeObjectSlot(vehicleid);
  111.     if(freeslot >= 0)
  112.     {
  113.         VehicleObjectRotX[vehicleid][freeslot] = RotX;
  114.         VehicleObjectRotY[vehicleid][freeslot] = RotY;
  115.         VehicleObjectRotZ[vehicleid][freeslot] = RotZ;
  116.         VehicleObjectPotX[vehicleid][freeslot] = ObjX;
  117.         VehicleObjectPotY[vehicleid][freeslot] = ObjY;
  118.         VehicleObjectPotZ[vehicleid][freeslot] = ObjZ;
  119.         VehicleObjectModel[vehicleid][freeslot] = objectid;
  120.         new i;
  121.         for(i=0; i<MAX_PLAYERS; i++)
  122.         {
  123.             if(IsVehicleStreamedIn(vehicleid,i))
  124.             {
  125.                 format(str,sizeof(str),"PlayerVehObj_%d_%d",vehicleid,freeslot);
  126.                 SetPVarInt(i,str,CreatePlayerObject(i,VehicleObjectModel[vehicleid][freeslot],0,0,0,0,0,0));
  127.                 AttachPlayerObjectToVehicle(i,GetPVarInt(i,str),vehicleid,VehicleObjectPotX[vehicleid][freeslot],VehicleObjectPotY[vehicleid][freeslot],VehicleObjectPotZ[vehicleid][freeslot],VehicleObjectRotX[vehicleid][freeslot],VehicleObjectRotY[vehicleid][freeslot],VehicleObjectRotZ[vehicleid][freeslot]);
  128.             }
  129.         }
  130.         return freeslot;
  131.     }
  132.     return -1;
  133. }
  134.  
  135. forward RemoveVehicleObject(vehicleid,slot);
  136. public RemoveVehicleObject(vehicleid,slot)
  137. {
  138.     new i = slot;
  139.     new str[128];
  140.     if(IsAVehicleObject(vehicleid,i))
  141.     {
  142.         VehicleObjectRotX[vehicleid][i] = 0;
  143.         VehicleObjectRotY[vehicleid][i] = 0;
  144.         VehicleObjectRotZ[vehicleid][i] = 0;
  145.         VehicleObjectPotX[vehicleid][i] = 0;
  146.         VehicleObjectPotY[vehicleid][i] = 0;
  147.         VehicleObjectPotZ[vehicleid][i] = 0;
  148.         VehicleObjectModel[vehicleid][i] = -1;
  149.         new x;
  150.         for(x=0; x<MAX_PLAYERS; x++)
  151.         {
  152.             if(IsVehicleStreamedIn(vehicleid, x))
  153.             {
  154.                 format(str,sizeof(str),"PlayerVehObj_%d_%d",vehicleid,i);
  155.                 if(GetPVarType(x, str))
  156.                 {
  157.                     DestroyPlayerObject(x,GetPVarInt(x,str));
  158.                     DeletePVar(x,str);
  159.                 }
  160.             }
  161.         }
  162.     }
  163.     return 1;
  164. }
  165.  
  166. forward RemoveVehicleObjects(vehicleid);
  167. public RemoveVehicleObjects(vehicleid)
  168. {
  169.     new i;
  170.     new str[128];
  171.     for(i=0; i<MAX_OBJECTS_PER_VEHICLE; i++)
  172.     {
  173.         if(IsAVehicleObject(vehicleid,i))
  174.         {
  175.             VehicleObjectRotX[vehicleid][i] = 0;
  176.             VehicleObjectRotY[vehicleid][i] = 0;
  177.             VehicleObjectRotZ[vehicleid][i] = 0;
  178.             VehicleObjectPotX[vehicleid][i] = 0;
  179.             VehicleObjectPotY[vehicleid][i] = 0;
  180.             VehicleObjectPotZ[vehicleid][i] = 0;
  181.             VehicleObjectModel[vehicleid][i] = -1;
  182.             new x;
  183.             for(x=0; x<MAX_PLAYERS; x++)
  184.             {
  185.                 if(IsVehicleStreamedIn(vehicleid, x))
  186.                 {
  187.                     format(str,sizeof(str),"PlayerVehObj_%d_%d",vehicleid,i);
  188.                     if(GetPVarType(x, str))
  189.                     {
  190.                         DestroyPlayerObject(x,GetPVarInt(x,str));
  191.                         DeletePVar(x,str);
  192.                     }
  193.                 }
  194.             }
  195.         }
  196.     }
  197.     return 1;
  198. }
  199.  
  200. forward GetVehicleFreeObjectSlot(vehicleid);
  201. public GetVehicleFreeObjectSlot(vehicleid)
  202. {
  203.     new i;
  204.     for(i=0; i<MAX_OBJECTS_PER_VEHICLE; i++){if(!IsAVehicleObject(vehicleid,i)){return i;}}
  205.     return -1;
  206. }
  207.  
  208. forward IsAVehicleObject(vehicleid,index);
  209. public IsAVehicleObject(vehicleid,index)
  210. {
  211.     if(VehicleObjectModel[vehicleid][index] != -1){return 1;}
  212.     return 0;
  213. }
  214. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Add Comment
Please, Sign In to add comment