Oblivion_UFF

GunGame Minigame by UFF

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