Advertisement
Guest User

Untitled

a guest
Dec 11th, 2018
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.45 KB | None | 0 0
  1. bool freecam_active = false;
  2. bool verify_admins = false; // true=verify presence of BI UID in admin list
  3. string cmd_prefix = "/"; // Must be special character
  4. ref TStringArray admins = {}; // Add your BI UID or SteamID
  5.  
  6. bool IsPlayerAnAdmin(PlayerBase player) {
  7. bool found = false;
  8. for ( int i = 0; i < admins.Count(); ++i ) {
  9. if(player.GetIdentity().GetId() == admins[i] || player.GetIdentity().GetPlainId() == admins[i]) { found=true; break; }
  10. }
  11. return found;
  12. }
  13.  
  14. void SendMessageToPlayer(PlayerBase player, string message) {
  15. Param1<string> param = new Param1<string>( message );
  16. GetGame().RPCSingleParam(player, ERPCs.RPC_USER_ACTION_MESSAGE, param, true, player.GetIdentity());
  17. }
  18.  
  19. bool IsPlayer(string name) {
  20. PlayerBase p;
  21. array<Man> players = new array<Man>; GetGame().GetPlayers(players);
  22. for ( int i = 0; i < players.Count(); ++i ) {
  23. p = players.Get(i);
  24. if(p.GetIdentity().GetName() == name) return true;
  25. }
  26. return false;
  27. }
  28.  
  29. PlayerBase GetPlayer(string name) {
  30. PlayerBase p;
  31. array<Man> players = new array<Man>; GetGame().GetPlayers(players);
  32. for ( int i = 0; i < players.Count(); ++i ) {
  33. p = players.Get(i);
  34. if(p.GetIdentity().GetName() == name) return p;
  35. }
  36. return NULL;
  37. }
  38.  
  39. override void OnEvent(EventType eventTypeId, Param params) {
  40. int i;
  41. PlayerBase player, temp_player;
  42. array<Man> players = new array<Man>; GetGame().GetPlayers(players);
  43. if(eventTypeId != ChatMessageEventTypeID) { super.OnEvent(eventTypeId,params); return; }
  44. ChatMessageEventParams chat_params = ChatMessageEventParams.Cast( params );
  45. if(chat_params.param1 != 0 || chat_params.param2 == "") { super.OnEvent(eventTypeId,params); return; }
  46. player = GetPlayer(chat_params.param2);
  47. if(player == NULL) { super.OnEvent(eventTypeId,params); return; }
  48. string message = chat_params.param3, prefix, param0, command;
  49. TStringArray tokens = new TStringArray;
  50. message.Replace("` ", "&SPCESC!");
  51. message.Split(" ", tokens); int count = tokens.Count();
  52. for ( i = 0; i < count; ++i ) {
  53. message = tokens[i];
  54. message.Replace("&SPCESC!", " ");
  55. tokens[i] = message;
  56. }
  57.  
  58. param0 = tokens.Get(0);
  59. param0.ParseStringEx(prefix); if(prefix != cmd_prefix) { super.OnEvent(eventTypeId,params); return; };
  60. param0.ParseStringEx(command);
  61. if(verify_admins && !IsPlayerAnAdmin(player)) { GetGame().AdminLog("[ADMCMD] (Unauthorized) " + player.GetIdentity().GetName() +" ("+player.GetIdentity().GetPlainId()+", "+player.GetIdentity().GetId()+") tried to execute "+ chat_params.param3); return; }
  62. GetGame().AdminLog("[ADMCMD] PLAYER: "+ player.GetIdentity().GetName() +" ("+player.GetIdentity().GetPlainId()+", "+player.GetIdentity().GetId()+") CMD: "+ command);
  63. switch(command) {
  64. case "spawn": {
  65. if(count != 2) { SendMessageToPlayer(player, "/spawn [object]"); return; }
  66. GetGame().CreateObject(tokens[1], player.GetPosition(), false, true );
  67. SendMessageToPlayer(player, "[ObjectSpawn] Object spawned: " + tokens[1]);
  68. break;
  69. }
  70.  
  71. case "inv": {
  72. if(count != 2) { SendMessageToPlayer(player, "/inv [object]"); return; }
  73. player.GetInventory().CreateInInventory(tokens[1]);
  74. SendMessageToPlayer(player, "[ObjectSpawn] Object spawned in inventory: " + tokens[1]);
  75. break;
  76. }
  77.  
  78. case "weapon": {
  79. if(count != 2) { SendMessageToPlayer(player, "/weapon [weapon]"); return; }
  80. EntityAI weapon;
  81. switch(tokens[1]) {
  82. case "ump": {
  83. weapon = player.GetHumanInventory().CreateInHands("UMP45");
  84. player.GetInventory().CreateInInventory("Mag_UMP_25Rnd");
  85. break;
  86. }
  87.  
  88. case "cz61": {
  89. weapon = player.GetHumanInventory().CreateInHands("CZ61");
  90. player.GetInventory().CreateInInventory("Mag_CZ61_20Rnd");
  91. break;
  92. }
  93.  
  94. case "mp5": {
  95. weapon = player.GetHumanInventory().CreateInHands("MP5K");
  96. weapon.GetInventory().CreateAttachment("MP5k_StockBttstck");
  97. weapon.GetInventory().CreateAttachment("MP5_PRailHndgrd");
  98. player.GetInventory().CreateInInventory("Mag_MP5_30Rnd");
  99. break;
  100. }
  101.  
  102. case "svd": {
  103. weapon = player.GetHumanInventory().CreateInHands("SVD");
  104. weapon.GetInventory().CreateAttachment("PSO11Optic");
  105. player.GetInventory().CreateInInventory("Mag_SVD_10Rnd");
  106. break;
  107. }
  108.  
  109. case "mp133": {
  110. weapon = player.GetHumanInventory().CreateInHands("Mp133Shotgun");
  111. player.GetInventory().CreateInInventory("Ammo_12gaPellets");
  112. break;
  113. }
  114.  
  115. case "mosin": {
  116. weapon = player.GetHumanInventory().CreateInHands("Mosin9130");
  117. weapon.GetInventory().CreateAttachment("PUScopeOptic");
  118. player.GetInventory().CreateInInventory("Ammo_762x54");
  119. break;
  120. }
  121.  
  122. case "m4": {
  123. weapon = player.GetHumanInventory().CreateInHands("M4A1_Black");
  124. weapon.GetInventory().CreateAttachment("M4_RISHndgrd_Black");
  125. weapon.GetInventory().CreateAttachment("M4_MPBttstck_Black");
  126. weapon.GetInventory().CreateAttachment("BUISOptic");
  127. player.GetInventory().CreateInInventory("Mag_STANAGCoupled_30Rnd");
  128. break;
  129. }
  130.  
  131. case "akm": {
  132. weapon = player.GetHumanInventory().CreateInHands("AKM");
  133. weapon.GetInventory().CreateAttachment("AK_RailHndgrd");
  134. weapon.GetInventory().CreateAttachment("AK_PlasticBttstck");
  135. player.GetInventory().CreateInInventory("Mag_AKM_30Rnd");
  136. break;
  137. }
  138.  
  139. case "izh18": {
  140. weapon = player.GetHumanInventory().CreateInHands("Izh18");
  141. player.GetInventory().CreateInInventory("Ammo_762x39");
  142. break;
  143. }
  144.  
  145. case "fnx": {
  146. weapon = player.GetHumanInventory().CreateInHands("FNX45");
  147. player.GetInventory().CreateInInventory("Mag_FNX45_15Rnd");
  148. break;
  149. }
  150.  
  151. default: {
  152. SendMessageToPlayer(player, "[WeaponSpawner] " + tokens[1] + " not found");
  153. break;
  154. }
  155. }
  156. break;
  157. }
  158.  
  159. case "tp": {
  160. if(count != 2) { SendMessageToPlayer(player, "/tp [POI]"); return; }
  161. vector poi;
  162. switch(tokens[1]) {
  163. case "nwaf": {
  164. poi = "4660 0 10330";
  165. SendMessageToPlayer(player, "[POI-TP] Teleported to NWAF");
  166. break;
  167. }
  168.  
  169. case "nwaf_tents": {
  170. poi = "3160 0 11000";
  171. SendMessageToPlayer(player, "[POI-TP] Teleported to NWAF-Tents");
  172. break;
  173. }
  174.  
  175. case "tisy": {
  176. poi = "1600 0 14000";
  177. SendMessageToPlayer(player, "[POI-TP] Teleported to Tisy");
  178. break;
  179. }
  180.  
  181. case "vmc": {
  182. poi = "4600 0 8200";
  183. SendMessageToPlayer(player, "[POI-TP] Teleported to Vybor Military Compound");
  184. break;
  185. }
  186.  
  187. case "pmc": {
  188. poi = "1830 0 3450";
  189. SendMessageToPlayer(player, "[POI-TP] Teleported to Pavlovo Military Compound");
  190. break;
  191. }
  192.  
  193. case "tmc": {
  194. poi = "7850 0 14700";
  195. SendMessageToPlayer(player, "[POI-TP] Teleported to Troitskoe Military Compound");
  196. break;
  197. }
  198.  
  199. default: {
  200. SendMessageToPlayer(player, "[POI-TP] " + tokens[1] + " not found");
  201. SendMessageToPlayer(player, "Available POI: ");
  202. return;
  203. }
  204. }
  205.  
  206. poi[1] = GetGame().SurfaceY(poi[0], poi[2]);
  207. player.SetPosition(poi);
  208. break;
  209. }
  210.  
  211. case "strip": {
  212. if(count != 2) { SendMessageToPlayer(player, "/strip [player]"); return; }
  213. temp_player = GetPlayer(tokens[1]);
  214. if(temp_player == NULL) {
  215. SendMessageToPlayer(player, "[Strip] Can't find player called: '"+tokens[1]+"'");
  216. } else {
  217. temp_player.RemoveAllItems();
  218. SendMessageToPlayer(player, "[Strip] You stripped " + temp_player.GetIdentity().GetName());
  219. SendMessageToPlayer(temp_player, "You have been stripped by an admin");
  220. }
  221. break;
  222. }
  223.  
  224. case "slap": {
  225. if(count != 2) { SendMessageToPlayer(player, "/slap [player]"); return; }
  226. temp_player = GetPlayer(tokens[1]);
  227. if(temp_player == NULL) {
  228. SendMessageToPlayer(player, "[Slap] Can't find player called: '"+tokens[1]+"'");
  229. } else {
  230. temp_player.SetPosition(temp_player.GetPosition() + "0 3 0");
  231. SendMessageToPlayer(player, "[Slap] You stripped " + temp_player.GetIdentity().GetName());
  232. SendMessageToPlayer(temp_player, "You have been slapped by an admin");
  233. }
  234. break;
  235. }
  236.  
  237. case "topos": {
  238. if (count < 3) { SendMessageToPlayer(player, "/topos [x] [y] (player)"); return; }
  239. float ATL_Z = GetGame().SurfaceY(tokens[1].ToFloat(), tokens[2].ToFloat());
  240. vector reqpos = Vector(tokens[1].ToFloat(), ATL_Z, tokens[2].ToFloat());
  241. temp_player = player;
  242. if (count == 4) {
  243. temp_player = GetPlayer(tokens[3]);
  244. if (temp_player == NULL) {
  245. SendMessageToPlayer(player, "[Teleport] Can't find player called: '"+tokens[3]+"'"); return;
  246. } else {
  247. SendMessageToPlayer(temp_player, "[Teleport] You've been teleported to " + reqpos + " by admin " + player.GetIdentity().GetName());
  248. }
  249. }
  250. temp_player.SetPosition(reqpos);
  251. SendMessageToPlayer(player, "[Teleport] Target teleported to " + temp_player.GetPosition());
  252. break;
  253. }
  254.  
  255. case "goto": {
  256. if(count != 2) { SendMessageToPlayer(player, "/goto [player]"); return; }
  257. temp_player = GetPlayer(tokens[1]);
  258. if(temp_player == NULL) {
  259. SendMessageToPlayer(player, "[Teleport] Can't find player called: '"+tokens[1]+"'");
  260. } else {
  261. player.SetPosition(temp_player.GetPosition());
  262. SendMessageToPlayer(player, "[Teleport] You teleported to " + temp_player.GetIdentity().GetName());
  263. }
  264. break;
  265. }
  266.  
  267. case "allgoto": {
  268. PlayerBase allgoto_target;
  269. if(count != 2) { SendMessageToPlayer(player, "/allgoto [player]"); return; }
  270. allgoto_target = GetPlayer(tokens[1]);
  271. if(allgoto_target == NULL) {
  272. SendMessageToPlayer(player, "[Teleport] Can't find player called: '"+tokens[1]+"'");
  273. } else {
  274. SendMessageToPlayer(player, "[Teleport] You teleported everyone to your location");
  275. for (i = 0; i < players.Count(); i++) {
  276. temp_player = players.Get(i);
  277. SendMessageToPlayer(temp_player, "[Teleport] You have been teleported to player " + allgoto_target.GetIdentity().GetName());
  278. temp_player.SetPosition(allgoto_target.GetPosition());
  279. }
  280. }
  281. break;
  282. }
  283.  
  284. case "here": {
  285. if(count != 2) { SendMessageToPlayer(player, "/here [player]"); return; }
  286. temp_player = GetPlayer(tokens[1]);
  287. if(temp_player == NULL) {
  288. SendMessageToPlayer(player, "[Teleport] Can't find player called: '"+tokens[1]+"'");
  289. } else {
  290. temp_player.SetPosition(player.GetPosition());
  291. SendMessageToPlayer(temp_player, "[Teleport] You have been teleported to admin " + player.GetIdentity().GetName());
  292. SendMessageToPlayer(player, "[Teleport] You teleported " + temp_player.GetIdentity().GetName() + " to your location");
  293. }
  294. break;
  295. }
  296.  
  297. case "allhere": {
  298. SendMessageToPlayer(player, "[Teleport] You teleported everyone to your location");
  299. for (i = 0; i < players.Count(); i++) {
  300. temp_player = players.Get(i);
  301. SendMessageToPlayer(temp_player, "[Teleport] You have been teleported to admin " + player.GetIdentity().GetName());
  302. temp_player.SetPosition(player.GetPosition());
  303. }
  304. break;
  305. }
  306.  
  307. case "time": {
  308. if(count != 3) { SendMessageToPlayer(player, "/time [hour] [minute]"); return; }
  309. GetGame().GetWorld().SetDate( 2018, 1, 7, tokens[1].ToInt(), tokens[2].ToInt());
  310. SendMessageToPlayer(player, "[Servertime] You have set the servertime to " + tokens[1] + ":"+tokens[2]);
  311. break;
  312. }
  313.  
  314. case "day": {
  315. GetGame().GetWorld().SetDate( 2018, 1, 7, 12, 0);
  316. SendMessageToPlayer(player, "[Servertime] You have set the servertime to daytime");
  317. break;
  318. }
  319.  
  320. case "night": {
  321. GetGame().GetWorld().SetDate( 2018, 1, 7, 24, 0);
  322. SendMessageToPlayer(player, "[Servertime] You have set the servertime to daytime");
  323. break;
  324. }
  325.  
  326. /*
  327. case "rain": {
  328. if(count != 2) { SendMessageToPlayer(player, "/rain [value 0-100]"); return; }
  329. float rain = tokens[1].ToFloat() / 100;
  330. GetGame().GetWeather().GetRain().Set(rain, 0, 600);
  331. SendMessageToPlayer(player, "[Weather] You have set Rain to " + tokens[1] + "% ["+rain+"]");
  332. break;
  333. }
  334. case "fog": {
  335. if(count != 2) { SendMessageToPlayer(player, "/rain [value 0-100]"); return; }
  336. float fog = tokens[1].ToFloat() / 100;
  337. GetGame().GetWeather().GetFog().Set(fog, 0, 600);
  338. SendMessageToPlayer(player, "[Weather] You have set Fog to " + tokens[1] + "% ["+fog+"]");
  339. break;
  340. }
  341. case "overcast": {
  342. if(count != 2) { SendMessageToPlayer(player, "/rain [value 0-100]"); return; }
  343. float overcast = tokens[1].ToFloat() / 100;
  344. GetGame().GetWeather().GetOvercast().Set(overcast, 0, 600);
  345. SendMessageToPlayer(player, "[Weather] You have set Overcast to " + tokens[1] + "% ["+overcast+"]");
  346. break;
  347. }
  348. */
  349.  
  350. case "kill": {
  351. if(count == 2) {
  352. temp_player = GetPlayer(tokens[1]);
  353. if(temp_player == NULL) {
  354. SendMessageToPlayer(player, "[Kill] Can't find player called: '"+tokens[1]+"'");
  355. } else {
  356. temp_player.SetHealth(0);
  357. SendMessageToPlayer(player, "[Kill] You killed " + temp_player.GetIdentity().GetName());
  358. }
  359. } else {
  360. player.SetHealth(0);
  361. SendMessageToPlayer(player, "[Kill] You killed yourself");
  362. }
  363. break;
  364. }
  365.  
  366. case "killall": {
  367. SendMessageToPlayer(player, "[Kill] You killed everyone");
  368. for (i = 0; i < players.Count(); i++) {
  369. temp_player = players.Get(i);
  370. if(temp_player.GetIdentity().GetId() == player.GetIdentity().GetId()) continue;
  371. temp_player.SetHealth(0);
  372. }
  373. break;
  374. }
  375.  
  376. case "heal": {
  377. PlayerBase heal_target;
  378. if(count == 2) {
  379. heal_target = GetPlayer(tokens[1]);
  380. if(heal_target == NULL) {
  381. SendMessageToPlayer(player, "[Heal] Can't find player called: '"+tokens[1]+"'");
  382. } else {
  383. SendMessageToPlayer(player, "[Heal] You healed " + heal_target.GetIdentity().GetName());
  384. }
  385. } else {
  386. heal_target = player;
  387. SendMessageToPlayer(player, "[Heal] You healed yourself");
  388. }
  389. if(heal_target != NULL) {
  390. heal_target.SetHealth(heal_target.GetMaxHealth("", ""));
  391. heal_target.SetHealth("", "Blood", heal_target.GetMaxHealth("", "Blood"));
  392. heal_target.GetStatStamina().Set(1000);
  393. heal_target.GetStatEnergy().Set(1000);
  394. heal_target.GetStatWater().Set(1000);
  395. }
  396. break;
  397. }
  398.  
  399. case "freecam": {
  400. PlayerBase body = player;
  401. if(freecam_active) {
  402. freecam_active = false;
  403. GetGame().SelectPlayer(player.GetIdentity(), body);
  404. SendMessageToPlayer(player, "[Freecam] Exited");
  405.  
  406. } else {
  407. freecam_active = true;
  408. GetGame().SelectPlayer(player.GetIdentity(), NULL);
  409. GetGame().SelectSpectator(player.GetIdentity(), "freedebugcamera", player.GetPosition());
  410. SendMessageToPlayer(player, "[Freecam] Entered");
  411. }
  412. break;
  413. }
  414.  
  415. case "offroad": {
  416. SendMessageToPlayer(player, "[Offroad] Vehicled spawned");
  417. Car v;
  418. float playerAngle = MiscGameplayFunctions.GetHeadingAngle(player);
  419. vector posModifier = Vector(-(3 * Math.Sin(playerAngle)), 0, 3 * Math.Cos(playerAngle));
  420. v = Car.Cast(GetGame().CreateObject( "OffroadHatchback", player.GetPosition() + posModifier));
  421.  
  422. v.GetInventory().CreateAttachment("SparkPlug");
  423. v.GetInventory().CreateAttachment("EngineBelt");
  424. v.GetInventory().CreateAttachment("CarBattery");
  425. v.GetInventory().CreateAttachment("HatchbackHood");
  426. v.GetInventory().CreateAttachment("HatchbackTrunk");
  427. v.GetInventory().CreateAttachment("HatchbackDoors_CoDriver");
  428. v.GetInventory().CreateAttachment("HatchbackWheel");
  429. v.GetInventory().CreateAttachment("HatchbackWheel");
  430. v.GetInventory().CreateAttachment("HatchbackWheel");
  431. v.GetInventory().CreateAttachment("HatchbackWheel");
  432. v.GetInventory().CreateAttachment("HatchbackWheel"); // spare
  433. break;
  434. }
  435.  
  436. case "refuel": {
  437. ref array<Object> nearest_objects = new array<Object>;
  438. ref array<CargoBase> proxy_cargos = new array<CargoBase>;
  439. Car toBeFilled;
  440. vector position = player.GetPosition();
  441. GetGame().GetObjectsAtPosition ( position, 10, nearest_objects, proxy_cargos );
  442.  
  443. for (i = 0; i < nearest_objects.Count(); i++) {
  444. if (nearest_objects[i].IsKindOf("CarScript")) {
  445. SendMessageToPlayer(player, "[Refuel] Found car: '"+nearest_objects[i]+"'");
  446. toBeFilled = Car.Cast(nearest_objects[i]);
  447. float fuelReq = toBeFilled.GetFluidCapacity( CarFluid.FUEL ) - (toBeFilled.GetFluidCapacity( CarFluid.FUEL ) * toBeFilled.GetFluidFraction( CarFluid.FUEL ));
  448. float oilReq = toBeFilled.GetFluidCapacity( CarFluid.OIL ) - (toBeFilled.GetFluidCapacity( CarFluid.OIL ) * toBeFilled.GetFluidFraction( CarFluid.OIL ));
  449. float coolantReq = toBeFilled.GetFluidCapacity( CarFluid.COOLANT ) - (toBeFilled.GetFluidCapacity( CarFluid.COOLANT ) * toBeFilled.GetFluidFraction( CarFluid.COOLANT ));
  450. float brakeReq = toBeFilled.GetFluidCapacity( CarFluid.BRAKE ) - (toBeFilled.GetFluidCapacity( CarFluid.BRAKE ) * toBeFilled.GetFluidFraction( CarFluid.BRAKE ));
  451. toBeFilled.Fill( CarFluid.FUEL, fuelReq );
  452. toBeFilled.Fill( CarFluid.OIL, oilReq );
  453. toBeFilled.Fill( CarFluid.COOLANT, coolantReq );
  454. toBeFilled.Fill( CarFluid.BRAKE, brakeReq );
  455. SendMessageToPlayer(player, "[Refuel] "+fuelReq+"L added, all fluids maxed");
  456. }
  457. }
  458.  
  459. break;
  460. }
  461.  
  462. default: {
  463. SendMessageToPlayer(player, "Unknown command: " + command);
  464. break;
  465. }
  466. }
  467. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement