Advertisement
Privies

Dynamical-Teleports

Apr 30th, 2014
367
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 13.49 KB | None | 0 0
  1. #define FILTERSCRIPT
  2. #include <a_samp>
  3. #include <a_mysql>
  4. #include <sscanf2>
  5.  
  6. // -----MYSQL подключение-----
  7. #define SQL_HOST "Хост"
  8. #define SQL_USER "Имя пользователя"
  9. #define SQL_PASS "Пароль"
  10. #define SQL_DB "БД"
  11.  
  12.  
  13. // -----Номера Диалогов-----
  14. #define DIALOG_TPMENU 1
  15. #define DIALOG_TPCREATE 2
  16. #define DIALOG_TPSHOW 3
  17. #define DIALOG_TPDELETE 4
  18. #define DIALOG_TPMAKECHANGE 5
  19. #define DIALOG_TPGUN 6
  20. #define DIALOG_GUNCONT 7
  21. #define DIALOG_TPСAR 8
  22. #define DIALOG_CARCONT 9
  23. #define DIALOG_TPHP 10
  24. #define DIALOG_HPCONT 11
  25. #define DIALOG_TPARM 12
  26. #define DIALOG_ARMCONT 13
  27. #define DIALOG_TPSKIN 14
  28. #define DIALOG_SKINCONT 15
  29.  
  30.  
  31. new lol[47];
  32. new DIALOG;
  33. new Name[24];
  34.  
  35. public OnFilterScriptInit()
  36. {
  37. mysql_debug(1);
  38. ConnectMySQL();
  39. print("\n--------------------------------------");
  40. print("Dynamical Teleports by Privies");
  41. print("--------------------------------------\n");
  42. return 1;
  43. }
  44.  
  45. public OnFilterScriptExit()
  46. {
  47.     return 1;
  48. }
  49.  
  50.  
  51. public OnPlayerCommandText(playerid, cmdtext[])
  52. {
  53. if (strcmp("/tp", cmdtext, true, 10) == 0)
  54. {
  55. ShowPlayerDialog(playerid, DIALOG_TPMENU,DIALOG_STYLE_LIST,"Меню телепорта","Создать телепорт\nТелепорты\nМодифицировать телепорт\n{FF0000}Удалить телепорт","Далее","Выход");
  56. return 1;
  57. }
  58. return 0;
  59. }
  60.  
  61. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  62. {
  63. if(dialogid == DIALOG_TPMENU)
  64. {
  65. if(listitem == 0)
  66. {
  67. if(response)
  68. {
  69. ShowPlayerDialog(playerid, DIALOG_TPCREATE,DIALOG_STYLE_INPUT,"Создание телепорта","Координаты телепорта находятся под вами, так что если вы желате выбрать другое место нажмите 'Выход'\n Введите название телепорта:","Далее","Выход");
  70. }
  71. }
  72. if(listitem == 1)
  73. {
  74. if(response)
  75. {
  76. DIALOG = DIALOG_TPSHOW;
  77. lol = "Выберите телепорт";
  78. Search(playerid);
  79. }
  80. }
  81. if(listitem == 2)
  82. {
  83. if(response)
  84. {
  85. ShowPlayerDialog(playerid, DIALOG_TPMAKECHANGE,DIALOG_STYLE_LIST,"Модицикация телепорта","Выдавать оружие\nСадить в машину\nВыдавать Жизни\nВыдавать Броню\nМенять скин","Далее","Выход");
  86. }
  87. }
  88. if(listitem == 3)
  89. {
  90. if(response)
  91. {
  92. DIALOG = DIALOG_TPDELETE;
  93. lol = "Выберите телепорт, который вы хотите удалить!";
  94. Search(playerid);
  95. }
  96. }
  97. }
  98. if(dialogid == DIALOG_TPMAKECHANGE)
  99. {
  100. if(listitem == 0)
  101. {
  102. DIALOG = DIALOG_TPGUN;
  103. lol = "Выберите телепорт, который вы хотите изменить!";
  104. Search(playerid);
  105. }
  106. if(listitem == 1)
  107. {
  108. DIALOG = DIALOG_TPСAR;
  109. lol = "Выберите телепорт, который вы хотите изменить!";
  110. Search(playerid);
  111. }
  112. if(listitem == 2)
  113. {
  114. if(response)
  115. {
  116. DIALOG = DIALOG_TPHP;
  117. lol = "Выберите телепорт, который вы хотите изменить!";
  118. Search(playerid);
  119. }
  120. }
  121. if(listitem == 3)
  122. {
  123. if(response)
  124. {
  125. DIALOG = DIALOG_TPARM;
  126. lol = "Выберите телепорт, который вы хотите изменить!";
  127. Search(playerid);
  128. }
  129. }
  130. if(listitem == 4)
  131. {
  132. if(response)
  133. {
  134. DIALOG = DIALOG_TPSKIN;
  135. lol = "Выберите телепорт, который вы хотите изменить!";
  136. Search(playerid);
  137. }
  138. }
  139. }
  140. if(dialogid == DIALOG_TPHP)
  141. {
  142. if(response)
  143. {
  144. ShowPlayerDialog(playerid, DIALOG_HPCONT,DIALOG_STYLE_INPUT,"Введите количество жизней","Введите количество жизни, которое будет даваться игроку","Далее","Выход");
  145. strmid(Name, inputtext, 0,24,24);
  146. }
  147. }
  148. if(dialogid == DIALOG_TPARM)
  149. {
  150. if(response)
  151. {
  152. ShowPlayerDialog(playerid, DIALOG_ARMCONT,DIALOG_STYLE_INPUT,"Введите количество брони","Введите количество брони, которое будет даваться игроку","Далее","Выход");
  153. strmid(Name, inputtext, 0,24,24);
  154. }
  155. }
  156. if(dialogid == DIALOG_TPСAR)
  157. {
  158. if(response)
  159. {
  160. ShowPlayerDialog(playerid, DIALOG_CARCONT,DIALOG_STYLE_INPUT,"Введите ID авто","Введите ID авто в которое будет помещаться игрок","Далее","Выход");
  161. strmid(Name, inputtext, 0,24,24);
  162. }
  163. }
  164. if(dialogid == DIALOG_TPGUN)
  165. {
  166. if(response)
  167. {
  168. ShowPlayerDialog(playerid, DIALOG_GUNCONT,DIALOG_STYLE_INPUT,"Введите ID оружия","Введите ID оружия и количество патронов через точку\nПример: 22.500","Далее","Выход");
  169. strmid(Name, inputtext, 0,24,24);
  170. }
  171. }
  172. if(dialogid == DIALOG_TPSKIN)
  173. {
  174. if(response)
  175. {
  176. ShowPlayerDialog(playerid, DIALOG_SKINCONT,DIALOG_STYLE_INPUT,"Введите ID скина","Введите ID скина который будет меняться при телепорте","Далее","Выход");
  177. strmid(Name, inputtext, 0,24,24);
  178. }
  179. }
  180. if(dialogid == DIALOG_HPCONT)
  181. {
  182. if(response)
  183. {
  184. if(strlen(inputtext) > 3) return ShowPlayerDialog(playerid, DIALOG_HPCONT,DIALOG_STYLE_INPUT,"Ошибка: Неверное количество жизней!","Введите количество жизни, которое будет даваться игроку","Далее","Выход"), ShowPlayerDialog(playerid, DIALOG_HPCONT,DIALOG_STYLE_INPUT,"Введите количество жизней","Введите количество жизни, которое будет даваться игроку","Далее","Выход");
  185. if(strval(inputtext) > 100) return ShowPlayerDialog(playerid, DIALOG_HPCONT,DIALOG_STYLE_INPUT,"Ошибка: Неверное количество жизней!","Введите количество жизни, которое будет даваться игроку","Далее","Выход"), ShowPlayerDialog(playerid, DIALOG_HPCONT,DIALOG_STYLE_INPUT,"Введите количество жизней","Введите количество жизни, которое будет даваться игроку","Далее","Выход");
  186. new query[100];
  187. format(query, sizeof(query), "UPDATE `TP` SET `Health` = '%s' WHERE `Name` = '%s'",inputtext, Name);
  188. mysql_query(query);
  189. mysql_free_result();
  190. }
  191. }
  192. if(dialogid == DIALOG_ARMCONT)
  193. {
  194. if(response)
  195. {
  196. if(strlen(inputtext) > 3) return ShowPlayerDialog(playerid, DIALOG_ARMCONT,DIALOG_STYLE_INPUT,"Ошибка: Неверное количество брони!","Введите количество брони, которое будет даваться игроку","Далее","Выход"), ShowPlayerDialog(playerid, DIALOG_HPCONT,DIALOG_STYLE_INPUT,"Введите количество жизней","Введите количество жизни, которое будет даваться игроку","Далее","Выход");
  197. if(strval(inputtext) > 100) return ShowPlayerDialog(playerid, DIALOG_ARMCONT,DIALOG_STYLE_INPUT,"Ошибка: Неверное количество брони!","Введите количество брони, которое будет даваться игроку","Далее","Выход"), ShowPlayerDialog(playerid, DIALOG_HPCONT,DIALOG_STYLE_INPUT,"Введите количество жизней","Введите количество жизни, которое будет даваться игроку","Далее","Выход");
  198. new query[100];
  199. format(query, sizeof(query), "UPDATE `TP` SET `Armour` = '%s' WHERE `Name` = '%s'",inputtext, Name);
  200. mysql_query(query);
  201. mysql_free_result();
  202. }
  203. }
  204. if(dialogid == DIALOG_CARCONT)
  205. {
  206. if(response)
  207. {
  208. if(strlen(inputtext) > 3) return ShowPlayerDialog(playerid, DIALOG_CARCONT,DIALOG_STYLE_INPUT,"Ошибка: Неверное ID авто!","Введите ID авто в которое будет помещаться игрок","Далее","Выход"), ShowPlayerDialog(playerid, DIALOG_HPCONT,DIALOG_STYLE_INPUT,"Введите количество жизней","Введите количество жизни, которое будет даваться игроку","Далее","Выход");
  209. if(strval(inputtext) < 400 || strval(inputtext) > 611) return ShowPlayerDialog(playerid, DIALOG_SKINCONT,DIALOG_STYLE_INPUT,"Ошибка: Неверное ID авто!","Введите ID авто в которое будет помещаться игрок","Далее","Выход"), ShowPlayerDialog(playerid, DIALOG_HPCONT,DIALOG_STYLE_INPUT,"Введите количество жизней","Введите количество жизни, которое будет даваться игроку","Далее","Выход");
  210. new query[100];
  211. format(query, sizeof(query), "UPDATE `TP` SET `Car` = '%s' WHERE `Name` = '%s'",inputtext, Name);
  212. mysql_query(query);
  213. mysql_free_result();
  214. }
  215. }
  216. if(dialogid == DIALOG_SKINCONT)
  217. {
  218. if(response)
  219. {
  220. if(strlen(inputtext) > 3) return ShowPlayerDialog(playerid, DIALOG_SKINCONT,DIALOG_STYLE_INPUT,"Ошибка: Неверное ID скина!","Введите ID скина который будет меняться при телепорте","Далее","Выход"), ShowPlayerDialog(playerid, DIALOG_HPCONT,DIALOG_STYLE_INPUT,"Введите количество жизней","Введите количество жизни, которое будет даваться игроку","Далее","Выход");
  221. if(strval(inputtext) < 1 || strval(inputtext) > 299) return ShowPlayerDialog(playerid, DIALOG_SKINCONT,DIALOG_STYLE_INPUT,"Ошибка: Неверное ID скина!","Введите ID скина который будет меняться при телепорте","Далее","Выход"), ShowPlayerDialog(playerid, DIALOG_HPCONT,DIALOG_STYLE_INPUT,"Введите количество жизней","Введите количество жизни, которое будет даваться игроку","Далее","Выход");
  222. new query[100];
  223. format(query, sizeof(query), "UPDATE `TP` SET `Skin` = '%s' WHERE `Name` = '%s'",inputtext, Name);
  224. mysql_query(query);
  225. mysql_free_result();
  226. }
  227. }
  228. if(dialogid == DIALOG_GUNCONT)
  229. {
  230. if(response)
  231. {
  232. if(strfind(inputtext,".") && strlen(inputtext) > 6) return ShowPlayerDialog(playerid, DIALOG_GUNCONT,DIALOG_STYLE_INPUT,"Ошибка: Неверное количество жизней!","Введите ID оружия и количество патронов через точку\nПример: 22.500\n Чтобы забрать всё оружие у игроков введите 0.0","Далее","Выход"), ShowPlayerDialog(playerid, DIALOG_HPCONT,DIALOG_STYLE_INPUT,"Введите количество жизней","Введите количество жизни, которое будет даваться игроку","Далее","Выход");
  233. new query[100];
  234. format(query, sizeof(query), "UPDATE `TP` SET `Gun` = '%s' WHERE `Name` = '%s'",inputtext, Name);
  235. mysql_query(query);
  236. mysql_free_result();
  237. }
  238. }
  239. if(dialogid == DIALOG_TPDELETE)
  240. {
  241. if(response)
  242. {
  243. new strr[100];
  244. format(strr, sizeof(strr), "DELETE FROM `TP` WHERE `Name` = '%s'", inputtext);
  245. mysql_query(strr);
  246. }
  247. }
  248. if(dialogid == DIALOG_TPSHOW)
  249. {
  250. if(response)
  251. {
  252. new query[1000], Float:x, Float:y, Float:z, Float:angle, result[500], gun[7], car, hp, arm, amount[7], skin;
  253. format(query, sizeof(query), "SELECT `Xcor`, `Ycor`, `Zcor`, `Angle`, `Car`, `Health`, `Skin`, `Armour`, `Gun` FROM `TP` WHERE `Name` = '%s'", inputtext);
  254. mysql_query(query);
  255. mysql_store_result();
  256. mysql_fetch_row_format(result, "|");
  257. sscanf(result, "p<|>ffffddddp<.>s[7]s[7]", x, y, z, angle, car, hp, arm, gun, amount);
  258. mysql_free_result();
  259. SetPlayerPos(playerid, x, y, z);
  260. SetPlayerFacingAngle(playerid, angle);
  261. if(strval(gun) > 0)
  262. {
  263. GivePlayerWeapon(playerid, strval(gun), strval(amount));
  264. }
  265. if(car > 0)
  266. {
  267. new TPCAR;
  268. TPCAR = CreateVehicle(car ,x, y, z, angle, 0, 0, 1800);
  269. PutPlayerInVehicle(playerid, TPCAR, 0);
  270. GetPlayerFacingAngle(playerid, angle);
  271. }
  272. if(hp > 0)
  273. {
  274. SetPlayerHealth(playerid, hp);
  275. }
  276. if(arm > 0)
  277. {
  278. SetPlayerArmour(playerid, arm);
  279. }
  280. if(skin > 0)
  281. {
  282. SetPlayerSkin(playerid, skin);
  283. }
  284. }
  285. }
  286. if(dialogid == DIALOG_TPCREATE)
  287. {
  288. if(response)
  289. {
  290. if(CheckName(inputtext)) return ShowPlayerDialog(playerid, DIALOG_TPCREATE,DIALOG_STYLE_INPUT,"Данное название занято","Координаты телепорта находятся под вами, так что если вы желате выбрать другое место нажмите 'Выход'\n Введите название телепорта:","Далее","Выход");
  291. new query[500];
  292. new Float:x, Float:y, Float:z, Float:angle;
  293. GetPlayerFacingAngle(playerid, angle);
  294. GetPlayerPos(playerid, x, y, z);
  295. format(query, sizeof(query), "INSERT INTO `TP` (`Name`, `Xcor`, `Ycor`, `Zcor`, `Angle`) VALUE ('%s','%f','%f','%f', '%f')", inputtext, x, y, z, angle);
  296. mysql_query(query);
  297. mysql_free_result();
  298. }
  299. }
  300. return 1;
  301. }
  302. stock ConnectMySQL() {
  303. mysql_connect(SQL_HOST, SQL_USER, SQL_DB, SQL_PASS); }
  304.  
  305. stock Search(playerid) {
  306. mysql_query("SELECT `Name` FROM TP");
  307. mysql_store_result();
  308. new rows = mysql_num_rows();
  309. new mr[1024];
  310. new sr[32];
  311. for(new i = 0; i < rows; i++)
  312. {
  313. mysql_fetch_row(sr);
  314. format(sr,32,"%s\n", sr);
  315. strcat(mr, sr);
  316. }
  317. mysql_free_result();
  318. ShowPlayerDialog(playerid,DIALOG,DIALOG_STYLE_LIST,lol,mr,"Выбрать","Выход"); }
  319. stock CheckName(inputtext[])
  320. {
  321. new Query[100];
  322. format(Query, sizeof(Query), "SELECT * FROM `TP` WHERE `Name` = '%s';", inputtext);
  323. mysql_query(Query);
  324. mysql_store_result();
  325. if(mysql_num_rows()) return 1;
  326. return 0;
  327. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement