Advertisement
Guest User

Dileri Shomy

a guest
Jul 27th, 2019
535
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.18 KB | None | 0 0
  1. #include < a_samp >
  2. #include < a_mysql >
  3. #include < foreach >
  4. #include < Pawn.CMD >
  5. #include < sscanf2 >
  6.  
  7. #define MYSQL_HOST "127.0.0.1"
  8. #define MYSQL_USER "root"
  9. #define MYSQL_PASSWORD ""
  10. #define MYSQL_DATABASE "dilerdb"
  11.  
  12. #define MAX_DILERI 70
  13.  
  14. // CENE //
  15.  
  16. const CENA_M4 = 5000; // (50 metkova)
  17. const CENA_AK47 = 5000; // (50 metkova)
  18. const CENA_DEAGLE = 4000; // (30 metkova)
  19. const CENA_ARMOR = 7000; // (full)
  20. const CENA_SNIPER = 7000; // (20 metkova)
  21.  
  22. enum {
  23. DIALOG_DILERBUY
  24. }
  25.  
  26. enum DILER_INFO {
  27.  
  28. Float:dX,
  29. Float:dY,
  30. Float:dZ,
  31. Float:dA,
  32. dSkin,
  33. dIme[ 30 ],
  34. dVW,
  35. dID,
  36. dMySQLID
  37. }
  38.  
  39. new MySQL:g_SQL, Iterator:ServerDileri<MAX_DILERI>, DilerInfo[ MAX_DILERI ][ DILER_INFO ], Text3D:DilerLabel[ sizeof(DilerInfo) ];
  40.  
  41. SetupDilerTable() {
  42. mysql_tquery(g_SQL, "CREATE TABLE IF NOT EXISTS `dileri` (`id` int(11),`X` float NOT NULL,`Y` float NOT NULL,`Z` float NOT NULL, `A` float NOT NULL, `Skin` int(11) NOT NULL, `VW` int(11) NOT NULL, `Ime` varchar(30) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `id` (`id`))");
  43. return 1;
  44. }
  45. forward LoadDilere();
  46. public LoadDilere() {
  47. new rows = cache_num_rows();
  48. if(rows) {
  49.  
  50. for(new i; i < rows; i++) {
  51.  
  52. new id = Iter_Free(ServerDileri), str[ 100 ];
  53. cache_get_value_name_float(i, "X", DilerInfo[ id ][ dX ]);
  54. cache_get_value_name_float(i, "Y", DilerInfo[ id ][ dY ]);
  55. cache_get_value_name_float(i, "Z", DilerInfo[ id ][ dZ ]);
  56. cache_get_value_name_float(i, "A", DilerInfo[ id ][ dA ]);
  57. cache_get_value_name_int(i, "id", DilerInfo[ id ][ dMySQLID ]);
  58. cache_get_value_name_int(i, "Skin", DilerInfo[ id ][ dSkin ]);
  59. cache_get_value_name_int(i, "VW", DilerInfo[ id ][ dVW ]);
  60. cache_get_value_name(i, "Ime", DilerInfo[ id ][ dIme ], 30);
  61.  
  62. DilerInfo[ id ][ dID ] = CreateActor(DilerInfo[ id ][ dSkin ], DilerInfo[ id ][ dX ], DilerInfo[ id ][ dY ], DilerInfo[ id ][ dZ ], DilerInfo[ id ][ dA ]);
  63. SetActorVirtualWorld(DilerInfo[ id ][ dID ], DilerInfo[ id ][ dVW ]);
  64. format(str, sizeof(str), "Diler %s.\n{FFFFFF}Koristite /diler za kupovinu.", DilerInfo[ id ][ dIme ]);
  65. DilerLabel[ i ] = Create3DTextLabel(str, 0x0077C7FF, DilerInfo[ id ][ dX ], DilerInfo[ id ][ dY ], DilerInfo[ id ][ dZ ], 10.0, DilerInfo[ id ][ dVW ], 0);
  66.  
  67. Iter_Add(ServerDileri, id);
  68. }
  69. }
  70. return 1;
  71. }
  72. public OnGameModeInit() {
  73.  
  74. new MySQLOpt: option_id = mysql_init_options();
  75. g_SQL = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD, MYSQL_DATABASE, option_id);
  76. if (g_SQL == MYSQL_INVALID_HANDLE || mysql_errno(g_SQL) != 0)
  77. {
  78. print("MySQL konekcija neuspesna. Proverite podatke i databazu");
  79. SendRconCommand("exit");
  80. return 1;
  81. }
  82.  
  83. print("MySQL konekcija, uspesna");
  84. SetupDilerTable();
  85. mysql_tquery(g_SQL, "SELECT * FROM `dileri`", "LoadDilere", "");
  86. return 1;
  87. }
  88. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
  89.  
  90. switch(dialogid) {
  91. case DIALOG_DILERBUY: {
  92. if(!response) return 1;
  93. switch(listitem) {
  94. case 0: {
  95. GivePlayerWeapon(playerid, 31, 50);
  96. GivePlayerMoney(playerid, -CENA_M4);
  97. SendClientMessage(playerid, -1, "Kupili ste M4.");
  98. }
  99. case 1: {
  100. GivePlayerWeapon(playerid, 30, 50);
  101. GivePlayerMoney(playerid, -CENA_AK47);
  102. SendClientMessage(playerid, -1, "Kupili ste AK-47.");
  103. }
  104. case 2: {
  105. GivePlayerWeapon(playerid, 24, 30);
  106. GivePlayerMoney(playerid, -CENA_DEAGLE);
  107. SendClientMessage(playerid, -1, "Kupili ste Deagle.");
  108. }
  109. case 3: {
  110. GivePlayerWeapon(playerid, 34, 20);
  111. GivePlayerMoney(playerid, -CENA_SNIPER);
  112. SendClientMessage(playerid, -1, "Kupili ste Sniper.");
  113. }
  114. case 4: {
  115. SetPlayerArmour(playerid, 100);
  116. GivePlayerMoney(playerid, -CENA_ARMOR);
  117. SendClientMessage(playerid, -1, "Kupili ste Armor.");
  118. }
  119. }
  120. }
  121. }
  122. return 1;
  123. }
  124.  
  125. CMD:kreirajdilera(playerid, params[]) {
  126.  
  127. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "Niste RCON Admin.");
  128. new dskin, dime[ 30 ], Float:X, Float:Y, Float:Z, Float:A, str[ 100 ], i = Iter_Free(ServerDileri), query[ 500 ];
  129. if(sscanf(params, "ds[30]", dskin, dime)) return SendClientMessage(playerid, -1, "/kreirajdilera [ID Skina] [Ime dilera]");
  130. GetPlayerPos(playerid, X,Y,Z); GetPlayerFacingAngle(playerid, A);
  131. format(str, sizeof(str), "Diler %s.\n{FFFFFF}Koristite /diler za kupovinu.", dime);
  132. DilerLabel[ i ] = Create3DTextLabel(str, 0x0077C7FF, X,Y,Z, 10.0, GetPlayerVirtualWorld(playerid), 0);
  133. DilerInfo[ i ][ dID ] = CreateActor(dskin, X,Y,Z,A);
  134. SetActorVirtualWorld(DilerInfo[ i ][ dID ], GetPlayerVirtualWorld(playerid));
  135. SetPlayerPos(playerid, X+2, Y+2, Z);
  136. DilerInfo[ i ][ dX ] = X;
  137. DilerInfo[ i ][ dY ] = Y;
  138. DilerInfo[ i ][ dZ ] = Z;
  139. DilerInfo[ i ][ dA ] = A;
  140. DilerInfo[ i ][ dSkin ] = dskin;
  141. DilerInfo[ i ][ dVW ] = GetPlayerVirtualWorld(playerid);
  142. DilerInfo[ i ][ dMySQLID ] = i;
  143. DilerInfo[ i ][ dIme ] = dime;
  144. mysql_format(g_SQL, query, sizeof query, "INSERT INTO `dileri` (`id`, `X`, `Y`, `Z`, `A`, `Skin`, `VW`, `Ime`) VALUES ('%d', '%f', '%f', '%f', '%f', '%d', '%d', '%s')",
  145. i, X,Y,Z,A, dskin, GetPlayerVirtualWorld(playerid), dime);
  146. mysql_tquery(g_SQL, query);
  147. Iter_Add(ServerDileri, i);
  148. format(str, sizeof(str), "Uspesno ste krerali dilera ID %d %s.", i, dime);
  149. SendClientMessage(playerid, -1, str);
  150. return 1;
  151. }
  152. CMD:diler(playerid, params[]) {
  153.  
  154. new str[ 150 ];
  155. if(GetNearestDiler(playerid) == -1) return SendClientMessage(playerid, -1, "Niste blizu dilera.");
  156. format(str, sizeof(str), "M4 (%d$ 50 metkova)\nAK-47 (%d$ 50 metkova)\nDeagle (%d$ 30 metkova)\nSniper (%d$ 20 metkova)\nArmor (%d$ full)", CENA_M4, CENA_AK47, CENA_DEAGLE, CENA_SNIPER, CENA_ARMOR);
  157. ShowPlayerDialog(playerid, DIALOG_DILERBUY, DIALOG_STYLE_LIST, "Diler", str, "Izaberi","Izlaz");
  158. return 1;
  159. }
  160.  
  161. GetNearestDiler( playerid ) {
  162.  
  163. for( new i = 1; i < MAX_DILERI; i++) {
  164.  
  165. if( IsPlayerInRangeOfPoint( playerid, 5.0, DilerInfo[ i ][ dX ], DilerInfo[ i ][ dY ], DilerInfo[ i ][ dZ ] ) ) { return i; }
  166. }
  167. return -1;
  168. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement