Pawn - Prison Gamemode


SUBMITTED BY: Grab

DATE: Oct. 5, 2015, 12:36 p.m.

FORMAT: C++

SIZE: 40.3 kB

HITS: 637

  1. #include <a_samp>
  2. #include <a_mysql>
  3. #include <md5>
  4. #include <ocmd>
  5. #define SQL_HOST "127.0.0.1"
  6. #define SQL_NAME "root"
  7. #define SQL_PASS "sa-mp.de"
  8. #define SQL_DATA "samp"
  9. new Text:Watermark;
  10. new Handle;
  11. new Connection;
  12. new JailDoor[12];
  13. new JailDoorOpen = true;
  14. forward SQL_Connect(ip[], name[], pass[], data[]);
  15. forward SQL_CheckAccount(playerid);
  16. forward SQL_CheckPassword(playerid);
  17. forward SQL_LoadAccount(playerid);
  18. forward SQL_SaveAccount(playerid);
  19. forward SQL_LoadSpawnGuns(playerid);
  20. forward SpawnOfficer(playerid);
  21. forward SpawnPrisoner(playerid);
  22. forward Payday();
  23. forward SpawnInJail(playerid);
  24. forward OpenJails(playerid);
  25. forward CentralMenu(playerid);
  26. new CopSkins[] =
  27. {
  28. 280,
  29. 281,
  30. 282,
  31. 283,
  32. 288,
  33. 284,
  34. 285,
  35. 286
  36. };
  37. new PrisonerSkins[] =
  38. {
  39. 95,
  40. 107,
  41. 110,
  42. 116,
  43. 125,
  44. 254,
  45. 268,
  46. 260
  47. };
  48. enum pPlayerInfo
  49. {
  50. Confirmed,
  51. Time,
  52. CopSkin,
  53. PrisonerSkin,
  54. Officer,
  55. PaydayTime,
  56. Upgrade,
  57. Level,
  58. Money,
  59. Skin,
  60. SkinCount,
  61. Melee,
  62. Pistol,
  63. InJail,
  64. Armor
  65. };
  66. new pInfo[MAX_PLAYERS][pPlayerInfo];
  67. enum pJailInfo
  68. {
  69. Started,
  70. Time,
  71. Players,
  72. Prisoners,
  73. Officers
  74. };
  75. new pJail[pJailInfo];
  76. enum
  77. {
  78. DIALOG_REGISTER,
  79. DIALOG_LOGIN,
  80. DIALOG_WELCOME,
  81. DIALOG_TEAM,
  82. DIALOG_COPCLOTHES,
  83. DIALOG_WEAPONS,
  84. DIALOG_LOADING,
  85. DIALOG_HANDWEAPS,
  86. DIALOG_CENTRAL,
  87. DIALOG_MELEEWEAPS,
  88. DIALOG_ARMORWEAPS
  89. };
  90. main(){}
  91. new Float:CopBaseSpawn[][] =
  92. {
  93. {280.5527,171.3673,1007.1719,322.5851},
  94. {287.2065,169.0052,1007.1719,359.6632},
  95. {290.5421,168.8926,1007.1719,359.6632},
  96. {296.0088,172.7228,1007.1719,49.6926}
  97. };
  98. new Float:PrisonerBaseSpawn[][] =
  99. {
  100. {1726.8997,-1670.5448,22.6151,14.9442},
  101. {1730.8209,-1666.3082,22.6094,69.5372},
  102. {1728.5966,-1668.8352,22.6094,43.1126},
  103. {1728.1583,-1644.2771,20.2268,133.9800}
  104. };
  105. new Float:CopSpawnJail[][] =
  106. {
  107. {194.3630,-179.2462,1.5752,324.9875},
  108. {194.2906,-176.8384,1.5752,324.9875},
  109. {196.4540,-176.4042,1.5752,324.9875},
  110. {198.0299,-177.7151,1.5752,324.9875},
  111. {198.5843,-180.2222,1.5752,324.9875},
  112. {198.7825,-182.4286,1.5752,324.9875},
  113. {199.0525,-185.0829,1.5752,324.9875},
  114. {199.7361,-186.8750,1.5752,324.9875}
  115. };
  116. new Float:PrisonerSpawnJail[][] =
  117. {
  118. {172.0425,-94.4443,1.5752,180.1199},
  119. {172.5921,-120.7576,1.5752,357.9266},
  120. {195.5302,-120.7284,1.5752,0.7059},
  121. {195.2871,-94.6067,1.5752,178.8259},
  122. {195.7892,-94.9398,4.8965,168.3409},
  123. {172.0609,-95.2879,4.8965,179.7428},
  124. {158.9294,-107.5369,4.8965,269.4614},
  125. {172.2350,-120.0110,4.8965,357.7817},
  126. {208.9480,-107.5774,4.8965,85.6376},
  127. {195.4874,-120.6410,4.8965,0.4740}
  128. };
  129. new Float:DoorPos[][] =
  130. {
  131. {173.5996100,-119.5996100,0.3000000,90.0000000,179.9950000,270.0000000},
  132. {172.2300000,-119.6000000,0.3000000,90.0000000,0.0000000,270.0000000},
  133. {170.9500000,-119.6000000,0.3000000,90.0000000,0.0000000,270.0000000},
  134. {196.8000000,-119.6000000,0.3000000,90.0000000,179.9950000,270.0000000},
  135. {196.8000000,-95.6000000,0.3000000,90.0000000,179.9950000,270.0000000},
  136. {194.1300000,-119.6000000,0.3000000,90.0000000,0.0000000,270.0000000},
  137. {195.5000000,-119.5996100,0.3000000,90.0000000,179.9950000,270.0000000},
  138. {195.5000000,-95.6000000,0.3000000,90.0000000,179.9950000,270.0000000},
  139. {170.8999900,-95.6000000,0.3000000,90.0000000,0.0000000,270.0000000},
  140. {194.0996100,-95.5996100,0.3000000,90.0000000,0.0000000,270.0000000},
  141. {172.2000000,-95.6000000,0.3000000,90.0000000,0.0000000,270.0000000},
  142. {173.6000100,-95.6000000,0.3000000,90.0000000,180.0000000,270.0000000}
  143. };
  144. public OnGameModeInit()
  145. {
  146. DisableInteriorEnterExits();
  147. SetNameTagDrawDistance(30.0);
  148. ShowPlayerMarkers(PLAYER_MARKERS_MODE_OFF);
  149. SQL_Connect(SQL_HOST, SQL_NAME, SQL_PASS, SQL_DATA);
  150. SetGameModeText("German Prison Break");
  151. AddPlayerClass(0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0);
  152. Watermark = TextDrawCreate(522.000000, 4.000000, "German ~r~Prison Break");
  153. TextDrawBackgroundColor(Watermark, 255);
  154. TextDrawFont(Watermark, 2);
  155. TextDrawLetterSize(Watermark, 0.240000, 1.399999);
  156. TextDrawColor(Watermark, -1);
  157. TextDrawSetOutline(Watermark, 0);
  158. TextDrawSetProportional(Watermark, 1);
  159. TextDrawSetShadow(Watermark, 1);
  160. SetTimer("Payday", 1000 * 60, true);
  161. /* Cop Clothes */
  162. CreatePickup(1275, 1, 254.4144, 190.5917, 1008.1719, -1);
  163. Create3DTextLabel("Kleiderschrank (/kleidung)\nPreis: $1500", 0x0091FFFF, 254.4144, 190.5917, 1008.1719, 20.0, 0, 1);
  164. /* Prisoner Clothes */
  165. CreatePickup(1275, 1, 1712.3420,-1640.2197,20.2239, -1);
  166. Create3DTextLabel("Kleiderschrank (/kleidung)\nPreis: $1500", 0x0091FFFF, 1712.3420,-1640.2197,20.2239, 20.0, 0, 1);
  167. /* Waffenladen Cops */
  168. CreatePickup(1247, 1, 268.2095,186.0142,1008.1719, -1);
  169. Create3DTextLabel("Spawnequipment (/spawnequip)", 0xCC974DFF, 268.2095,186.0142,1008.1719, 20.0, 0, 1);
  170. /* Jail Enter Cop */
  171. CreatePickup(1318, 1, 238.7445,139.4836,1003.0234, -1);
  172. Create3DTextLabel("Beitritt zum Gefängnis! (/enterjail)", 0x00A300FF, 238.7445,139.4836,1003.0234, 20.0, 0, 1);
  173. /* Prisoner Enter Cop */
  174. CreatePickup(1318, 1, 1701.3378,-1667.9337,20.2188, -1);
  175. Create3DTextLabel("Beitritt zum Gefängnis! (/enterjail)", 0x00A300FF, 1701.3378, -1667.9337, 20.2188, 20.0, 0, 1);
  176. /* Controlcenter - Jail */
  177. CreatePickup(1239, 1, 220.5488,-174.4541,5.7925, 0);
  178. Create3DTextLabel("Zentrale (/zentrale)", 0x0097FFFF, 220.5488,-174.4541,5.7925, 20.0, 0, 1);
  179. return 1;
  180. }
  181. public OnGameModeExit()
  182. {
  183. return 1;
  184. }
  185. public OnPlayerRequestClass(playerid, classid)
  186. {
  187. if(!Connection)
  188. Kick(playerid);
  189. new strQuery[256];
  190. mysql_format(Handle, strQuery, sizeof(strQuery), "SELECT * FROM accounts WHERE name='%s' LIMIT 1", GetUsername(playerid));
  191. mysql_tquery(Handle, strQuery, "SQL_CheckAccount", "i", playerid);
  192. return 1;
  193. }
  194. public OnPlayerConnect(playerid)
  195. {
  196. SetPlayerColor(playerid, 0xFFFFFFFF);
  197. RemoveBuildingForPlayer(playerid, 13201, 207.8047, -191.8438, 0.5781, 0.25);
  198. RemoveBuildingForPlayer(playerid, 13292, 166.6172, -106.5781, 4.4531, 0.25);
  199. RemoveBuildingForPlayer(playerid, 13293, 201.0938, -106.5781, 4.4531, 0.25);
  200. RemoveBuildingForPlayer(playerid, 13493, 224.4922, -68.2578, 5.3750, 0.25);
  201. RemoveBuildingForPlayer(playerid, 1438, 206.3516, -162.6328, 0.5469, 0.25);
  202. RemoveBuildingForPlayer(playerid, 1308, 193.1172, -153.0000, 0.7031, 0.25);
  203. RemoveBuildingForPlayer(playerid, 780, 204.9375, -157.5703, 0.8438, 0.25);
  204. RemoveBuildingForPlayer(playerid, 1294, 185.7969, -138.8359, 5.0313, 0.25);
  205. RemoveBuildingForPlayer(playerid, 700, 196.3438, -131.0313, 1.0391, 0.25);
  206. RemoveBuildingForPlayer(playerid, 700, 154.7188, -129.1719, 1.1953, 0.25);
  207. RemoveBuildingForPlayer(playerid, 1308, 143.4531, -125.6563, 0.7031, 0.25);
  208. RemoveBuildingForPlayer(playerid, 781, 164.7266, -130.1953, 0.4141, 0.25);
  209. RemoveBuildingForPlayer(playerid, 781, 176.9766, -131.1406, 0.4141, 0.25);
  210. RemoveBuildingForPlayer(playerid, 700, 149.3594, -120.8359, 1.0234, 0.25);
  211. RemoveBuildingForPlayer(playerid, 1536, 207.5000, -113.1250, 3.8828, 0.25);
  212. RemoveBuildingForPlayer(playerid, 1345, 196.7109, -121.4063, 1.2734, 0.25);
  213. RemoveBuildingForPlayer(playerid, 781, 146.0625, -112.0391, 0.4141, 0.25);
  214. RemoveBuildingForPlayer(playerid, 1294, 224.4219, -173.9453, 5.0313, 0.25);
  215. RemoveBuildingForPlayer(playerid, 773, 218.9063, -167.9922, 0.5391, 0.25);
  216. RemoveBuildingForPlayer(playerid, 700, 209.5469, -131.1797, 1.0391, 0.25);
  217. RemoveBuildingForPlayer(playerid, 1308, 222.4766, -137.1250, 0.6172, 0.25);
  218. RemoveBuildingForPlayer(playerid, 781, 220.6250, -134.5859, 0.4141, 0.25);
  219. RemoveBuildingForPlayer(playerid, 781, 220.6953, -124.3203, 0.4141, 0.25);
  220. RemoveBuildingForPlayer(playerid, 700, 209.7656, -123.0547, 1.0391, 0.25);
  221. RemoveBuildingForPlayer(playerid, 1294, 224.4063, -112.0000, 5.0313, 0.25);
  222. RemoveBuildingForPlayer(playerid, 12938, 201.0938, -106.5781, 4.4531, 0.25);
  223. RemoveBuildingForPlayer(playerid, 12940, 166.6172, -106.5781, 4.4531, 0.25);
  224. RemoveBuildingForPlayer(playerid, 955, 201.0156, -107.6172, 0.8984, 0.25);
  225. RemoveBuildingForPlayer(playerid, 764, 186.4141, -107.2578, 0.7500, 0.25);
  226. RemoveBuildingForPlayer(playerid, 766, 180.7734, -108.8047, 0.6484, 0.25);
  227. RemoveBuildingForPlayer(playerid, 1294, 141.1953, -107.0078, 5.0313, 0.25);
  228. RemoveBuildingForPlayer(playerid, 13450, 183.8516, -107.6094, 3.0391, 0.25);
  229. RemoveBuildingForPlayer(playerid, 1345, 165.9219, -107.6328, 1.2734, 0.25);
  230. RemoveBuildingForPlayer(playerid, 781, 220.9375, -107.3672, 0.4141, 0.25);
  231. RemoveBuildingForPlayer(playerid, 781, 146.4375, -102.9766, 0.4141, 0.25);
  232. RemoveBuildingForPlayer(playerid, 781, 221.0000, -97.1016, 0.4141, 0.25);
  233. RemoveBuildingForPlayer(playerid, 700, 147.8438, -95.6875, 1.0234, 0.25);
  234. RemoveBuildingForPlayer(playerid, 1345, 182.9922, -93.6172, 1.2734, 0.25);
  235. RemoveBuildingForPlayer(playerid, 1345, 171.4453, -93.4453, 1.2734, 0.25);
  236. RemoveBuildingForPlayer(playerid, 700, 155.6797, -85.4375, 1.1953, 0.25);
  237. RemoveBuildingForPlayer(playerid, 1308, 222.8359, -86.1016, 0.7031, 0.25);
  238. RemoveBuildingForPlayer(playerid, 1308, 148.0469, -82.2422, 0.7031, 0.25);
  239. RemoveBuildingForPlayer(playerid, 781, 165.1719, -82.9766, 0.4141, 0.25);
  240. RemoveBuildingForPlayer(playerid, 781, 175.6250, -82.8125, 0.4141, 0.25);
  241. RemoveBuildingForPlayer(playerid, 781, 188.7266, -83.0313, 0.4141, 0.25);
  242. RemoveBuildingForPlayer(playerid, 781, 201.8125, -83.2422, 0.4141, 0.25);
  243. RemoveBuildingForPlayer(playerid, 1294, 166.4297, -80.2109, 5.0313, 0.25);
  244. RemoveBuildingForPlayer(playerid, 1294, 208.0547, -80.2109, 5.0313, 0.25);
  245. RemoveBuildingForPlayer(playerid, 13436, 252.3281, -28.8906, 9.1094, 0.25);
  246. RemoveBuildingForPlayer(playerid, 1522, 201.9219, -201.5234, 0.5625, 0.25);
  247. RemoveBuildingForPlayer(playerid, 1522, 204.9531, -201.5000, 0.5625, 0.25);
  248. RemoveBuildingForPlayer(playerid, 13437, 210.9375, -245.1406, 10.0234, 0.25);
  249. RemoveBuildingForPlayer(playerid, 12924, 207.8047, -191.8438, 0.5781, 0.25);
  250. RemoveBuildingForPlayer(playerid, 1308, 225.8516, -195.8125, 0.6172, 0.25);
  251. RemoveBuildingForPlayer(playerid, 1688, 198.7266, -188.0781, 7.5703, 0.25);
  252. RemoveBuildingForPlayer(playerid, 1691, 194.2188, -188.7813, 6.9766, 0.25);
  253. RemoveBuildingForPlayer(playerid, 1687, 209.3750, -187.6172, 7.3828, 0.25);
  254. RemoveBuildingForPlayer(playerid, 1440, 196.1953, -180.7969, 1.0625, 0.25);
  255. return 1;
  256. }
  257. public OnPlayerDisconnect(playerid, reason)
  258. {
  259. SQL_SaveAccount(playerid);
  260. pInfo[playerid][Confirmed] = false;
  261. pInfo[playerid][Time] = false;
  262. pInfo[playerid][CopSkin] = false;
  263. pInfo[playerid][PrisonerSkin] = false;
  264. pInfo[playerid][Officer] = false;
  265. pInfo[playerid][PaydayTime] = false;
  266. pInfo[playerid][Upgrade] = false;
  267. pInfo[playerid][Level] = false;
  268. pInfo[playerid][Money] = false;
  269. pInfo[playerid][Skin] = false;
  270. pInfo[playerid][SkinCount] = false;
  271. pInfo[playerid][Melee] = false;
  272. pInfo[playerid][Pistol] = false;
  273. pInfo[playerid][InJail] = false;
  274. pInfo[playerid][Armor] = false;
  275. if(IsPlayerJailed(playerid))
  276. {
  277. new Temp[256];
  278. pJail[Players]--;
  279. if(IsPlayerPrisoner(playerid))
  280. {
  281. pJail[Prisoners]--;
  282. format(Temp, sizeof(Temp), "{849CFF}** Gefangener %s hat das Spiel verlassen!", GetUsername(playerid));
  283. }
  284. else
  285. {
  286. format(Temp, sizeof(Temp), "{849CFF}** Wärter %s hat das Spiel verlassen!", GetUsername(playerid));
  287. pJail[Officers]--;
  288. }
  289. SendClientMessageToAll(-1, Temp);
  290. }
  291. return 1;
  292. }
  293. public OnPlayerSpawn(playerid)
  294. {
  295. if(IsPlayerLoggedIn(playerid))
  296. {
  297. if(pInfo[playerid][Officer])
  298. SpawnOfficer(playerid);
  299. else
  300. SpawnPrisoner(playerid);
  301. if(pInfo[playerid][InJail])
  302. SpawnInJail(playerid);
  303. }
  304. else
  305. {
  306. Kick(playerid);
  307. }
  308. return 1;
  309. }
  310. public OnPlayerDeath(playerid, killerid, reason)
  311. {
  312. return 1;
  313. }
  314. public OnVehicleSpawn(vehicleid)
  315. {
  316. return 1;
  317. }
  318. public OnVehicleDeath(vehicleid, killerid)
  319. {
  320. return 1;
  321. }
  322. public OnPlayerText(playerid, text[])
  323. {
  324. new Temp[256];
  325. if(IsPlayerPrisoner(playerid))
  326. {
  327. format(Temp, sizeof(Temp), "{FF6567}Gefangener %s:{FFFFFF} %s", GetUsername(playerid), text);
  328. SendClientMessage(playerid, -1, Temp);
  329. }
  330. else
  331. {
  332. format(Temp, sizeof(Temp), "{008CFF}Wärter %s:{FFFFFF} %s", GetUsername(playerid), text);
  333. SendClientMessage(playerid, -1, Temp);
  334. }
  335. return 0;
  336. }
  337. public OnPlayerCommandText(playerid, cmdtext[])
  338. {
  339. return 0;
  340. }
  341. ocmd:team(playerid, params[])
  342. {
  343. if(IsPlayerLoggedIn(playerid))
  344. {
  345. TogglePlayerSpectating(playerid, true);
  346. InterpolateCameraPos(playerid, 223.138931, -209.686340, 32.131401, 234.480102, -81.005691, 31.686792, 10000);
  347. InterpolateCameraLookAt(playerid, 220.834838, -206.901214, 28.676805, 230.885742, -83.180137, 28.975269, 10000);
  348. for(new i = 0; i < 20; i++)
  349. SendClientMessage(playerid, -1, " ");
  350. new Temp[256];
  351. format(Temp, sizeof(Temp), "{FFFFFF}Du musst nun auswählen in welchem Team du Spielen möchtest.\n");
  352. ShowPlayerDialog(playerid, DIALOG_TEAM, DIALOG_STYLE_MSGBOX, "Wähle dein Team!", Temp, "{008CFF}Wärter", "{FF6567}Gefangener");
  353. SetPlayerInterior(playerid, 0);
  354. }
  355. return 1;
  356. }
  357. ocmd:kleidung(playerid, params[])
  358. {
  359. if(IsPlayerLoggedIn(playerid))
  360. {
  361. if(IsPlayerInRangeOfPoint(playerid, 5.0, 254.4144, 190.5917, 1008.1719) || IsPlayerInRangeOfPoint(playerid, 5.0, 1712.3420,-1640.2197,20.2239) )
  362. {
  363. if(pInfo[playerid][Money] >= 1500)
  364. {
  365. if(IsPlayerPrisoner(playerid))
  366. {
  367. SetPlayerPos(playerid, 1726.6606,-1639.7579,23.7191);
  368. SetPlayerFacingAngle(playerid, 180);
  369. SetPlayerCameraPos(playerid, 1726.6815,-1642.1686,24.7657);
  370. SetPlayerCameraLookAt(playerid, 1726.6606,-1639.7579,23.7191, 0);
  371. }
  372. else
  373. {
  374. SetPlayerPos(playerid, 246.1158,186.0663,1008.1719);
  375. SetPlayerFacingAngle(playerid, 360);
  376. SetPlayerCameraPos(playerid, 246.0719,191.2205,1008.1719);
  377. SetPlayerCameraLookAt(playerid, 246.1158,186.0663,1008.1719, 0);
  378. }
  379. TogglePlayerControllable(playerid, false);
  380. CleanChat(playerid);
  381. pInfo[playerid][Money] -= 1500;
  382. RefreshMoney(playerid);
  383. SendClientMessage(playerid, -1, "Verwende die {FFFF00}'Maustasten'{FFFFFF} um dir einen Skin auszusuchen!");
  384. SendClientMessage(playerid, -1, "Mit {FFFF00}'ENTER'{FFFFFF} kannst du deine Auswahl bestätigen!");
  385. pInfo[playerid][Skin] = true;
  386. }
  387. else
  388. {
  389. SendClientMessage(playerid, -1, "{FF6768}Du benötigst mindestens $1500!");
  390. }
  391. }
  392. else
  393. {
  394. SendClientMessage(playerid, -1, "{FF6768}Du bist nicht in der nähe eines Kleiderschrank!");
  395. }
  396. }
  397. return 1;
  398. }
  399. ocmd:spawnequip(playerid, params[])
  400. {
  401. if(IsPlayerLoggedIn(playerid))
  402. {
  403. if(!IsPlayerPrisoner(playerid))
  404. {
  405. new Temp[256];
  406. format(Temp, sizeof(Temp), "Pistolen\nSchlagwaffen\nArmor", Temp);
  407. ShowPlayerDialog(playerid, DIALOG_WEAPONS, DIALOG_STYLE_TABLIST, "Spawnwaffen", Temp, "Bestätigen", "Beenden");
  408. }
  409. }
  410. return 1;
  411. }
  412. ocmd:enterjail(playerid, params[])
  413. {
  414. if(IsPlayerLoggedIn(playerid))
  415. {
  416. if(IsPlayerInRangeOfPoint(playerid, 5.0, 238.7445,139.4836,1003.0234) || IsPlayerInRangeOfPoint(playerid, 5.0, 1701.3378,-1667.9337,20.2188))
  417. {
  418. new Temp[256];
  419. pInfo[playerid][InJail] = true;
  420. SpawnInJail(playerid);
  421. pJail[Players]++;
  422. if(IsPlayerPrisoner(playerid))
  423. {
  424. pJail[Prisoners]++;
  425. format(Temp, sizeof(Temp), "{B5EE00}** Spieler %s ist als Gefangener beigetreten!", GetUsername(playerid));
  426. }
  427. else
  428. {
  429. pJail[Officers]++;
  430. format(Temp, sizeof(Temp), "{B5EE00}** Spieler %s ist als Wärter beigetreten!", GetUsername(playerid));
  431. }
  432. SendClientMessageToAll(-1, Temp);
  433. }
  434. else
  435. {
  436. SendClientMessage(playerid, -1, "{FF6768}Du befindest dich nicht in der nähe zum Einstieg in das Spiel!");
  437. }
  438. }
  439. return 1;
  440. }
  441. ocmd:exitjail(playerid, params[])
  442. {
  443. if(IsPlayerLoggedIn(playerid))
  444. {
  445. if(IsPlayerJailed(playerid))
  446. {
  447. new Temp[256];
  448. pInfo[playerid][InJail] = false;
  449. pJail[Players]--;
  450. if(IsPlayerPrisoner(playerid))
  451. {
  452. pJail[Prisoners]--;
  453. format(Temp, sizeof(Temp), "{849CFF}** Gefangener %s hat das Spiel verlassen!", GetUsername(playerid));
  454. SpawnPrisoner(playerid);
  455. }
  456. else
  457. {
  458. format(Temp, sizeof(Temp), "{849CFF}** Wärter %s hat das Spiel verlassen!", GetUsername(playerid));
  459. pJail[Officers]--;
  460. SpawnOfficer(playerid);
  461. }
  462. SendClientMessageToAll(-1, Temp);
  463. }
  464. else
  465. {
  466. SendClientMessage(playerid, -1, "{FF6768}Du bist nicht im Gefängnis und kannst es nicht verlassen!");
  467. }
  468. }
  469. return 1;
  470. }
  471. ocmd:zentrale(playerid, params[])
  472. {
  473. CentralMenu(playerid);
  474. return 1;
  475. }
  476. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  477. {
  478. return 1;
  479. }
  480. public OnPlayerExitVehicle(playerid, vehicleid)
  481. {
  482. return 1;
  483. }
  484. public OnPlayerStateChange(playerid, newstate, oldstate)
  485. {
  486. return 1;
  487. }
  488. public OnPlayerEnterCheckpoint(playerid)
  489. {
  490. return 1;
  491. }
  492. public OnPlayerLeaveCheckpoint(playerid)
  493. {
  494. return 1;
  495. }
  496. public OnPlayerEnterRaceCheckpoint(playerid)
  497. {
  498. return 1;
  499. }
  500. public OnPlayerLeaveRaceCheckpoint(playerid)
  501. {
  502. return 1;
  503. }
  504. public OnRconCommand(cmd[])
  505. {
  506. return 1;
  507. }
  508. public OnPlayerRequestSpawn(playerid)
  509. {
  510. return 1;
  511. }
  512. public OnObjectMoved(objectid)
  513. {
  514. return 1;
  515. }
  516. public OnPlayerObjectMoved(playerid, objectid)
  517. {
  518. return 1;
  519. }
  520. public OnPlayerPickUpPickup(playerid, pickupid)
  521. {
  522. return 1;
  523. }
  524. public OnVehicleMod(playerid, vehicleid, componentid)
  525. {
  526. return 1;
  527. }
  528. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  529. {
  530. return 1;
  531. }
  532. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  533. {
  534. return 1;
  535. }
  536. public OnPlayerSelectedMenuRow(playerid, row)
  537. {
  538. return 1;
  539. }
  540. public OnPlayerExitedMenu(playerid)
  541. {
  542. return 1;
  543. }
  544. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  545. {
  546. return 1;
  547. }
  548. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  549. {
  550. if(pInfo[playerid][Skin])
  551. {
  552. if(newkeys & KEY_FIRE && pInfo[playerid][SkinCount] <= 6)
  553. pInfo[playerid][SkinCount]++;
  554. if(newkeys & KEY_HANDBRAKE && pInfo[playerid][SkinCount] >= 0)
  555. pInfo[playerid][SkinCount]--;
  556. if(newkeys & KEY_SECONDARY_ATTACK)
  557. {
  558. pInfo[playerid][Skin] = false;
  559. SpawnPlayer(playerid);
  560. if(IsPlayerPrisoner(playerid))
  561. pInfo[playerid][PrisonerSkin] = PrisonerSkins[pInfo[playerid][SkinCount]];
  562. else
  563. pInfo[playerid][CopSkin] = CopSkins[pInfo[playerid][SkinCount]];
  564. }
  565. if(IsPlayerPrisoner(playerid))
  566. SetPlayerSkin(playerid, PrisonerSkins[pInfo[playerid][SkinCount]]);
  567. else
  568. SetPlayerSkin(playerid, CopSkins[pInfo[playerid][SkinCount]]);
  569. }
  570. return 1;
  571. }
  572. public OnRconLoginAttempt(ip[], password[], success)
  573. {
  574. return 1;
  575. }
  576. public OnPlayerUpdate(playerid)
  577. {
  578. return 1;
  579. }
  580. public OnPlayerStreamIn(playerid, forplayerid)
  581. {
  582. return 1;
  583. }
  584. public OnPlayerStreamOut(playerid, forplayerid)
  585. {
  586. return 1;
  587. }
  588. public OnVehicleStreamIn(vehicleid, forplayerid)
  589. {
  590. return 1;
  591. }
  592. public OnVehicleStreamOut(vehicleid, forplayerid)
  593. {
  594. return 1;
  595. }
  596. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  597. {
  598. if(dialogid == DIALOG_REGISTER)
  599. {
  600. if(response)
  601. {
  602. if(strlen(inputtext) >= 6)
  603. {
  604. new strQuery[256];
  605. mysql_format(Handle, strQuery, sizeof(strQuery), "INSERT INTO accounts (name, password, level, money) VALUES ('%e', '%e', '%i', '%i')", GetUsername(playerid), MD5_Hash(inputtext), 1, 30000);
  606. mysql_tquery(Handle, strQuery, "", "");
  607. mysql_format(Handle, strQuery, sizeof(strQuery), "SELECT * FROM accounts WHERE name='%e' AND password='%e' LIMIT 1", GetUsername(playerid), MD5_Hash(inputtext));
  608. mysql_tquery(Handle, strQuery, "SQL_CheckPassword", "i", playerid);
  609. ShowPlayerDialog(playerid, DIALOG_WELCOME, DIALOG_STYLE_MSGBOX, "Erfolgreich!", "{FFFFFF}Du hast dir erfolgreich einen Account erstellt!", "Weiter", "");
  610. }
  611. else
  612. {
  613. SendClientMessage(playerid, -1, "{FF6768}Dein Passwort muss mindestens 6. Zeichen lang sein!");
  614. new Temp[256];
  615. format(Temp, sizeof(Temp), "{FFFFFF}Unser System konnte {FF6768}keinen{FFFFFF} Account mit deinem Namen finden.\n");
  616. format(Temp, sizeof(Temp), "%sGib ein Passwort an und drücke anschließend auf {FFFF00}'Weiter'{FFFFFF} um einen Account zu erstellen.", Temp);
  617. ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Registration", Temp, "Weiter", "Beenden");
  618. }
  619. }
  620. else
  621. {
  622. Kick(playerid);
  623. }
  624. }
  625. if(dialogid == DIALOG_LOGIN)
  626. {
  627. if(response)
  628. {
  629. new strQuery[256];
  630. mysql_format(Handle, strQuery, sizeof(strQuery), "SELECT * FROM accounts WHERE name='%e' AND password='%e' LIMIT 1", GetUsername(playerid), MD5_Hash(inputtext));
  631. mysql_tquery(Handle, strQuery, "SQL_CheckPassword", "i", playerid);
  632. }
  633. else
  634. {
  635. Kick(playerid);
  636. }
  637. }
  638. if(dialogid == DIALOG_TEAM)
  639. {
  640. if(response)
  641. {
  642. if(pInfo[playerid][Time] >= 30)
  643. {
  644. TogglePlayerSpectating(playerid, false);
  645. StopAudioStreamForPlayer(playerid);
  646. pInfo[playerid][Officer] = true;
  647. SpawnPlayer(playerid);
  648. SpawnOfficer(playerid);
  649. SendClientMessage(playerid, -1, "{6C98FF}Du bist nun ein Wärter, bereite dich auf deinen Einsatz vor!");
  650. }
  651. else
  652. {
  653. new Temp[256];
  654. format(Temp, sizeof(Temp), "{FFFFFF}Du musst nun auswählen in welchem Team du Spielen möchtest.\n");
  655. ShowPlayerDialog(playerid, DIALOG_TEAM, DIALOG_STYLE_MSGBOX, "Wähle dein Team!", Temp, "{008CFF}Wärter", "{FF6567}Gefangener");
  656. format(Temp, sizeof(Temp), "{FF6768}Um als Wärter spielen zu können, benötigst du mindestens 30. Spielminuten!");
  657. SendClientMessage(playerid, -1, Temp);
  658. }
  659. }
  660. else
  661. {
  662. TogglePlayerSpectating(playerid, false);
  663. StopAudioStreamForPlayer(playerid);
  664. pInfo[playerid][Officer] = false;
  665. SpawnPlayer(playerid);
  666. SpawnPrisoner(playerid);
  667. SendClientMessage(playerid, -1, "{6C98FF}Du bist nun ein Gefangener, bereite dich auf das Gefängnis vor!");
  668. }
  669. }
  670. if(dialogid == DIALOG_WEAPONS)
  671. {
  672. if(response)
  673. {
  674. if(listitem == 0)
  675. {
  676. new Temp[256];
  677. format(Temp, sizeof(Temp), "Waffe\tPreis\tLevel\n");
  678. if(pInfo[playerid][Pistol] == 22)
  679. format(Temp, sizeof(Temp), "%s{FFFF00}Standart Pistole\t$5000\t3{FFFFFF}\n", Temp);
  680. else
  681. format(Temp, sizeof(Temp), "%sStandart Pistole\t$5000\t3\n", Temp);
  682. if(pInfo[playerid][Pistol] == 23)
  683. format(Temp, sizeof(Temp), "%s{FFFF00}Schalldämpfer Pistole\t$10000\t6{FFFFFF}\n", Temp);
  684. else
  685. format(Temp, sizeof(Temp), "%sSchalldämpfer Pistole\t$10000\t6\n", Temp);
  686. if(pInfo[playerid][Pistol] == 24)
  687. format(Temp, sizeof(Temp), "%s{FFFF00}Desert Eagle\t$15000\t12{FFFFFF}\n", Temp);
  688. else
  689. format(Temp, sizeof(Temp), "%sDesert Eagle\t$15000\t12\n", Temp);
  690. ShowPlayerDialog(playerid, DIALOG_HANDWEAPS, DIALOG_STYLE_TABLIST_HEADERS, "Pistolen", Temp, "Auswählen", "Beenden");
  691. }
  692. if(listitem == 1)
  693. {
  694. new Temp[256];
  695. format(Temp, sizeof(Temp), "Waffe\tPreis\tLevel\n");
  696. if(pInfo[playerid][Melee] == 2)
  697. format(Temp, sizeof(Temp), "%s{FFFF00}Golfschläger\t$1000\t3{FFFFFF}\n", Temp);
  698. else
  699. format(Temp, sizeof(Temp), "%sGolfschläger\t$1000\t3\n", Temp);
  700. if(pInfo[playerid][Melee] == 3)
  701. format(Temp, sizeof(Temp), "%s{FFFF00}Schlagstock\t$1200\t6{FFFFFF}\n", Temp);
  702. else
  703. format(Temp, sizeof(Temp), "%sSchlagstock\t$1200\t6\n", Temp);
  704. if(pInfo[playerid][Melee] == 6)
  705. format(Temp, sizeof(Temp), "%s{FFFF00}Schaufel\t$1300\t12{FFFFFF}\n", Temp);
  706. else
  707. format(Temp, sizeof(Temp), "%sSchaufel\t$1300\t12\n", Temp);
  708. ShowPlayerDialog(playerid, DIALOG_MELEEWEAPS, DIALOG_STYLE_TABLIST_HEADERS, "Schlagwaffen", Temp, "Auswählen", "Beenden");
  709. }
  710. if(listitem == 2)
  711. {
  712. new Temp[256];
  713. format(Temp, sizeof(Temp), "Wert\tPreis\tLevel\n");
  714. if(pInfo[playerid][Armor] == 25)
  715. format(Temp, sizeof(Temp), "%s{FFFF00}Schutzweste auf 25 Prozent\t$5000\t3{FFFFFF}\n", Temp);
  716. else
  717. format(Temp, sizeof(Temp), "%sSchutzweste auf 25 Prozent\t$5000\t3\n", Temp);
  718. if(pInfo[playerid][Armor] == 70)
  719. format(Temp, sizeof(Temp), "%s{FFFF00}Schutzweste auf 70 Prozent\t$10000\t6{FFFFFF}\n", Temp);
  720. else
  721. format(Temp, sizeof(Temp), "%sSchutzweste auf 70 Prozent\t$10000\t6\n", Temp);
  722. if(pInfo[playerid][Armor] == 100)
  723. format(Temp, sizeof(Temp), "%s{FFFF00}Schutzweste auf 100 Prozent\t$15000\t12{FFFFFF}\n", Temp);
  724. else
  725. format(Temp, sizeof(Temp), "%sSchutzweste auf 100 Prozent\t$15000\t12\n", Temp);
  726. ShowPlayerDialog(playerid, DIALOG_ARMORWEAPS, DIALOG_STYLE_TABLIST_HEADERS, "Schutzwesten", Temp, "Auswählen", "Beenden");
  727. }
  728. }
  729. }
  730. if(dialogid == DIALOG_HANDWEAPS)
  731. {
  732. if(response)
  733. {
  734. if(listitem == 0)
  735. {
  736. if(pInfo[playerid][Level] >= 3)
  737. SetPistolWeapon(playerid, 22, 5000, "Du hast dir die normalen Pistolen geholt!");
  738. }
  739. if(listitem == 1)
  740. {
  741. if(pInfo[playerid][Level] >= 6)
  742. SetPistolWeapon(playerid, 23, 10000, "Du hast dir die Schalldämpfer Pistole geholt!");
  743. }
  744. if(listitem == 2)
  745. {
  746. if(pInfo[playerid][Level] >= 12)
  747. SetPistolWeapon(playerid, 24, 15000, "Du hast dir die Desert Eagle geholt!");
  748. }
  749. }
  750. }
  751. if(dialogid == DIALOG_MELEEWEAPS)
  752. {
  753. if(response)
  754. {
  755. if(listitem == 0)
  756. {
  757. if(pInfo[playerid][Level] >= 3)
  758. SetMeleeWeapon(playerid, 2, 1000, "Du hast dir einen Golfschläger gekauft!");
  759. }
  760. if(listitem == 1)
  761. {
  762. if(pInfo[playerid][Level] >= 6)
  763. SetMeleeWeapon(playerid, 3, 1100, "Du hast dir einen Schlagstock gekauft!");
  764. }
  765. if(listitem == 2)
  766. {
  767. if(pInfo[playerid][Level] >= 12)
  768. SetMeleeWeapon(playerid, 6, 1000, "Du hast dir eine Schaufel gekauft!");
  769. }
  770. }
  771. }
  772. if(dialogid == DIALOG_ARMORWEAPS)
  773. {
  774. if(response)
  775. {
  776. if(listitem == 0)
  777. {
  778. if(pInfo[playerid][Level] >= 3)
  779. SetArmorPlayer(playerid, 25, 1000, "Du hast dir 25 prozent Schutzweste gekauft!");
  780. }
  781. if(listitem == 1)
  782. {
  783. if(pInfo[playerid][Level] >= 6)
  784. SetArmorPlayer(playerid, 70, 10000, "Du hast dir 70 prozent Schutzweste gekauft!");
  785. }
  786. if(listitem == 2)
  787. {
  788. if(pInfo[playerid][Level] >= 12)
  789. SetArmorPlayer(playerid, 100, 15000, "Du hast dir 100 prozent Schutzweste gekauft!");
  790. }
  791. }
  792. }
  793. if(dialogid == DIALOG_CENTRAL)
  794. {
  795. if(response)
  796. {
  797. if(listitem == 0)
  798. {
  799. OpenJails(playerid);
  800. CentralMenu(playerid);
  801. }
  802. }
  803. }
  804. return 1;
  805. }
  806. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  807. {
  808. return 1;
  809. }
  810. stock GetUsername(playerid)
  811. {
  812. new Temp[32];
  813. GetPlayerName(playerid, Temp, sizeof(Temp));
  814. return Temp;
  815. }
  816. stock IsPlayerLoggedIn(playerid)
  817. {
  818. if(pInfo[playerid][Confirmed])
  819. return true;
  820. else
  821. return false;
  822. }
  823. stock RefreshMoney(playerid)
  824. {
  825. ResetPlayerMoney(playerid);
  826. GivePlayerMoney(playerid, pInfo[playerid][Money]);
  827. return 1;
  828. }
  829. stock CleanChat(playerid)
  830. {
  831. for(new i = 0; i < 20; i++)
  832. {
  833. SendClientMessage(playerid, -1, " ");
  834. }
  835. return 1;
  836. }
  837. stock IsPlayerPrisoner(playerid)
  838. {
  839. if(pInfo[playerid][Officer])
  840. return false;
  841. else
  842. return true;
  843. }
  844. stock SpawnPlayerCorrect(playerid, Float:x, Float:y, Float:z, Float:angle)
  845. {
  846. SetPlayerPos(playerid, x, y, z);
  847. SetPlayerFacingAngle(playerid, angle);
  848. SetCameraBehindPlayer(playerid);
  849. return true;
  850. }
  851. stock IsPlayerJailed(playerid)
  852. {
  853. if(pInfo[playerid][InJail])
  854. return true;
  855. else
  856. return false;
  857. }
  858. stock SetMeleeWeapon(playerid, weapon, price, msg[])
  859. {
  860. if(pInfo[playerid][Money] >= price)
  861. {
  862. pInfo[playerid][Money] -= price;
  863. pInfo[playerid][Melee] = weapon;
  864. GivePlayerWeapon(playerid, weapon, 120);
  865. RefreshMoney(playerid);
  866. SendClientMessage(playerid, -1, msg);
  867. }
  868. else
  869. {
  870. SendClientMessage(playerid, -1, "{FF0000}Du kannst dir dieses Produkt nicht leisten!");
  871. }
  872. return true;
  873. }
  874. stock SetPistolWeapon(playerid, weapon, price, msg[])
  875. {
  876. if(pInfo[playerid][Money] >= price)
  877. {
  878. pInfo[playerid][Money] -= price;
  879. pInfo[playerid][Pistol] = weapon;
  880. GivePlayerWeapon(playerid, weapon, 120);
  881. RefreshMoney(playerid);
  882. SendClientMessage(playerid, -1, msg);
  883. }
  884. else
  885. {
  886. SendClientMessage(playerid, -1, "{FF0000}Du kannst dir dieses Produkt nicht leisten!");
  887. }
  888. return true;
  889. }
  890. stock SetArmorPlayer(playerid, amount, price, msg[])
  891. {
  892. if(pInfo[playerid][Money] >= price)
  893. {
  894. pInfo[playerid][Money] -= price;
  895. pInfo[playerid][Armor] = amount;
  896. SetPlayerArmour(playerid, amount);
  897. RefreshMoney(playerid);
  898. SendClientMessage(playerid, -1, msg);
  899. }
  900. else
  901. {
  902. SendClientMessage(playerid, -1, "{FF0000}Du kannst dir dieses Produkt nicht leisten!");
  903. }
  904. return true;
  905. }
  906. public SQL_Connect(ip[], name[], pass[], data[])
  907. {
  908. Handle = mysql_connect(ip, name, data, pass);
  909. if(mysql_errno())
  910. {
  911. printf("[SQL] KEINE VERBINDUNG ZUR DATENBANK MOEGLICH!");
  912. Connection = false;
  913. }
  914. else
  915. {
  916. printf("[SQL] VERBINDUNG ZUR DATENBANK WURDE HERGESTELLT!");
  917. Connection = true;
  918. }
  919. }
  920. public SQL_CheckAccount(playerid)
  921. {
  922. new Fields, Rows;
  923. cache_get_data(Rows, Fields, Handle);
  924. PlayAudioStreamForPlayer(playerid, "http://localhost/theme.mp3");
  925. TogglePlayerSpectating(playerid, true);
  926. InterpolateCameraPos(playerid, 433.658966, -2110.827392, 39.952560, 437.411956, -1777.464111, 10.099081, 10000);
  927. InterpolateCameraLookAt(playerid, 430.606811, -2107.437255, 37.905204, 434.100738, -1773.718139, 10.158975, 10000);
  928. for(new i = 0; i < 20; i++)
  929. SendClientMessage(playerid, -1, " ");
  930. if(Rows)
  931. {
  932. SendClientMessage(playerid, -1, "Willkommen auf {FF9700}German Prison Break{FFFFFF}!");
  933. SendClientMessage(playerid, -1, "Bitte gib dein Passwort ein um dich in deinen Account einzuloggen!");
  934. new Temp[256];
  935. format(Temp, sizeof(Temp), "{FFFFFF}Unser System konnte einen Account mit deinem Namen finden.\n");
  936. format(Temp, sizeof(Temp), "%sGib dein Passwort an und drücke anschließend auf {FFFF00}'Weiter'{FFFFFF} um dich einzuloggen.", Temp);
  937. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", Temp, "Weiter", "Beenden");
  938. }
  939. else
  940. {
  941. SendClientMessage(playerid, -1, "Willkommen auf {FF9700}German Prison Break{FFFFFF}!");
  942. SendClientMessage(playerid, -1, "Um auf diesem Server spielen zu können benötigst du einen Account!");
  943. new Temp[256];
  944. format(Temp, sizeof(Temp), "{FFFFFF}Unser System konnte {FF6768}keinen{FFFFFF} Account mit deinem Namen finden.\n");
  945. format(Temp, sizeof(Temp), "%sGib ein Passwort an und drücke anschließend auf {FFFF00}'Weiter'{FFFFFF} um einen Account zu erstellen.", Temp);
  946. ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Registration", Temp, "Weiter", "Beenden");
  947. }
  948. }
  949. public SQL_CheckPassword(playerid)
  950. {
  951. new Fields, Rows;
  952. cache_get_data(Rows, Fields, Handle);
  953. if(Rows)
  954. {
  955. InterpolateCameraPos(playerid, 223.138931, -209.686340, 32.131401, 234.480102, -81.005691, 31.686792, 10000);
  956. InterpolateCameraLookAt(playerid, 220.834838, -206.901214, 28.676805, 230.885742, -83.180137, 28.975269, 10000);
  957. for(new i = 0; i < 20; i++)
  958. SendClientMessage(playerid, -1, " ");
  959. SendClientMessage(playerid, -1, "{95FF00}Du hast dich erfolgreich in deinen Account eingeloggt!");
  960. SendClientMessage(playerid, -1, "Solltest du noch fragen zur Spielweise haben so verwende {008CFF}'/help'{FFFFFF}.");
  961. new Temp[256];
  962. format(Temp, sizeof(Temp), "{FFFFFF}Du musst nun auswählen in welchem Team du Spielen möchtest.\n");
  963. ShowPlayerDialog(playerid, DIALOG_TEAM, DIALOG_STYLE_MSGBOX, "Wähle dein Team!", Temp, "{008CFF}Wärter", "{FF6567}Gefangener");
  964. SetPlayerInterior(playerid, 0);
  965. pInfo[playerid][Confirmed] = true;
  966. SQL_LoadAccount(playerid);
  967. TextDrawShowForPlayer(playerid, Watermark);
  968. SetPlayerScore(playerid, pInfo[playerid][Level]);
  969. RefreshMoney(playerid);
  970. }
  971. else
  972. {
  973. for(new i = 0; i < 20; i++)
  974. SendClientMessage(playerid, -1, " ");
  975. SendClientMessage(playerid, -1, "{FF6768}Dein Passwort stimmt nicht überein!");
  976. new Temp[256];
  977. format(Temp, sizeof(Temp), "{FFFFFF}Unser System konnte einen Account mit deinem Namen finden.\n");
  978. format(Temp, sizeof(Temp), "%sGib dein Passwort an und drücke anschließend auf {FFFF00}'Weiter'{FFFFFF} um dich einzuloggen.", Temp);
  979. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", Temp, "Weiter", "Beenden");
  980. }
  981. }
  982. public SQL_LoadAccount(playerid)
  983. {
  984. if(pInfo[playerid][Confirmed])
  985. {
  986. pInfo[playerid][Time] = cache_get_field_content_int(0, "time", Handle);
  987. pInfo[playerid][CopSkin] = cache_get_field_content_int(0, "copskin", Handle);
  988. pInfo[playerid][PrisonerSkin] = cache_get_field_content_int(0, "prisonerskin", Handle);
  989. pInfo[playerid][PaydayTime] = cache_get_field_content_int(0, "payday", Handle);
  990. pInfo[playerid][Upgrade] = cache_get_field_content_int(0, "upgrade", Handle);
  991. pInfo[playerid][Level] = cache_get_field_content_int(0, "level", Handle);
  992. pInfo[playerid][Money] = cache_get_field_content_int(0, "money", Handle);
  993. new Temp[256];
  994. new Rows, Fields;
  995. mysql_format(Handle, Temp, sizeof(Temp), "SELECT * FROM weapons WHERE name='%e'", GetUsername(playerid));
  996. mysql_query(Handle, Temp);
  997. cache_get_data(Rows, Fields, Handle);
  998. if(Rows)
  999. {
  1000. pInfo[playerid][Melee] = cache_get_field_content_int(0, "melee", Handle);
  1001. pInfo[playerid][Pistol] = cache_get_field_content_int(0, "pistol", Handle);
  1002. pInfo[playerid][Armor] = cache_get_field_content_int(0, "armor", Handle);
  1003. }
  1004. else
  1005. {
  1006. mysql_format(Handle, Temp, sizeof(Temp), "INSERT INTO weapons (name, melee, pistol) VALUES ('%e', '%i', '%i')", GetUsername(playerid), 0, 0);
  1007. mysql_query(Handle, Temp);
  1008. }
  1009. }
  1010. }
  1011. public SQL_SaveAccount(playerid)
  1012. {
  1013. if(IsPlayerLoggedIn(playerid))
  1014. {
  1015. new strQuery[256];
  1016. mysql_format(Handle, strQuery, sizeof(strQuery), "UPDATE accounts SET time='%i', copskin='%i', prisonerskin='%i', payday='%i', upgrade='%i', level='%i', money='%i' WHERE name='%e'",
  1017. pInfo[playerid][Time],
  1018. pInfo[playerid][CopSkin],
  1019. pInfo[playerid][PrisonerSkin],
  1020. pInfo[playerid][PaydayTime],
  1021. pInfo[playerid][Upgrade],
  1022. pInfo[playerid][Level],
  1023. pInfo[playerid][Money],
  1024. GetUsername(playerid));
  1025. mysql_tquery(Handle, strQuery, "", "");
  1026. mysql_format(Handle, strQuery, sizeof(strQuery), "UPDATE weapons SET melee='%i', pistol='%i', armor='%i' WHERE name='%e'", pInfo[playerid][Melee], pInfo[playerid][Pistol], pInfo[playerid][Armor], GetUsername(playerid));
  1027. mysql_query(Handle, strQuery);
  1028. }
  1029. }
  1030. public SpawnOfficer(playerid)
  1031. {
  1032. TogglePlayerSpectating(playerid, false);
  1033. new RandomInt = random(sizeof(CopBaseSpawn));
  1034. SpawnPlayerCorrect(playerid, CopBaseSpawn[RandomInt][0], CopBaseSpawn[RandomInt][1], CopBaseSpawn[RandomInt][2], CopBaseSpawn[RandomInt][3]);
  1035. SetPlayerInterior(playerid, 3);
  1036. SetPlayerSkin(playerid, pInfo[playerid][CopSkin]);
  1037. GivePlayerWeapon(playerid, pInfo[playerid][Melee], 1);
  1038. GivePlayerWeapon(playerid, pInfo[playerid][Pistol], 120);
  1039. SetPlayerArmour(playerid, pInfo[playerid][Armor]);
  1040. return 1;
  1041. }
  1042. public SpawnPrisoner(playerid)
  1043. {
  1044. TogglePlayerSpectating(playerid, false);
  1045. new RandomInt = random(sizeof(PrisonerBaseSpawn));
  1046. SpawnPlayerCorrect(playerid, PrisonerBaseSpawn[RandomInt][0], PrisonerBaseSpawn[RandomInt][1], PrisonerBaseSpawn[RandomInt][2], PrisonerBaseSpawn[RandomInt][3]);
  1047. SetPlayerInterior(playerid, 18);
  1048. SetPlayerSkin(playerid, pInfo[playerid][PrisonerSkin]);
  1049. return 1;
  1050. }
  1051. public Payday()
  1052. {
  1053. for(new i = 0; i < MAX_PLAYERS; i++)
  1054. {
  1055. if(IsPlayerLoggedIn(i))
  1056. {
  1057. pInfo[i][PaydayTime]++;
  1058. pInfo[i][Time]++;
  1059. if(pInfo[i][PaydayTime] >= 30)
  1060. {
  1061. pInfo[i][PaydayTime] = false;
  1062. pInfo[i][Upgrade]++;
  1063. SendClientMessage(i, -1, "{00AFFF}Du hast soebend einen Payday erhalten! (+1 Upgradepoint)");
  1064. SQL_SaveAccount(i);
  1065. }
  1066. if(pInfo[i][Time] == 60)
  1067. {
  1068. SendClientMessage(i, -1, "Gratulation! Du hast soebend {FF6768}30{FFFFFF} Spielminuten erreicht!");
  1069. SendClientMessage(i, -1, "Nun kannst du beim nächsten Login als {00AFFF}Wärter{FFFFFF} in den Kampf ziehen!");
  1070. SendClientMessage(i, -1, "{FFFF00}Als dank dafür, schenken wir dir $15.000!");
  1071. pInfo[i][Money] += 15000;
  1072. RefreshMoney(i);
  1073. }
  1074. if(pInfo[i][Upgrade] == pInfo[i][Level] * 2)
  1075. {
  1076. new Temp[256];
  1077. format(Temp, sizeof(Temp), "Spieler {B0FF5B}%s{FFFFFF} hat Level {FF6768}%i{FFFFFF} erreicht!", GetUsername(i), pInfo[i][Level] + 1);
  1078. SendClientMessageToAll(-1, Temp);
  1079. pInfo[i][Level]++;
  1080. pInfo[i][Upgrade] = false;
  1081. SetPlayerScore(i, pInfo[i][Level]);
  1082. SQL_SaveAccount(i);
  1083. }
  1084. }
  1085. }
  1086. return 1;
  1087. }
  1088. public SpawnInJail(playerid)
  1089. {
  1090. if(IsPlayerPrisoner(playerid))
  1091. {
  1092. new RandomInt = random(sizeof(PrisonerSpawnJail));
  1093. SpawnPlayerCorrect(playerid, PrisonerSpawnJail[RandomInt][0], PrisonerSpawnJail[RandomInt][1], PrisonerSpawnJail[RandomInt][2], PrisonerSpawnJail[RandomInt][3]);
  1094. }
  1095. else
  1096. {
  1097. new RandomInt = random(sizeof(CopSpawnJail));
  1098. SpawnPlayerCorrect(playerid, CopSpawnJail[RandomInt][0], CopSpawnJail[RandomInt][1], CopSpawnJail[RandomInt][2], CopSpawnJail[RandomInt][3]);
  1099. }
  1100. SetPlayerInterior(playerid, 0);
  1101. return 1;
  1102. }
  1103. public OpenJails(playerid)
  1104. {
  1105. if(IsPlayerLoggedIn(playerid))
  1106. {
  1107. new Temp[256];
  1108. if(JailDoorOpen)
  1109. {
  1110. format(Temp, sizeof(Temp), "{FF6768}*** Die Türen der Gefängniszellen wurden von {FFFF68}%s{FF6768} geöffnet. ***", GetUsername(playerid));
  1111. for(new i = 0; i < sizeof(JailDoor); i++) { MoveObject(JailDoor[i], DoorPos[i][0], DoorPos[i][1], DoorPos[i][2] - 3, 0.5, 0, 0); }
  1112. }
  1113. else
  1114. {
  1115. format(Temp, sizeof(Temp), "{FF6768}*** Die Türen der Gefängniszellen wurden von {FFFF68}%s{FF6768} geschlossen! ***", GetUsername(playerid));
  1116. for(new i = 0; i < sizeof(JailDoor); i++) { MoveObject(JailDoor[i], DoorPos[i][0], DoorPos[i][1], DoorPos[i][2], 0.5, 0, 0); }
  1117. }
  1118. JailDoorOpen = !JailDoorOpen;
  1119. SendClientMessageToAll(-1, Temp);
  1120. }
  1121. return 1;
  1122. }
  1123. public CentralMenu(playerid)
  1124. {
  1125. if(IsPlayerLoggedIn(playerid) && IsPlayerInRangeOfPoint(playerid, 5.0, 220.5488,-174.4541,5.7925))
  1126. {
  1127. new Temp[512];
  1128. if(JailDoorOpen)
  1129. format(Temp, sizeof(Temp), "Türen der Gefängniszellen - {FF6768}Geschlossen!{FFFFFF}\n");
  1130. else
  1131. format(Temp, sizeof(Temp), "Türen der Gefängniszellen - {00FF00}Geöffnet!{FFFFFF}\n");
  1132. format(Temp, sizeof(Temp), "%sTür zum Massenjail - {FF6768}Geschlossen!{FFFFFF}\n", Temp);
  1133. format(Temp, sizeof(Temp), "%sTür zur Heilkammer - {FF6768}Geschlossen!{FFFFFF}\n", Temp);
  1134. format(Temp, sizeof(Temp), "%sTür zur Waffenkammer - {FF6768}Geschlossen!{FFFFFF}\n", Temp);
  1135. ShowPlayerDialog(playerid, DIALOG_CENTRAL, DIALOG_STYLE_TABLIST, "Zentrale", Temp, "Wählen", "Beenden");
  1136. }
  1137. else
  1138. {
  1139. SendClientMessage(playerid, -1, "{FF6768}Du bist nicht in der nähe der Zentrale!");
  1140. }
  1141. return 1;
  1142. }

comments powered by Disqus