Advertisement
Guest User

bonuscar

a guest
Nov 21st, 2014
366
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.30 KB | None | 0 0
  1. #include a_samp
  2. #include a_mysql
  3. #include sscanf2
  4. #include gvar
  5. #include foreach
  6. #include streamer
  7. #include zcmd
  8.  
  9. #define function%0(%1) forward%0(%1); public %0(%1)
  10.  
  11. enum {
  12. DIALOG_BCAR=1234,
  13. DIALOG_BCAR2,
  14. DIALOG_BCARNAME,
  15. DIALOG_BCARDELETE
  16. }
  17.  
  18. new
  19. query[1024],
  20. string[1024],
  21. escape[512],
  22. Float:f[4],
  23. engine, lights, alarm, doors, bonnet, boot, objective,
  24. Text3D:bLabel,
  25. bcar_cash[MAX_PLAYERS],
  26. sql
  27. ;
  28.  
  29. public OnFilterScriptInit() {
  30. sql = mysql_connect("localhost", "root", "test", ""); // Ide a saját csatlakozási adatodat kivéve ha GM-be helyezed!
  31.  
  32. SetTimer("SpawnBonusCar", 60000*8, true);
  33. SetGVarInt("bcar", INVALID_VEHICLE_ID);
  34. return 1;
  35. }
  36.  
  37. public OnFilterScriptExit() {
  38. DestroyVehicle(GetGVarInt("bcar"));
  39. DestroyDynamic3DTextLabel(bLabel);
  40. mysql_close(sql);
  41. return 1;
  42. }
  43.  
  44. public OnPlayerDisconnect(playerid, reason) {
  45. if(GetPVarInt(playerid, "In_bCar")) KillTimer(bcar_cash[playerid]);
  46. return 1;
  47. }
  48.  
  49. public OnPlayerStateChange(playerid, newstate, oldstate) {
  50. if(newstate == PLAYER_STATE_DRIVER && GetGVarInt("bcar_spawned") == 1 && GetPlayerVehicleID(playerid) == GetGVarInt("bcar")) {
  51. SetPVarInt(playerid, "In_bCar", 1);
  52. bcar_cash[playerid] = SetTimerEx("Add_bCarowner_cash", 15000, true, "i", playerid);
  53.  
  54. format(string, sizeof(string), "{%06x}%s(%i) {00CD66}megszerezte a bónuszautót.", GetPlayerColor(playerid) >>> 8, Name(playerid), playerid);
  55. SendClientMessageToAll(0x33af99ff, string);
  56. SendClientMessage(playerid, 0x0ac92bff, "Graitulálunk! megszerezted a bónuszautót! Mostantól 15 másodpercenként kapsz 5000$, amíg el nem hagyod a járművet.");
  57. }
  58. if(oldstate == PLAYER_STATE_DRIVER && newstate == PLAYER_STATE_ONFOOT && GetPVarInt(playerid, "In_bCar")) {
  59. KillTimer(bcar_cash[playerid]);
  60. SetPVarInt(playerid, "In_bCar", 0);
  61. SendClientMessage(playerid, 0x0ac92bff, "Elhagytad a bónuszautót. Mostantól nem kapod a sok lóvét.");
  62. format(string, sizeof(string), "{%06x}%s(%i) {B0171F}elhagyta a bónuszautót.", GetPlayerColor(playerid) >>> 8, Name(playerid), playerid);
  63. SendClientMessageToAll(0x33af99ff, string);
  64. }
  65. return 1;
  66. }
  67.  
  68. public OnVehicleDeath(vehicleid, killerid) {
  69. if(vehicleid == GetGVarInt("bcar") && GetGVarInt("bcar_spawned") == 1) {
  70. SetGVarInt("bcar", INVALID_VEHICLE_ID);
  71. DestroyDynamic3DTextLabel(bLabel);
  72. DestroyVehicle(GetGVarInt("bcar"));
  73. SetGVarInt("bcar_spawned", 0);
  74. SetPVarInt(killerid, "In_bCar", 0);
  75. KillTimer(bcar_cash[killerid]);
  76.  
  77. format(string, sizeof(string), "{%06x}%s(%i) {B0171F}megsemmisítette a bónuszautót. Pár perc múlva újra elhelyezünk egyet.", GetPlayerColor(killerid) >>> 8, Name(killerid), killerid);
  78. SendClientMessageToAll(0x33af99ff, string);
  79. }
  80. return 1;
  81. }
  82.  
  83. public OnPlayerCommandReceived(playerid, cmdtext[]) {
  84. if(GetPVarInt(playerid, "In_bCar")) return SendClientMessage(playerid, 0xff0000ff, "Hiba! Bónuszautóban nem használhatsz parancsokat!") ,0;
  85. return 1;
  86. }
  87.  
  88. function THREAD_Finish() return 1;
  89.  
  90. function Add_bCarowner_cash(playerid) { if(GetPVarInt(playerid, "In_bCar")) GivePlayerMoney(playerid, 5000); return 1; }
  91.  
  92. function SpawnBonusCar() {
  93. DestroyDynamic3DTextLabel(bLabel);
  94. DestroyVehicle(GetGVarInt("bcar"));
  95.  
  96. SetGVarInt("bcar_spawned", 1);
  97.  
  98. new hely[64];
  99. cache_get_row(0, 0, hely, sql, sizeof(hely));
  100. f[0] = cache_get_row_float(0, 1, sql);
  101. f[1] = cache_get_row_float(0, 2, sql);
  102. f[2] = cache_get_row_float(0, 3, sql);
  103. f[3] = cache_get_row_float(0, 4, sql);
  104.  
  105. SetGVarInt("bcar", CreateVehicle(411, f[0], f[1], f[2], f[3], random(255), random(255), -1));
  106. ChangeVehicleColor(GetGVarInt("bcar"), random(255), random(255));
  107. AddVehicleComponent(GetGVarInt("bcar"), 1073+random(14));
  108. GetVehicleParamsEx(GetGVarInt("bcar"), engine, lights, alarm, doors, bonnet, boot, objective);
  109. SetVehicleParamsEx(GetGVarInt("bcar"), engine, lights, alarm, doors, bonnet, boot, true);
  110. bLabel = CreateDynamic3DTextLabel(">> Bónuszautó <<", 0x33eeffff, f[0], f[1], f[2]+0.5, 50.0, INVALID_PLAYER_ID, GetGVarInt("bcar"), 0, 0, -1);
  111. SetGVarString("bCarHely", hely);
  112.  
  113. format(string, sizeof(string), "BonusCar: {00CED1}Elhelyezve {1E90FF}'%s' {00CED1}környékén.", hely);
  114. SendClientMessageToAll(0x33af99ff, string);
  115. return 1;
  116. }
  117.  
  118. function THREAD_SBCList(playerid) {
  119. new rows = cache_num_rows(sql);
  120.  
  121. string[0] = EOS;
  122.  
  123. for(new x; x < rows; x++) {
  124. cache_get_row(x, 0, query, sql, sizeof(query));
  125. format(query, sizeof(query), "%s\n", query);
  126. strcat(string, query);
  127. }
  128.  
  129. ShowPlayerDialog(playerid, DIALOG_BCAR, 2, "Válassz kategóriát", string, "Választ", "Bezár");
  130. return 1;
  131. }
  132.  
  133. CMD:bcar(playerid) {
  134. if(IsPlayerAdmin(playerid)) return 0; // írd át a saját adminrendszered alapján
  135. SpawnBonusCar();
  136. return 1;
  137. }
  138.  
  139. CMD:createbcar(playerid, params[]) {
  140. if(IsPlayerAdmin(playerid)) return 0; // írd át a saját adminrendszered alapján
  141. if(GetVehicleModel(GetPlayerVehicleID(playerid)) != 411) return SendClientMessage(playerid, 0xff0000ff, "Hiba! Nem ülsz 'Infernus'ba! (/v inf)");
  142. if(sscanf(params, "s[64]", params)) return SendClientMessage(playerid, -1, "/createbcar [Hely megnevezése]");
  143. if(!(3 < strlen(params) < 65)) return SendClientMessage(playerid, 0xff0000ff, "Hiba A hely megnevezésének karakterei nem lehet kissebb 4 nél és nem lehet több 64-nél!");
  144.  
  145. GetVehiclePos(GetPlayerVehicleID(playerid), f[0], f[1], f[2]);
  146. GetVehicleZAngle(GetPlayerVehicleID(playerid), f[3]);
  147.  
  148. mysql_real_escape_string(params, escape);
  149. format(query, sizeof(query), "INSERT INTO `bonuscar` (`Hely`, `X`, `Y`, `Z`, `A`) VALUES ('%s', '%f', '%f', '%f', '%f')", escape, f[0], f[1], f[2], f[3]);
  150. mysql_function_query(sql, query, true, "THREAD_Finish", "");
  151. return 1;
  152. }
  153.  
  154. CMD:gotobcar(playerid) {
  155. if(IsPlayerAdmin(playerid)) return 0; // írd át a saját adminrendszered alapján
  156. if(!GetGVarInt("bcar_spawned")) return SendClientMessage(playerid, 0xff0000ff, "Hiba! A bónuszautó nincs lespawnolva.");
  157. GetVehiclePos(GetGVarInt("bcar"), f[0], f[1], f[2]);
  158. if(IsPlayerInAnyVehicle(playerid)) SetVehiclePos(GetPlayerVehicleID(playerid), f[0]+2, f[1]+2, f[2]);
  159. else SetPlayerPos(playerid, f[0], f[1], f[2]+2);
  160. SendClientMessage(playerid, 0x89eeaaff, "Sikeresen elteleportáltál a bónuszautóhoz.");
  161. return 1;
  162. }
  163.  
  164. CMD:setbcar(playerid) {
  165. if(IsPlayerAdmin(playerid)) return 0; // írd át a saját adminrendszered alapján
  166. mysql_function_query(sql, "SELECT `Hely` FROM `bonuscar`;", true, "THREAD_SBCList", "i", playerid);
  167. return 1;
  168. }
  169.  
  170. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
  171. switch(dialogid) {
  172. case DIALOG_BCAR: {
  173. if(!response) return 0;
  174. SetGVarString("bCarNames", inputtext);
  175. ShowPlayerDialog(playerid, DIALOG_BCAR2, 2, "Válassz", "Hely nevének megváltoztatása\nEnnek a helynek a megszüntetése", "Választ", "Vissza");
  176. }
  177. case DIALOG_BCAR2: {
  178. if(!response) return cmd_setbcar(playerid);
  179. if(!listitem) ShowPlayerDialog(playerid, DIALOG_BCARNAME, DIALOG_STYLE_INPUT, "Írj be nevet", "Írd be a megváltoztatni kívánt bónuszautó új helyének a nevét", "Változtat", "Vissza");
  180. else if(listitem) ShowPlayerDialog(playerid, DIALOG_BCARDELETE, DIALOG_STYLE_MSGBOX, "Biztos?", "Biztosan szeretnéd törölni ezt a bónuszautó lepsawnolási helyet?", "Töröl", "Vissza");
  181. }
  182. case DIALOG_BCARNAME: {
  183. if(!response) return cmd_setbcar(playerid);
  184. new bc[64];
  185. GetGVarString("bCarNames", bc, 64);
  186. mysql_real_escape_string(inputtext, escape);
  187. format(query, sizeof(query), "UPDATE `bonuscar` SET Hely = '%s' WHERE Hely = '%s'", escape, bc);
  188. mysql_function_query(sql, query, true, "THREAD_Finish", "");
  189.  
  190. format(string, sizeof(string), "Bónuszautó helyének az eggyik neve megváltoztatva erről: '%s', erre: '%s'", bc, escape);
  191. SendClientMessage(playerid, 0x33af99ff, string);
  192. }
  193. case DIALOG_BCARDELETE: {
  194. if(!response) return cmd_setbcar(playerid);
  195. new bc[64];
  196. GetGVarString("bCarNames", bc, 64);
  197. format(query, sizeof(query), "DELETE FROM `bonuscar` WHERE Hely = '%s'", bc);
  198. mysql_function_query(sql, query, true, "THREAD_Finish", "");
  199. format(string, sizeof(string), "Sikeresen törölve a '%s' neven lespawnolnó bónuszautó!", bc);
  200. SendClientMessage(playerid, 0x33af99ff, string);
  201. }
  202. }
  203. return 1;
  204. }
  205.  
  206. Name(playerid) { new n[24]; GetPlayerName(playerid, n, 24); return n; }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement