Oblivion_UFF

GunGame minigame by UFF.

Sep 10th, 2018
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.68 KB | None | 0 0
  1. /*
  2. //---------------------------------------
  3.  
  4. GunGame Minigame by UFF @Coppyrights 2018
  5.  
  6. -----------------------------------------\\ */
  7.  
  8. #include <a_samp>
  9. #include <streamer>
  10. #include <zcmd>
  11.  
  12. new ggWeapons[14] = { 23,22,27,26,29,32,30,31,24,33,34,35,36,38 };
  13. new bool:IsInGG[MAX_PLAYERS] = false, GGLevel[MAX_PLAYERS], PlayerText:GGTD[MAX_PLAYERS], GGTimer;
  14.  
  15. public OnFilterScriptInit()
  16. {
  17. printf("------------------------------------------");
  18. printf("GunGame Minigame by UFF @Coppyrights 2018 2");
  19. printf("------------------------------------------");
  20. GGTimer = SetTimer("OnUsersUpdate", 1000, true);
  21. return 1;
  22. }
  23. public OnFilterScriptExit()
  24. {
  25. KillTimer(GGTimer);
  26. return 1;
  27. }
  28.  
  29. public OnPlayerConnect(playerid)
  30. {
  31. IsInGG[playerid] = false;
  32. GGLevel[playerid] = 0;
  33. //
  34. GGTD[playerid] = CreatePlayerTextDraw(playerid, 514.799987, 275.866699, "~b~Weapon: ~w~Silenced Pistol~n~~b~Level: ~w~0");
  35. PlayerTextDrawLetterSize(playerid, GGTD[playerid], 0.280000, 1.000000);
  36. PlayerTextDrawAlignment(playerid, GGTD[playerid], 1);
  37. PlayerTextDrawColor(playerid, GGTD[playerid], -1);
  38. PlayerTextDrawSetShadow(playerid, GGTD[playerid], 1);
  39. PlayerTextDrawSetOutline(playerid, GGTD[playerid], 1);
  40. PlayerTextDrawFont(playerid, GGTD[playerid], 1);
  41. PlayerTextDrawSetProportional(playerid, GGTD[playerid], 1);
  42.  
  43. return 0;
  44. }
  45. public OnPlayerDisconnect(playerid, reason)
  46. {
  47. LeaveFromGG(playerid);
  48. PlayerTextDrawDestroy(playerid, GGTD[playerid]);
  49. return 0;
  50. }
  51. public OnPlayerDeath(playerid, killerid, reason)
  52. {
  53. if(IsInGG[playerid])
  54. {
  55. if(GGLevel[playerid] > 0) { GGLevel[playerid]--; }
  56.  
  57. if(killerid != INVALID_PLAYER_ID && IsInGG[killerid])
  58. {
  59. GGLevel[killerid]++;
  60. GivePlayerMoney(killerid, GGLevel[killerid]*1000);
  61. GivePlayerWeapon(killerid, ggWeapons[GGLevel[killerid]], 9999);
  62. new Float:vida; GetPlayerHealth(killerid, vida);
  63. if(vida < 100){ SetPlayerHealth(killerid, vida+15); }
  64. }
  65. }
  66. return 0;
  67. }
  68. public OnPlayerSpawn(playerid)
  69. {
  70. if(IsInGG[playerid])
  71. {
  72. ResetPlayerWeapons(playerid);
  73. JoinToGG(playerid);
  74. }
  75. return 0;
  76. }
  77. forward OnUsersUpdate();
  78. public OnUsersUpdate()
  79. {
  80. for(new i = 0, j = MAX_PLAYERS; i < j; i++) if(IsPlayerConnected(i) && IsInGG[i])
  81. {
  82. new gt_str[90], Weapon[24]; GetWeaponName(GetPlayerWeapon(i), Weapon, 24);
  83. format(gt_str, sizeof(gt_str), "~b~Weapon: ~w~%s~n~~b~Level: ~w~%d~n~~b~", Weapon, GGLevel[i]);
  84. PlayerTextDrawSetString(i, GGTD[i], gt_str);
  85. if(GGLevel[i] == 14)
  86. {
  87. new gw_str[146], gw_nick[24]; GetPlayerName(i, gw_nick, 24);
  88. format(gw_str, sizeof(gw_str), "• {FFFFFF}The player {A60BDD}%s(%d) {FFFFFF}is the {A60BDD}'GunGame' {FFFFFF}winner, (Level: 14)", gw_nick, i);
  89. SendClientMessageToAll(0xA60BDDFF, gw_str);
  90. GivePlayerMoney(i, 14000);
  91. for(new x = 0; x < MAX_PLAYERS; x++) if(GGLevel[x] < 15)
  92. {
  93. GGLevel[x] = 0;
  94. LeaveFromGG(x);
  95. GameTextForPlayer(x, "~p~The GunGame minigame end, thanks for play.", 3500, 3);
  96. }
  97. }
  98. }
  99. return 1;
  100. }
  101. CMD:gg(playerid) return cmd_gungame(playerid);
  102. CMD:gungame(playerid)
  103. {
  104. if(IsInGG[playerid]) return SendClientMessage(playerid, 0xFF0000FF, "You already are in 'GunGame' minigame, use /(gl)eave to left.");
  105. IsInGG[playerid] = true;
  106. GGLevel[playerid] = 0;
  107. JoinToGG(playerid);
  108. new Weapon[24]; GetWeaponName(GetPlayerWeapon(playerid), Weapon, 24);
  109. new gg_str[90]; format(gg_str, sizeof(gg_str), "~b~Weapon: ~w~%s~n~~b~Level: ~w~0~n~~b~", Weapon);
  110. PlayerTextDrawSetString(playerid, GGTD[playerid], gg_str);
  111. PlayerTextDrawShow(playerid, GGTD[playerid]);
  112. return 1;
  113. }
  114. CMD:gl(playerid) return cmd_gleave(playerid);
  115. CMD:gleave(playerid)
  116. {
  117. if(!IsInGG[playerid]) return SendClientMessage(playerid, 0xFF0000FF, "You're not in 'GunGame' minigame, use /gungame (/gg) to join.");
  118. new gg_str[100]; format(gg_str, sizeof(gg_str), "• {FFFFFF}You have left A60BDD}'Gun Game' {FFFFFF}minigame; level: {A60BDD}%d",GGLevel[playerid]);
  119. SendClientMessage(playerid, 0xA60BDDFF, gg_str);
  120. LeaveFromGG(playerid);
  121. return 1;
  122. }
  123. LeaveFromGG(playerid)
  124. {
  125. if(IsInGG[playerid])
  126. {
  127. IsInGG[playerid] = false;
  128. GGLevel[playerid] = 0;
  129. SetPlayerVirtualWorld(playerid, 0);
  130. ResetPlayerWeapons(playerid);
  131. SpawnPlayer(playerid);
  132. PlayerTextDrawHide(playerid, GGTD[playerid]);
  133. }
  134. }
  135. SetPlayerPosition(playerid, Float:X, Float:Y, Float:Z, Float:a)
  136. {
  137. if(IsPlayerInAnyVehicle(playerid))
  138. {
  139. RemovePlayerFromVehicle(playerid);
  140. }
  141. SetPlayerPos(playerid, X, Y, Z+1);
  142. SetPlayerFacingAngle(playerid, a);
  143. SetCameraBehindPlayer(playerid);
  144. SetPlayerWorldBounds(playerid, 20000, -20000, 20000, -20000);
  145. }
  146. JoinToGG(playerid)
  147. {
  148. switch(random(5))
  149. {
  150. case 0: SetPlayerPosition(playerid, 1388.2842,2188.5159,11.0234,122.5376);
  151. case 1: SetPlayerPosition(playerid, 1393.7537,2149.2649,11.0234,92.4808);
  152. case 2: SetPlayerPosition(playerid, 1393.4980,2105.4209,11.0156,50.8071);
  153. case 3: SetPlayerPosition(playerid, 1306.9413,2106.5007,11.0156,327.4597);
  154. case 4: SetPlayerPosition(playerid, 1304.9882,2152.9626,11.0234,261.9724);
  155. }
  156. SetPlayerVirtualWorld(playerid, 1);
  157. ResetPlayerWeapons(playerid);
  158. GivePlayerWeapon(playerid, 4, 1);
  159. GivePlayerWeapon(playerid, ggWeapons[GGLevel[playerid]], 99999);
  160. SetPlayerHealth(playerid, 100.0);
  161. }
Add Comment
Please, Sign In to add comment