Advertisement
Guest User

Untitled

a guest
Apr 19th, 2018
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.65 KB | None | 0 0
  1. ////////////////////////////////////////////////////////////////////////////////////////////
  2. //              (c) Copywright 2018 - HOBO Gaming. All rights reserved.                   //
  3. ////////////////////////////////////////////////////////////////////////////////////////////
  4. //              Please do not share or use this code without permission                   //
  5. ////////////////////////////////////////////////////////////////////////////////////////////
  6.  
  7. using System;
  8. using System.Linq;
  9. using System.Globalization;
  10. using System.Collections.Generic;
  11. using GrandTheftMultiplayer.Server;
  12. using GrandTheftMultiplayer.Server.API;
  13. using GrandTheftMultiplayer.Server.Elements;
  14. using GrandTheftMultiplayer.Server.Constant;
  15. using GrandTheftMultiplayer.Server.Managers;
  16. using GrandTheftMultiplayer.Shared;
  17. using GrandTheftMultiplayer.Shared.Math;
  18.  
  19.  
  20.  
  21. public class HOBO_JOB_Trucking : Script {
  22.    
  23.     public int[] vehicle_hashes;
  24.    
  25.     public string[,] locations;
  26.        
  27.     public string dataInJson;
  28.    
  29.    
  30.     public HOBO_JOB_Trucking() {
  31.         API.onResourceStart += Start;
  32.        
  33.         API.onPlayerEnterVehicle += OnPlayerEnterVehicle;
  34.         API.onPlayerExitVehicle += OnPlayerExitVehicle;
  35.        
  36.         API.onClientEventTrigger += OnClientEvent;
  37.     }
  38.  
  39.     public void Start() {
  40.         //ALLOWED VEHICLE HASHES
  41.         vehicle_hashes = new int[] {
  42.             1518533038
  43.         };
  44.        
  45.         //DELIVERY AND PICKUP DATA
  46.         locations = new string[,] {
  47.             {"Fat-Ass Bob's "       ,"175.1914","-1841.425","27.99922",     "0","0","-137.5902"},
  48.             {"Some smelly spot"     ,"468.2673","-1691.558","29.28567",     "0","0","-164.2898"},
  49.             {"Adcent's house"       ,"-745.4157","-1037.919","12.36418",    "0","0","25.49856"}
  50.         };
  51.        
  52.         dataInJson = API.toJson(locations);
  53.        
  54.         int length = (locations.Length/7);
  55.                    
  56.         for (int i=0; i <= length-1; i++) {
  57.             float x = float.Parse(locations[i,1]);
  58.             float y = float.Parse(locations[i,2]);
  59.             float z = float.Parse(locations[i,3]);
  60.             CylinderColShape the_col = API.createCylinderColShape(new Vector3(x,y,z), 5.0f, 5.0f);
  61.             the_col.onEntityEnterColShape += Trucker_onEntityEnterColShape;
  62.             the_col.onEntityExitColShape += Trucker_onEntityExitColShape;
  63.             the_col.setData("index", i);
  64.             API.sendChatMessageToAll("~y~INFO: ~w~SPOT: " + locations[i,0] + " | INDEX: " + i);
  65.         }
  66.                    
  67.     }
  68.    
  69.     private void OnPlayerEnterVehicle(Client player, NetHandle vehicle, int targetSeat) {
  70.         if(API.hasEntitySyncedData(player.handle, "HOBO.Subclass") == false) { API.setEntitySyncedData(player.handle, "HOBO.Subclass", "none"); }
  71.        
  72.         if(API.getEntitySyncedData(player.handle, "HOBO.Subclass") == "none") {
  73.             if(targetSeat == -1) {
  74.                 if(vehicle_hashes.Contains(player.vehicle.model)) {
  75.                     API.setEntitySyncedData(player, "on misson",0);
  76.                     API.sendChatMessageToPlayer(player, "~y~INFO: ~w~Trucking locations are displayed on the map!");
  77.                     API.triggerClientEvent(player, "HOBO.JOB.Trucking.Blips.Enabled",dataInJson);
  78.                 }
  79.             }
  80.         }
  81.     }
  82.    
  83.     private void OnPlayerExitVehicle(Client player, NetHandle vehicle, int fromSeat) {
  84.         if(API.getEntitySyncedData(player.handle, "HOBO.Subclass") == "none") {
  85.             if(fromSeat == -1) {               
  86.                 if(vehicle_hashes.Contains(API.getEntityModel(vehicle))) {
  87.                     API.sendChatMessageToPlayer(player, "~y~INFO: ~w~Trucking mission canceled!");
  88.                     API.triggerClientEvent(player, "HOBO.JOB.Trucking.Blips.Disabled");
  89.                 }
  90.             }
  91.         }
  92.     }
  93.    
  94.     private void Trucker_onEntityEnterColShape(ColShape shape, NetHandle entity) {
  95.         var player = API.getPlayerFromHandle(entity);
  96.         if (player == null) {
  97.             return;
  98.         }else{
  99.             var col_index = shape.getData("index");
  100.             API.sendChatMessageToPlayer(player, "~y~INFO: ~w~COL INDEX: " + col_index);
  101.            
  102.             if (API.getEntitySyncedData(player, "on misson") == 0) {
  103.                 API.triggerClientEvent(player, "HOBO.JOB.Trucking.GUI.Enabled",dataInJson,col_index);
  104.             }
  105.         }
  106.     }
  107.    
  108.     private void Trucker_onEntityExitColShape(ColShape shape, NetHandle entity) {
  109.         var player = API.getPlayerFromHandle(entity);
  110.         if (player == null) {
  111.             return;
  112.         }else{
  113.             var col_index = shape.getData("index");
  114.             API.sendChatMessageToPlayer(player, "~y~INFO: ~w~COL INDEX: " + col_index);
  115.            
  116.             if (API.getEntitySyncedData(player, "on misson") == 0) {
  117.                 API.triggerClientEvent(player, "HOBO.JOB.Trucking.GUI.Disabled");
  118.             }
  119.         }
  120.     }
  121.    
  122.     public void OnClientEvent(Client player, string eventName, params object[] arguments) {
  123.         if (eventName == "HOBO.JOB.Trucking.MissionStart") {
  124.             API.sendChatMessageToPlayer(player, "~y~INFO: ~w~MISSION STARTED!");
  125.             API.setEntitySyncedData(player, "on misson",1);
  126.            
  127.             var pla_index = API.getEntitySyncedData(player, "current index");
  128.             API.sendChatMessageToPlayer(player, "~y~INFO: ~w~PLA INDEX: " + pla_index);
  129.         }
  130.     }
  131. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement