Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 49.67 KB | None | 0 0
  1. /* -------------------- NG-RP gang HQ --------------- */
  2. /* */
  3. /* Made by Jack Shred */
  4. /* ----------------------------------------------------- */
  5.  
  6. #include <a_samp>
  7. #include <dini>
  8. #include <dudb>
  9.  
  10. new IsLogged[MAX_PLAYERS];
  11.  
  12. new SajiVeh1; // Storing the vehicles in a variable.
  13. new SajiVeh2; // Storing the vehicles in a variable.
  14. new SajiVeh3; // Storing the vehicles in a variable.
  15. new SajiVeh4; // Storing the vehicles in a variable.
  16. new SajiVeh5; // Storing the vehicles in a variable.
  17. new SajiVeh6; // Storing the vehicles in a variable.
  18. new SajiVeh7; // Storing the vehicles in a variable.
  19. forward OnSajiUpdate(giveplayerid, cardid);
  20. #pragma tabsize 0
  21. #pragma unused ret_memcpy
  22. new Door1; // Storing the object in a variable.
  23. new Door2; // Storing the object in a variable.
  24. /*new SajiPickup1; // Storing the pickup in a variable.
  25. new SajiPickup2; // Storing the pickup in a variable.
  26. new SajiPickup3; // Storing the pickup in a variable.
  27. new SajiPickup4; // Storing the pickup in a variable.*/
  28. new SajiPickup5; // Storing the pickup in a variable.
  29. //new SajiPickup6; // Storing the pickup in a variable.
  30. new PrisonDoor; // Storing the object in a variable.
  31. new Menu:DrinkMenu; // Menu
  32. new Menu:DrinkMenu2; // Menu
  33. new Menu:ClothesMenu; // Menu
  34. forward ElevatorTimer(playerid); // The timer of the elevator -
  35. forward PoisonTimer(playerid);
  36. new poisontimer;
  37. new ElevatorTime[MAX_PLAYERS]; // Checks elevator information
  38. new InElevator[MAX_PLAYERS];
  39. new ChosenPlace[MAX_PLAYERS];
  40. new Poisoned[MAX_PLAYERS];
  41. new SajiCard[MAX_PLAYERS]; // - 1; Guest | Non Permanent - 2; Basic | Permanent - 3; V.I.P Card | Permanent -
  42. new SajiCardOwner[MAX_PLAYERS]; // - These players will be able to give out 'Saji Cards' -
  43. #define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
  44.  
  45. enum pInfo
  46. {
  47. sSajiCard,
  48. }
  49. new SajiInfo[MAX_PLAYERS][pInfo];
  50.  
  51.  
  52. #if defined FILTERSCRIPT
  53.  
  54. public OnFilterScriptInit()
  55. {
  56. print("\n--------------------------------------");
  57. print(" Blank Filterscript by your name here");
  58. print("--------------------------------------\n");
  59. return 1;
  60. }
  61.  
  62. public OnFilterScriptExit()
  63. {
  64. return 1;
  65. }
  66.  
  67. #else
  68.  
  69. main()
  70. {
  71. print("\n----------------------------------");
  72. print(" Blank Gamemode by your name here");
  73. print("----------------------------------\n");
  74. }
  75.  
  76. #endif
  77.  
  78. public OnGameModeInit()
  79. {
  80. // Don't use these lines if it's a filterscript
  81. SetGameModeText("Blank Script");
  82. AddPlayerClass(295, 612.04595947,-2493.26025391,0.00000000, 269.1425, 0, 0, 0, 0, 0, 0);
  83. SajiVeh1 = AddStaticVehicleEx(484,612.04595947,-2493.26025391,0.00000000,0.00000000,1,1,900); //Marquis
  84. SajiVeh2 = AddStaticVehicleEx(473,593.93334961,-2485.86523438,0.00000000,0.00000000,0,0,900); //Dinghy
  85. SajiVeh3 = AddStaticVehicleEx(473,596.91491699,-2485.83740234,0.00000000,0.00000000,0,0,900); //Dinghy
  86. SajiVeh4 = AddStaticVehicleEx(473,599.85174561,-2485.62744141,0.00000000,0.00000000,0,0,900); //Dinghy
  87. SajiVeh5 = AddStaticVehicleEx(452,589.81835938,-2492.38525391,0.00000000,0.00000000,1,1,900); //Speeder
  88. SajiVeh6 = AddStaticVehicleEx(487,569.88305664,-2573.63549805,8.68702984,0.00000000,0,0,900); //Maverick
  89. SajiVeh7 = AddStaticVehicleEx(530,565.21673584,-2488.34204102,8.57613850,0.00000000,0,0,900); //Forklift
  90. DisableInteriorEnterExits();
  91. /*SajiPickup1 = CreatePickup(1318, 1, 570.0934,-2510.4434,8.9401, 0);
  92. SajiPickup2 = CreatePickup(1318, 1, 569.6516,-2545.1235,8.9401, 0);
  93. SajiPickup3 = CreatePickup(1318, 1, 570.0879,-2518.2334,12.7829, 0);
  94. SajiPickup4 = CreatePickup(1318, 1, 569.6080,-2565.8938,8.4220, 0);*/
  95. SajiPickup5 = CreatePickup(1318, 1, 2320.9414,-1007.4769,1050.2109, 7);
  96. //SajiPickup6 = CreatePickup(1318, 1, 2144.1006,1607.5321,993.6882, -1);
  97. DrinkMenu = CreateMenu("The Saji Bar", 2, 200.0, 100.0, 150.0, 150.0);
  98. DrinkMenu2 = CreateMenu("The Saji Bar", 2, 200.0, 100.0, 150.0, 150.0);
  99. ClothesMenu = CreateMenu("Closet", 1, 200.0, 100.0, 150.0, 150.0);
  100. AddMenuItem(DrinkMenu, 0, "Wine");
  101. AddMenuItem(DrinkMenu, 1, "$0");
  102. AddMenuItem(DrinkMenu2, 0, "Wine");
  103. AddMenuItem(DrinkMenu2, 0, "Beer");
  104. AddMenuItem(DrinkMenu2, 0, "Soda");
  105. AddMenuItem(DrinkMenu2, 0, "Whiskey");
  106. AddMenuItem(DrinkMenu2, 0, "Martini");
  107. AddMenuItem(DrinkMenu2, 0, "Saji Special");
  108. AddMenuItem(DrinkMenu2, 0, "Saji Freedom");
  109. AddMenuItem(DrinkMenu2, 1, "$0");
  110. AddMenuItem(DrinkMenu2, 1, "$0");
  111. AddMenuItem(DrinkMenu2, 1, "$0");
  112. AddMenuItem(DrinkMenu2, 1, "$0");
  113. AddMenuItem(DrinkMenu2, 1, "$0");
  114. AddMenuItem(DrinkMenu2, 1, "$0");
  115. AddMenuItem(DrinkMenu2, 1, "$0");
  116. AddMenuItem(ClothesMenu, 0, "Bathing");
  117. AddMenuItem(ClothesMenu, 0, "Geisha");
  118. AddMenuItem(ClothesMenu, 0, "Tsume");
  119. AddMenuItem(ClothesMenu, 0, "Shatei");
  120. AddMenuItem(ClothesMenu, 0, "Kyodai");
  121. AddMenuItem(ClothesMenu, 0, "Shingiin");
  122. AddMenuItem(ClothesMenu, 0, "Saiko-komon");
  123. AddMenuItem(ClothesMenu, 0, "Wakagashira");
  124. AddMenuItem(ClothesMenu, 0, "Sensei");
  125. AddMenuItem(ClothesMenu, 0, "Geisha Sin");
  126. AddMenuItem(ClothesMenu, 0, "Shiki");
  127. AddMenuItem(ClothesMenu, 0, "Itamae");
  128. AddMenuItem(ClothesMenu, 0, "Gishiki");
  129. CreateObject(6300,571.41406250,-2508.37988281,-0.11457253,0.00000000,0.00000000,0.00000000); //object(pier04_law2) (1)
  130. CreateObject(6522,569.93359375,-2533.47363281,16.04069710,0.00000000,0.00000000,90.00000000); //object(country_law2) (1)
  131. CreateObject(5154,569.82086182,-2573.52392578,4.25000000,0.00000000,0.00000000,0.00000000); //object(dk_cargoshp03d) (1)
  132. CreateObject(3886,597.40039062,-2501.03417969,2.61942291,0.00000000,0.00000000,0.00000000); //object(ws_jettynol_sfx) (1)
  133. CreateObject(14874,593.84667969,-2503.66601562,6.00562191,0.00000000,0.00000000,0.00000000); //object(kylie_stairs) (1)
  134. CreateObject(16082,599.01074219,-2492.09277344,4.25000000,0.00000000,0.00000000,179.99450684); //object(des_quarryplatform) (1)
  135. CreateObject(1778,575.99316406,-2506.90039062,7.94011497,0.00000000,0.00000000,0.00000000); //object(cj_mop_pail) (1)
  136. CreateObject(5262,586.35351562,-2474.03125000,10.89777565,0.00000000,0.00000000,90.00000000); //object(las2dkwar04) (1)
  137. CreateObject(5132,575.24609375,-2480.04687500,9.75252628,0.00000000,0.00000000,0.00000000); //object(las2dkwar107) (1)
  138. CreateObject(1685,574.91113281,-2490.02539062,11.70062733,0.00000000,0.00000000,0.00000000); //object(blockpallet) (1)
  139. CreateObject(923,598.38964844,-2502.24316406,4.39754725,0.00000000,0.00000000,0.00000000); //object(packing_carates2) (1)
  140. CreateObject(2669,575.71679688,-2484.70019531,9.28038788,0.00000000,0.00000000,179.99450684); //object(cj_chris_crate) (1)
  141. Door1 = CreateObject(2678,576.47949219,-2482.05273438,9.14696503,0.00000000,0.00000000,179.99450684); //object(cj_chris_crate_ld) (1)
  142. Door2 = CreateObject(2679,574.95898438,-2482.04101562,9.14696503,0.00000000,0.00000000,179.99450684); //object(cj_chris_crate_rd) (1)
  143. CreateObject(2332,576.71875000,-2486.85839844,8.52562523,0.00000000,0.00000000,179.99450684); //object(kev_safe) (1)
  144. CreateObject(1210,576.14941406,-2486.99121094,8.21117783,14.99633789,0.00000000,90.00000000); //object(briefcase) (2)
  145. CreateObject(2922,574.75354004,-2481.95434570,9.59409714,0.00000000,0.00000000,0.00000000); //object(kmb_keypad) (1)
  146. CreateObject(2754,574.49060059,-2477.44409180,8.84225941,0.00000000,0.00000000,180.00000000); //object(otb_machine) (1)
  147. CreateObject(3471,567.02429199,-2502.09082031,9.20880699,0.00000000,0.00000000,90.00000000); //object(vgschinalion1) (2)
  148. CreateObject(3471,573.45593262,-2502.08715820,9.21465492,0.00000000,0.00000000,90.00000000); //object(vgschinalion1) (3)
  149. CreateObject(2755,548.45996094,-2483.62304688,9.67159557,0.00000000,0.00000000,0.00000000); //object(dojo_wall) (1)
  150. CreateObject(2755,552.28863525,-2483.60449219,9.67159557,0.00000000,0.00000000,0.00000000); //object(dojo_wall) (2)
  151. CreateObject(2755,548.45996094,-2493.34472656,9.67159557,0.00000000,0.00000000,0.00000000); //object(dojo_wall) (3)
  152. CreateObject(2755,552.28863525,-2493.38647461,9.67159557,0.00000000,0.00000000,0.00000000); //object(dojo_wall) (4)
  153. CreateObject(2290,549.47637939,-2490.67089844,7.94011497,0.00000000,0.00000000,120.00000000); //object(swk_couch_1) (1)
  154. CreateObject(2290,550.79455566,-2485.48754883,7.94011497,0.00000000,0.00000000,350.00000000); //object(swk_couch_1) (2)
  155. CreateObject(2290,554.08215332,-2490.61157227,7.93426800,0.00000000,0.00000000,200.00000000); //object(swk_couch_1) (3)
  156. CreateObject(3528,570.39660645,-2503.05078125,20.76159668,0.00000000,356.00000000,90.00000000); //object(vgsedragon) (1)
  157. CreateObject(3534,565.27905273,-2503.51098633,18.49596405,0.00000000,0.00000000,0.00000000); //object(trdlamp01) (1)
  158. CreateObject(3534,574.99670410,-2503.63110352,18.46677780,0.00000000,0.00000000,0.00000000); //object(trdlamp01) (2)
  159. CreateObject(3934,569.96124268,-2573.74243164,7.42202950,0.00000000,0.00000000,0.00000000); //object(helipad01) (1)
  160. CreateObject(1746,553.98626709,-2487.97094727,7.93426800,0.00000000,0.00000000,0.00000000); //object(swank_1_footstool) (1)
  161. CreateObject(2315,551.24420166,-2489.20971680,7.94011497,0.00000000,0.00000000,90.00000000); //object(cj_tv_table4) (1)
  162. CreateObject(1670,551.24249268,-2488.00781250,8.43574715,0.00000000,0.00000000,90.00000000); //object(propcollecttable) (1)
  163. CreateObject(1670,551.07977295,-2489.26879883,8.43574715,0.00000000,0.00000000,90.00000000); //object(propcollecttable) (2)
  164. CreateObject(1568,545.70397949,-2492.64282227,7.69011497,0.00000000,0.00000000,0.00000000); //object(chinalamp_sf) (3)
  165. CreateObject(1568,545.70397949,-2484.89477539,7.69011497,0.00000000,0.00000000,0.00000000); //object(chinalamp_sf) (4)
  166. CreateObject(9482,570.41033936,-2474.59448242,14.65627670,0.00000000,0.00000000,90.00000000); //object(chinagate) (1)
  167. CreateObject(2754,574.49731445,-2478.31909180,8.84225941,0.00000000,0.00000000,179.99450684); //object(otb_machine) (2)
  168. CreateObject(2205,569.00000000,-2478.77392578,7.93426800,0.00000000,0.00000000,0.00000000); //object(med_office8_desk_1) (1)
  169. CreateObject(2190,570.20898438,-2478.53027344,8.87073135,0.00000000,0.00000000,0.00000000); //object(pc_1) (1)
  170. CreateObject(1671,570.19964600,-2480.20068359,8.39448166,0.00000000,0.00000000,190.00000000); //object(swivelchair_a) (1)
  171. CreateObject(2308,569.06530762,-2480.79394531,7.93426704,0.00000000,0.00000000,90.00000000); //object(med_office4_desk_4) (1)
  172.  
  173. // ---------------- ELEVATOR -------------- //
  174.  
  175. /*CreateObject(972,2354.67236328,-3907.94262695,0.00000000,0.00000000,0.00000000,0.00000000); //object(tunnelentrance) (1)
  176. CreateObject(972,2354.88818359,-3906.62939453,0.00000000,0.00000000,0.00000000,180.00000000); //object(tunnelentrance) (2)
  177. CreateObject(972,2355.90039062,-3902.86425781,0.00000000,0.00000000,0.00000000,90.00000000); //object(tunnelentrance) (3)
  178. CreateObject(972,2358.71777344,-3914.20312500,0.00000000,0.00000000,0.00000000,90.00000000); //object(tunnelentrance) (4)
  179. CreateObject(972,2351.77783203,-3903.50878906,3.33301640,179.99450684,90.00000000,0.00000000); //object(tunnelentrance) (6)
  180. CreateObject(2961,2356.17700195,-3910.67041016,2.79942918,0.00000000,0.00000000,0.00000000); //object(fire_break) (1)
  181. CreateObject(972,2358.33984375,-3900.88647461,3.49389482,180.00000000,270.00000000,0.00000000); //object(tunnelentrance) (6)*/
  182.  
  183. /*CreateObject(2961,2356.17700195,-3910.67041016,2.79942918,0.00000000,0.00000000,0.00000000); //object(fire_break) (1)
  184. CreateObject(2395,2349.24926758,-3950.65625000,2.00000000,0.00000000,0.00000000,0.00000000); //object(cj_sports_wall) (1)
  185. CreateObject(2395,2354.17553711,-3956.76171875,4.75999975,180.00000000,0.00000000,0.00000000); //object(cj_sports_wall) (2)
  186. CreateObject(2395,2352.83911133,-3950.61743164,2.00000000,0.00000000,0.00000000,0.00000000); //object(cj_sports_wall) (3)
  187. CreateObject(2395,2356.07568359,-3950.58129883,2.00000000,0.00000000,0.00000000,270.00000000); //object(cj_sports_wall) (4)
  188. CreateObject(2395,2356.07568359,-3953.60644531,2.00000000,0.00000000,0.00000000,270.00000000); //object(cj_sports_wall) (5)
  189. CreateObject(2395,2350.36743164,-3953.61206055,1.99774754,0.00000000,0.00000000,90.00000000); //object(cj_sports_wall) (6)
  190. CreateObject(2395,2350.35986328,-3957.12304688,2.00000000,0.00000000,0.00000000,90.00000000); //object(cj_sports_wall) (7)
  191. CreateObject(2395,2350.46997070,-3956.80590820,4.72985268,179.99450684,0.00000000,0.00000000); //object(cj_sports_wall) (8)
  192. CreateObject(3911,2392.29052734,-3940.34887695,-12.09347916,0.00000000,0.00000000,0.00000000); //object(lib_street13) (1)
  193. CreateObject(3911,2327.62646484,-3937.61425781,19.00000000,0.00000000,180.00000000,0.00000000); //object(lib_street13) (2)*/
  194.  
  195. CreateObject(2395,2116.90966797,2415.22021484,48.52343750,0.00000000,0.00000000,90.00000000); //object(cj_sports_wall) (5)
  196. CreateObject(2395,2116.90991211,2418.94995117,48.52343750,0.00000000,0.00000000,90.00000000); //object(cj_sports_wall) (6)
  197.  
  198. // -------------------- BASEMENT ---------------- //
  199.  
  200. PrisonDoor = CreateObject(2634,2144.16699219,1627.09228516,994.19879150,0.00000000,0.00000000,180.00000000); //object(ab_vaultdoor) (1) closed
  201. //CreateObject(2634,2143.13623047,1628.26574707,994.02032471,0.00000000,0.00000000,270.00000000); //object(ab_vaultdoor) (2) open
  202. CreateObject(1508,2144.37133789,1606.60437012,994.34649658,0.00000000,0.00000000,90.00000000); //object(dyn_garage_door) (1)
  203. CreateObject(9819,2157.38818359,1622.85974121,993.39160156,0.00000000,0.00000000,0.00000000); //object(shpbridge_sfw02) (1)
  204.  
  205.  
  206.  
  207. /*
  208. Objects converted: 43
  209. Vehicles converted: 7
  210. Vehicle models found: 5
  211. ----------------------
  212. In the time this conversion took to finish the US national debt has risen by about $1,598.51!
  213. */
  214. return 1;
  215. }
  216.  
  217. public OnGameModeExit()
  218. {
  219. new file[128];
  220. for(new i; i < MAX_PLAYERS; i++)
  221. {
  222. if(IsLogged[i] == 1)
  223. {
  224.  
  225. IsLogged[i] = 0;
  226. new name[MAX_PLAYER_NAME];
  227. GetPlayerName(i, name, sizeof(name));
  228. format(file,sizeof(file),"(saji)%s.ini",name);
  229. dini_IntSet(file,"SajiCard", SajiCard[i]);
  230. PlayerPlaySound(i,1057,0.0,0.0,0.0);
  231. }
  232. }
  233. return 1;
  234. }
  235.  
  236. public OnPlayerRequestClass(playerid, classid)
  237. {
  238. SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  239. SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  240. SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  241. return 1;
  242. }
  243.  
  244. public OnPlayerConnect(playerid)
  245. {
  246. Poisoned[playerid] = 0;
  247. new ShredName[MAX_PLAYER_NAME];
  248. IsLogged[playerid] = 0;
  249. GetPlayerName(playerid, ShredName, sizeof(ShredName));
  250. if(strcmp(ShredName, "Masahiro_Saji", true) == 0)
  251. {
  252. SajiCardOwner[playerid] = 1;
  253. SajiCard[playerid] = 3;
  254. }
  255. else if(strcmp(ShredName, "Yuuta_Saji", true) == 0)
  256. {
  257. SajiCardOwner[playerid] = 1;
  258. SajiCard[playerid] = 3;
  259. }
  260. else
  261. {
  262. SajiCardOwner[playerid] = 0;
  263. }
  264. return 1;
  265. }
  266.  
  267. public OnPlayerDisconnect(playerid, reason)
  268. {
  269. new file[128];
  270. if(IsLogged[playerid] == 1)
  271. {
  272. IsLogged[playerid] = 0;
  273. new name[MAX_PLAYER_NAME];
  274. GetPlayerName(playerid, name, sizeof(name));
  275. format(file,sizeof(file),"(saji)%s.ini",name);
  276. dini_IntSet(file,"SajiCard", SajiCard[playerid]);
  277. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  278. }
  279. return 1;
  280. }
  281.  
  282. public OnPlayerSpawn(playerid)
  283. {
  284. return 1;
  285. }
  286.  
  287. public OnPlayerDeath(playerid, killerid, reason)
  288. {
  289. KillTimer(poisontimer);
  290. Poisoned[playerid] = 0;
  291. return 1;
  292. }
  293.  
  294. public OnVehicleSpawn(vehicleid)
  295. {
  296. return 1;
  297. }
  298.  
  299. public OnVehicleDeath(vehicleid, killerid)
  300. {
  301. return 1;
  302. }
  303.  
  304. /*strtok(const string[], &index)
  305. {
  306. new length = strlen(string);
  307. while ((index < length) && (string[index] <= ' '))
  308. {
  309. index++;
  310. }
  311.  
  312. new offset = index;
  313. new result[20];
  314. while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
  315. {
  316. result[index - offset] = string[index];
  317. index++;
  318. }
  319. result[index - offset] = EOS;
  320. return result;
  321. }*/
  322.  
  323. public OnPlayerText(playerid, text[])
  324. {
  325. if(InElevator[playerid] == 1)
  326. {
  327. new tmp[MAX_STRING];
  328. new idx;
  329. tmp = strtok(text, idx);
  330. if((strcmp("Balcony", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("Balcony")))
  331. {
  332. ChosenPlace[playerid] = 1;
  333. InElevator[playerid] = 0;
  334. GameTextForPlayer(playerid, "~y~ Elevator Moving", 4000, 4);
  335. SetTimerEx("ElevatorTimer", 20000, false, "i", playerid);
  336. return 0;
  337. }
  338. else if((strcmp("Helipad", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("Helipad")))
  339. {
  340. ChosenPlace[playerid] = 2;
  341. InElevator[playerid] = 0;
  342. GameTextForPlayer(playerid, "~y~ Elevator Moving", 4000, 4);
  343. SetTimerEx("ElevatorTimer", 20000, false, "i", playerid);
  344. return 0;
  345. }
  346. else if((strcmp("HouseBack", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("HouseBack")))
  347. {
  348. ChosenPlace[playerid] = 3;
  349. InElevator[playerid] = 0;
  350. GameTextForPlayer(playerid, "~y~ Elevator Moving", 4000, 4);
  351. SetTimerEx("ElevatorTimer", 20000, false, "i", playerid);
  352. return 0;
  353. }
  354. else if((strcmp("Inside", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("Inside")))
  355. {
  356. ChosenPlace[playerid] = 4;
  357. InElevator[playerid] = 0;
  358. GameTextForPlayer(playerid, "~y~` Elevator Moving", 4000, 4);
  359. SetTimerEx("ElevatorTimer", 20000, false, "i", playerid);
  360. return 0;
  361. }
  362. else if((strcmp("Basement", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("Basement")))
  363. {
  364. if(SajiCard[playerid] == 3)
  365. {
  366. ChosenPlace[playerid] = 5;
  367. InElevator[playerid] = 0;
  368. GameTextForPlayer(playerid, "~y~ Elevator Moving", 4000, 4);
  369. SetTimerEx("ElevatorTimer", 20000, false, "i", playerid);
  370. }
  371. if(SajiCard[playerid] == 0 || SajiCard[playerid] == 1 || SajiCard[playerid] == 2)
  372. {
  373. SendClientMessage(playerid, 0xFF0000AA, "You do not have a proper 'Saji Card' the elevator didn't move");
  374. SendClientMessage(playerid, 0xFF0000AA, "Please choose another location");
  375. InElevator[playerid] = 1;
  376. }
  377. return 0;
  378. }
  379. }
  380. return 1;
  381. }
  382.  
  383. public OnPlayerCommandText(playerid, cmdtext[])
  384. {
  385. new cmd[256], idx, file[128], tmp[256], tmp2[256];
  386. cmd = strtok(cmdtext, idx);
  387. dcmd(givesajicard, 12, cmdtext);
  388. dcmd(takesajicard, 12, cmdtext);
  389. if(strcmp(cmd, "/sajiregister", true) == 0)
  390. {
  391. if(IsPlayerInRangeOfPoint(playerid, 20.0, 569.8652,-2479.6045,8.9343))
  392. {
  393. new name[MAX_PLAYER_NAME];
  394. tmp = strtok(cmdtext, idx);
  395. GetPlayerName(playerid, name, sizeof(name));
  396. if(strlen(tmp) == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /sajiregister [password]");
  397. format(file,sizeof(file),"(saji)%s.ini",name);
  398. if(!fexist(file))
  399. {
  400. dini_Create(file);
  401. dini_IntSet(file, "Password", udb_hash(tmp));
  402. dini_IntSet(file,"SajiCard", 0);
  403. SendClientMessage(playerid, 0xFF0000AA, "[Saji System]: Account Created!");
  404. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  405. GetPlayerName(playerid, name, sizeof(name));
  406. printf("%s has registered a saji account!", name);
  407. }
  408. else
  409. {
  410. SendClientMessage(playerid, 0xFF0000AA, "[Saji System]: Account already exists");
  411. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  412. }
  413. }
  414. return 1;
  415. }
  416.  
  417. if(strcmp(cmd, "/sajilogin", true) == 0)
  418. {
  419. if(IsPlayerInRangeOfPoint(playerid, 20.0, 569.8652,-2479.6045,8.9343))
  420. {
  421. new PlayerName[24];
  422. tmp = strtok(cmdtext, idx);
  423. if(strlen(tmp) == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /sajilogin [password]");
  424. new name[MAX_PLAYER_NAME];
  425. if(IsLogged[playerid] == 1)
  426. {
  427. SendClientMessage(playerid, 0xFF0000AA, "[Saji System]: You already are logged in!");
  428. return 1;
  429. }
  430. else
  431. {
  432. GetPlayerName(playerid, name, sizeof(name));
  433. format(file,sizeof(file),"(saji)%s.ini",name);
  434. if(fexist(file))
  435. {
  436. tmp2 = dini_Get(file, "Password");
  437. if(udb_hash(tmp) != strval(tmp2))
  438. {
  439. SendClientMessage(playerid, 0xFF0000AA, "[Saji System]: Login Failed!");
  440. GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
  441. printf("%s has failed to saji login", name);
  442. }
  443. else
  444. {
  445. IsLogged[playerid] = 1;
  446. SajiInfo[playerid][sSajiCard] = dini_Int(file, "SajiCard");
  447. SajiCard[playerid] = dini_Int(file, "SajiCard");
  448. SendClientMessage(playerid, 0xFF0000AA, "[Saji System]: Account logged into!");
  449. }
  450. }
  451. }
  452. }
  453. return 1;
  454. }
  455.  
  456.  
  457. if(strcmp(cmdtext, "/sajienter", true) == 0)
  458. {
  459. if(IsPlayerInRangeOfPoint(playerid, 5.0, 570.0934,-2510.4434,8.9401))
  460. {
  461. if(SajiCard[playerid] == 1 || SajiCard[playerid] == 2 || SajiCard[playerid] == 3)
  462. {
  463. SetPlayerPos(playerid, 2318.0042,-1026.7645,1050.2178);
  464. SetPlayerInterior(playerid, 9);
  465. SetPlayerVirtualWorld(playerid, 7);
  466. }
  467. else if(SajiCard[playerid] == 0)
  468. {
  469. SendClientMessage(playerid, 0xFF0000AA, "You do not have a 'Saji Card'! The door did not open");
  470. }
  471. }
  472. /*else if(IsPlayerInRangeOfPoint(playerid, 20.0, 569.6516,-2545.1235,8.9401))
  473. {
  474. if(SajiCard[playerid] == 1 || SajiCard[playerid] == 2 || SajiCard[playerid] == 3)
  475. {
  476. SetPlayerPos(playerid, 2320.9414,-1007.4769,1050.2109);
  477. SetPlayerInterior(playerid, 9);
  478. }
  479. else if(SajiCard[playerid] == 0)
  480. {
  481. SendClientMessage(playerid, 0xFF0000AA, "You do not have a 'Saji Card'! The door did not open");
  482. }
  483. }*/
  484. else if(IsPlayerInRangeOfPoint(playerid, 5.0, 569.6516,-2545.1235,8.9401))
  485. {
  486. if(SajiCard[playerid] == 1 || SajiCard[playerid] == 2 || SajiCard[playerid] == 3)
  487. {
  488. SetPlayerPos(playerid, 2117.8008,2416.3088,49.5234);
  489. SetPlayerInterior(playerid, 0);
  490. GameTextForPlayer(playerid, "~y~ Elevator Moving...", 4000, 4);
  491. SendClientMessage(playerid, 0xFF0000AA, "Type 'Balcony' or 'Helipad' or 'Inside' or 'Basement' to choose your place");
  492. InElevator[playerid] = 1;
  493. SetPlayerVirtualWorld(playerid, 0);
  494. //ElevatorTime[playerid] = 1;
  495. //SetTimerEx("ElevatorTimer", 20000, false, "i", playerid);
  496. }
  497. if(SajiCard[playerid] == 0)
  498. {
  499. SendClientMessage(playerid, 0xFF0000AA, "You do not have a proper 'Saji Card', the elevator didn't come down");
  500. }
  501. }
  502. else if(IsPlayerInRangeOfPoint(playerid, 5.0, 570.0879,-2518.2334,12.7829)) //balcony
  503. {
  504. if(SajiCard[playerid] == 1 || SajiCard[playerid] == 2 || SajiCard[playerid] == 3)
  505. {
  506. SetPlayerPos(playerid, 2117.8008,2416.3088,49.5234);
  507. SetPlayerInterior(playerid, 0);
  508. GameTextForPlayer(playerid, "~y~ Elevator Moving...", 4000, 4);
  509. SendClientMessage(playerid, 0xFF0000AA, "Type 'HouseBack' or 'Helipad' or 'Inside' or 'Basement' to choose your place");
  510. InElevator[playerid] = 1;
  511. SetPlayerVirtualWorld(playerid, 0);
  512. //ElevatorTime[playerid] = 1;
  513. //SetTimerEx("ElevatorTimer", 20000, false, "i", playerid);
  514. }
  515. if(SajiCard[playerid] == 0)
  516. {
  517. SendClientMessage(playerid, 0xFF0000AA, "You do not have a proper 'Saji Card', the elevator didn't come down");
  518. }
  519. }
  520. else if(IsPlayerInRangeOfPoint(playerid, 5.0, 569.6080,-2565.8938,8.4220))
  521. {
  522. if(SajiCard[playerid] == 1 || SajiCard[playerid] == 2 || SajiCard[playerid] == 3)
  523. {
  524. SetPlayerPos(playerid, 2117.8008,2416.3088,49.5234);
  525. SetPlayerInterior(playerid, 0);
  526. GameTextForPlayer(playerid, "~y~ Elevator Moving...", 4000, 4);
  527. SendClientMessage(playerid, 0xFF0000AA, "Type 'Balcony' or 'HouseBack' or 'Inside' or 'Basement' to choose your place");
  528. InElevator[playerid] = 1;
  529. SetPlayerVirtualWorld(playerid, 0);
  530. //ElevatorTime[playerid] = 1;
  531. //SetTimerEx("ElevatorTimer", 20000, false, "i", playerid);
  532. }
  533. if(SajiCard[playerid] == 0)
  534. {
  535. SendClientMessage(playerid, 0xFF0000AA, "You do not have a proper 'Saji Card', the elevator didn't come down");
  536. }
  537. }
  538. else if(IsPlayerInRangeOfPoint(playerid, 5.0, 2320.9414,-1007.4769,1050.2109))
  539. {
  540. if(SajiCard[playerid] == 1 || SajiCard[playerid] == 2 || SajiCard[playerid] == 3)
  541. {
  542. SetPlayerPos(playerid,2117.8008,2416.3088,49.5234);
  543. SetPlayerInterior(playerid, 0);
  544. GameTextForPlayer(playerid, "~y~ Elevator Moving...", 4000, 4);
  545. SendClientMessage(playerid, 0xFF0000AA, "Type 'Balcony' or 'HouseBack' or 'Helipad' or 'Basement' to choose your place");
  546. InElevator[playerid] = 1;
  547. SetPlayerVirtualWorld(playerid, 0);
  548. }
  549. if(SajiCard[playerid] == 0)
  550. {
  551. SendClientMessage(playerid, 0xFF0000AA, "You do not have a proper 'Saji Card', the elevator didn't come down");
  552. }
  553. }
  554. else if(IsPlayerInRangeOfPoint(playerid, 5.0, 2144.1006,1607.5321,993.6882))
  555. {
  556. if(SajiCard[playerid] == 3)
  557. {
  558. SetPlayerPos(playerid, 2117.8008,2416.3088,49.5234);
  559. SetPlayerInterior(playerid, 0);
  560. GameTextForPlayer(playerid, "~y~ Elevator Moving...", 4000, 4);
  561. SendClientMessage(playerid, 0xFF0000Aa, "Type 'Balcony' or 'HouseBack' or 'Helipad' or 'Inside' to choose your place");
  562. InElevator[playerid] = 1;
  563. SetPlayerVirtualWorld(playerid, 0);
  564. }
  565. if(SajiCard[playerid] == 1 || SajiCard[playerid] == 0 || SajiCard[playerid] == 2)
  566. {
  567. SendClientMessage(playerid, 0xFF0000AA, "You do not have a proper 'Saji Card', the elevator didn't come down");
  568. }
  569. }
  570. return 1;
  571. }
  572. if(strcmp(cmdtext, "/sajiexit", true) == 0)
  573. {
  574. if(IsPlayerInRangeOfPoint(playerid, 20.0, 2318.0042,-1026.7645,1050.2178) && GetPlayerVirtualWorld(playerid) == 7)
  575. {
  576. if(SajiCard[playerid] == 1 || SajiCard[playerid] == 2 || SajiCard[playerid] == 3)
  577. {
  578. SetPlayerPos(playerid,570.0934,-2510.4434,8.9401);
  579. SetPlayerInterior(playerid, 0);
  580. SetPlayerVirtualWorld(playerid, 0);
  581. }
  582. else if(SajiCard[playerid] == 0)
  583. {
  584. SendClientMessage(playerid, 0xFF0000AA, "You do not have a 'Saji Card'! The door did not open");
  585. }
  586. }
  587. /*else if(IsPlayerInRangeOfPoint(playerid, 20.0, 2320.9414,-1007.4769,1050.2109))
  588. {
  589. if(SajiCard[playerid] == 1 || SajiCard[playerid] == 2 || SajiCard[playerid] == 3)
  590. {
  591. SetPlayerPos(playerid, 569.6516,-2545.1235,8.9401);
  592. SetPlayerInterior(playerid, 0);
  593. }
  594. else if(SajiCard[playerid] == 0)
  595. {
  596. SendClientMessage(playerid, 0xFF0000AA, "You do not have a 'Saji Card'! The door did not open");
  597. }
  598. }*/
  599. else if(IsPlayerInRangeOfPoint(playerid, 20.0, 2117.8008,2416.3088,49.5234))
  600. {
  601. if(ElevatorTime[playerid] == 1)
  602. {
  603. if(ChosenPlace[playerid] == 1) // Balcony
  604. {
  605. SetPlayerPos(playerid, 570.0879,-2518.2334,12.7829);
  606. ElevatorTime[playerid] = 0;
  607. SetPlayerVirtualWorld(playerid, 0);
  608. }
  609. if(ChosenPlace[playerid] == 2) // HouseBack
  610. {
  611. SetPlayerPos(playerid, 569.6080,-2565.8938,8.4220);
  612. ElevatorTime[playerid] = 0;
  613. SetPlayerVirtualWorld(playerid, 0);
  614. }
  615. if(ChosenPlace[playerid] == 3) // Helipad
  616. {
  617. SetPlayerPos(playerid, 569.6516,-2545.1235,8.9401);
  618. ElevatorTime[playerid] = 0;
  619. SetPlayerVirtualWorld(playerid, 0);
  620. }
  621. if(ChosenPlace[playerid] == 4) // Inside the house
  622. {
  623. SetPlayerPos(playerid, 2320.9414,-1007.4769,1050.2109);
  624. SetPlayerInterior(playerid, 9);
  625. ElevatorTime[playerid] = 0;
  626. SetPlayerVirtualWorld(playerid, 7);
  627. }
  628. if(ChosenPlace[playerid] == 5) // Basement
  629. {
  630. SetPlayerPos(playerid, 2144.1006,1607.5321,993.6882);
  631. SetPlayerInterior(playerid, 1);
  632. ElevatorTime[playerid] = 0;
  633. SetPlayerVirtualWorld(playerid, 0);
  634. }
  635. }
  636. else
  637. {
  638. }
  639. }
  640. return 1;
  641. }
  642. /*if(strcmp(cmdtext, "/elevator", true) == 0)
  643. {
  644. SetPlayerPos(playerid,2116.90966797,2415.22021484,48.52343750);
  645. return 1;
  646. }*/
  647. if(strcmp(cmdtext, "/sajiclothes", true) == 0)
  648. {
  649. if(IsPlayerInRangeOfPoint(playerid, 10.0, 2326.9646,-1015.4194,1054.7111))
  650. {
  651. if(SajiCard[playerid] == 2 || SajiCard[playerid] == 3)
  652. {
  653. ShowMenuForPlayer(ClothesMenu, playerid);
  654. }
  655. else if(SajiCard[playerid] == 0 || SajiCard[playerid] == 1)
  656. {
  657. SendClientMessage(playerid, 0xFF0000AA, "You do not have the proper 'Saji Card' to open the closet");
  658. }
  659. }
  660. return 1;
  661. }
  662.  
  663. if(strcmp(cmdtext, "/opensafe", true) == 0)
  664. {
  665. if(IsPlayerInRangeOfPoint(playerid, 25.0, 573.4168,-2476.4045,8.0401))
  666. {
  667. if(SajiCard[playerid] == 3)
  668. {
  669. MoveObject(Door1, 573.3536,-2482.6292,9.0627, 1.0);
  670. MoveObject(Door2, 573.3536,-2482.6292,9.0627, 1.0);
  671. }
  672. else if(SajiCard[playerid] == 0 || SajiCard[playerid] == 2 || SajiCard[playerid] == 1)
  673. {
  674. SendClientMessage(playerid, 0xFF0000AA, "You do not have a proper 'Saji Card', the doors didn't open");
  675. }
  676. }
  677. return 1;
  678. }
  679. if(strcmp(cmdtext, "/closesafe", true) == 0)
  680. {
  681. if(IsPlayerInRangeOfPoint(playerid, 25.0, 573.4168,-2476.4045,8.0401))
  682. {
  683. if(SajiCard[playerid] == 3)
  684. {
  685. MoveObject(Door1, 576.47949219,-2482.05273438,9.14696503, 1.0);
  686. MoveObject(Door2, 574.95898438,-2482.04101562,9.14696503, 1.0);
  687. }
  688. else if(SajiCard[playerid] == 0 || SajiCard[playerid] == 1 || SajiCard[playerid] == 2)
  689. {
  690. SendClientMessage(playerid, 0xFF0000AA, "You do not have a proper 'Saji Card', the doors didn't close");
  691. }
  692. }
  693. return 1;
  694. }
  695. if(strcmp(cmdtext, "/opendoor", true) == 0)
  696. {
  697. if(IsPlayerInRangeOfPoint(playerid, 15.0, 2144.16699219,1627.09228516,994.19879150))
  698. {
  699. if(SajiCard[playerid] == 3)
  700. {
  701. SetObjectPos(PrisonDoor, 2143.13623047,1628.26574707,994.02032471);
  702. SetObjectRot(PrisonDoor, 0.00000000,0.00000000,270.00000000);
  703. }
  704. else if(SajiCard[playerid] == 0 || SajiCard[playerid] == 1 || SajiCard[playerid] == 2)
  705. {
  706. SendClientMessage(playerid, 0xFF0000AA, "You do not have the proper 'Saji Card' to open the door");
  707. }
  708. }
  709. return 1;
  710. }
  711. if(strcmp(cmdtext, "/closedoor", true) == 0)
  712. {
  713. if(IsPlayerInRangeOfPoint(playerid, 15.0, 2144.16699219,1627.09228516,994.19879150))
  714. {
  715. if(SajiCard[playerid] == 3)
  716. {
  717. SetObjectPos(PrisonDoor, 2144.16699219,1627.09228516,994.19879150);
  718. SetObjectRot(PrisonDoor, 0.000000,0.000000,180.000000);
  719. }
  720. else if(SajiCard[playerid] == 0 || SajiCard[playerid] == 2 || SajiCard[playerid] == 1)
  721. {
  722. SendClientMessage(playerid, 0xFF0000AA, "You do not have the proper 'Saji Card' to open the door");
  723. }
  724. }
  725. return 1;
  726. }
  727. if(strcmp(cmdtext, "/sajidrink", true) == 0)
  728. {
  729. if(IsPlayerInRangeOfPoint(playerid, 15.0, 551.9208,-2488.3518,8.9401)) // Outside
  730. {
  731. ShowMenuForPlayer(DrinkMenu, playerid);
  732. }
  733. if(IsPlayerInRangeOfPoint(playerid, 15.0, 2324.4333,-1014.3292,1050.2178) && GetPlayerVirtualWorld(playerid) == 7) // Inside
  734. {
  735. ShowMenuForPlayer(DrinkMenu2, playerid);
  736. }
  737. return 1;
  738. }
  739. if (strcmp("/sajicards", cmdtext, true, 10) == 0)
  740. {
  741. if(IsPlayerConnected(playerid))
  742. {
  743. if(SajiCardOwner[playerid] == 0)
  744. {
  745. SendClientMessage(playerid,0xFF0000AA,"You are not a 'Saji Card Owner'!");
  746. }
  747. else
  748. {
  749. new llama;
  750. new shredname[MAX_PLAYER_NAME];
  751. new string[128];
  752. SendClientMessage(playerid, 0xFF0000AA, "----- Saji Cards ( Online ) -----");
  753. for(new players; players<MAX_PLAYERS; players++)
  754. if(IsPlayerConnected(players))
  755. {
  756. if(SajiCard[players] > 0)
  757. {
  758. GetPlayerName(players, shredname, sizeof(shredname));
  759. if(SajiCard[players] == 1)
  760. {
  761. format(string, sizeof(string), "%s: Saji Card - Guest",shredname);
  762. }
  763. if(SajiCard[players] == 2)
  764. {
  765. format(string, sizeof(string), "%s: Saji Card - Basic", shredname);
  766. }
  767. if(SajiCard[players] == 3)
  768. {
  769. format(string, sizeof(string), "%s: Saji Card - V.I.P", shredname);
  770. }
  771. }
  772. llama++;
  773. if(llama > 3)
  774. {
  775. SendClientMessage(playerid, 0xAA3333AA, string);
  776. llama = 0;
  777. format(string, sizeof(string), "");
  778. }
  779. else
  780. {
  781. format(string, sizeof(string), "%s, ", string);
  782. }
  783. }
  784.  
  785. if(llama <= 3 && llama > 0)
  786. {
  787. string[strlen(string)-2] = '.';
  788. SendClientMessage(playerid, 0xAA3333AA, string);
  789. }
  790. }
  791. }
  792. return 1;
  793. }
  794. return 0;
  795. }
  796.  
  797. public ElevatorTimer(playerid)
  798. {
  799. ElevatorTime[playerid] = 1;
  800. GameTextForPlayer(playerid, "~r~ You're at the area", 4000, 4);
  801. return 1;
  802. }
  803.  
  804. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  805. {
  806. return 1;
  807. }
  808.  
  809. public OnPlayerExitVehicle(playerid, vehicleid)
  810. {
  811. return 1;
  812. }
  813.  
  814. public OnPlayerStateChange(playerid, newstate, oldstate)
  815. {
  816. if(newstate == PLAYER_STATE_DRIVER)
  817. {
  818. new HiShred;
  819. HiShred = GetPlayerVehicleID(playerid);
  820. if(HiShred == SajiVeh1 || HiShred == SajiVeh2 || HiShred == SajiVeh3 || HiShred == SajiVeh4 || HiShred == SajiVeh5 || HiShred == SajiVeh6 || HiShred == SajiVeh7)
  821. {
  822. if(SajiCard[playerid] == 1 || SajiCard[playerid] == 2 || SajiCard[playerid] == 3) // Guest / V.I.P
  823. {
  824. SendClientMessage(playerid, 0xFF0000AA, "You've started the engine with your Saji Card!");
  825. }
  826. else if(SajiCard[playerid] == 0) // None / Basic
  827. {
  828. SendClientMessage(playerid, 0xFF0000AA, "[Engine Alert]: You do not have a proper Saji Card, the engine did not start");
  829. RemovePlayerFromVehicle(playerid);
  830. }
  831. }
  832. }
  833. return 1;
  834. }
  835.  
  836. public OnPlayerEnterCheckpoint(playerid)
  837. {
  838. return 1;
  839. }
  840.  
  841. public OnPlayerLeaveCheckpoint(playerid)
  842. {
  843. return 1;
  844. }
  845.  
  846. public OnPlayerEnterRaceCheckpoint(playerid)
  847. {
  848. return 1;
  849. }
  850.  
  851. public OnPlayerLeaveRaceCheckpoint(playerid)
  852. {
  853. return 1;
  854. }
  855.  
  856. public OnRconCommand(cmd[])
  857. {
  858. return 1;
  859. }
  860.  
  861. public OnPlayerRequestSpawn(playerid)
  862. {
  863. return 1;
  864. }
  865.  
  866. public OnObjectMoved(objectid)
  867. {
  868. return 1;
  869. }
  870.  
  871. public OnPlayerObjectMoved(playerid, objectid)
  872. {
  873. return 1;
  874. }
  875.  
  876. public OnPlayerPickUpPickup(playerid, pickupid)
  877. {
  878. /*if(pickupid == SajiPickup1)
  879. {
  880. GameTextForPlayer(playerid, "~w~ Type ~r~ /sajienter ~w~ to go inside", 4000, 4);
  881. }
  882. if(pickupid == SajiPickup2)
  883. {
  884. GameTextForPlayer(playerid, "~w~ Type ~r~ /sajienter ~w~ to enter the ~r~ elevator", 4000, 4);
  885. }
  886. if(pickupid == SajiPickup3)
  887. {
  888. GameTextForPlayer(playerid, "~w~ Type ~r~ /sajienter ~w~ to enter the ~r~ elevator", 4000, 4);
  889. }
  890. if(pickupid == SajiPickup4)
  891. {
  892. GameTextForPlayer(playerid, "~w~ Type ~r~ /sajienter ~w~ to enter the ~r~ elevator", 4000, 4);
  893. }*/
  894. if(pickupid == SajiPickup5)
  895. {
  896. GameTextForPlayer(playerid, "~w~ Type ~r~ /sajienter ~w~ to enter the ~r~ elevator", 4000, 4);
  897. }
  898. /*if(pickupid == SajiPickup6)
  899. {
  900. GameTextForPlayer(playerid, "~w~ Type ~r~ /sajienter ~w~ to enter the ~r~ elevator", 4000, 4);
  901. }*/
  902. return 1;
  903. }
  904.  
  905. public OnVehicleMod(playerid, vehicleid, componentid)
  906. {
  907. return 1;
  908. }
  909.  
  910. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  911. {
  912. return 1;
  913. }
  914.  
  915. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  916. {
  917. return 1;
  918. }
  919.  
  920. public OnPlayerSelectedMenuRow(playerid, row)
  921. {
  922. new Menu:CurrentMenu = GetPlayerMenu(playerid);
  923. if (CurrentMenu == DrinkMenu)
  924. {
  925. switch(row)
  926. {
  927. case 0: // Wine
  928. {
  929. new Float:ShredHealth;
  930. GetPlayerHealth(playerid, ShredHealth);
  931. if(ShredHealth < 70)
  932. {
  933. SetPlayerHealth(playerid, ShredHealth + 30);
  934. }
  935. else if(ShredHealth > 70)
  936. {
  937. SetPlayerHealth(playerid, 100);
  938. }
  939. }
  940. }
  941. }
  942. if (CurrentMenu == DrinkMenu2)
  943. {
  944. switch(row)
  945. {
  946. case 0: // Wine
  947. {
  948. new Float:ShredHealth;
  949. GetPlayerHealth(playerid, ShredHealth);
  950. if(ShredHealth < 70)
  951. {
  952. SetPlayerHealth(playerid, ShredHealth + 30);
  953. }
  954. else if(ShredHealth > 70)
  955. {
  956. SetPlayerHealth(playerid, 100);
  957. }
  958. }
  959. case 1:
  960. {
  961. new Float:ShredHealth;
  962. GetPlayerHealth(playerid, ShredHealth);
  963. if(ShredHealth < 70)
  964. {
  965. SetPlayerHealth(playerid, ShredHealth + 30);
  966. }
  967. else if(ShredHealth > 70)
  968. {
  969. SetPlayerHealth(playerid, 100);
  970. }
  971. }
  972. case 2:
  973. {
  974. new Float:ShredHealth;
  975. GetPlayerHealth(playerid, ShredHealth);
  976. if(ShredHealth < 70)
  977. {
  978. SetPlayerHealth(playerid, ShredHealth + 30);
  979. }
  980. else if(ShredHealth > 70)
  981. {
  982. SetPlayerHealth(playerid, 100);
  983. }
  984. }
  985. case 3:
  986. {
  987. new Float:ShredHealth;
  988. GetPlayerHealth(playerid, ShredHealth);
  989. if(ShredHealth < 70)
  990. {
  991. SetPlayerHealth(playerid, ShredHealth + 30);
  992. }
  993. else if(ShredHealth > 70)
  994. {
  995. SetPlayerHealth(playerid, 100);
  996. }
  997. }
  998. case 4:
  999. {
  1000. new Float:ShredHealth;
  1001. GetPlayerHealth(playerid, ShredHealth);
  1002. if(ShredHealth < 70)
  1003. {
  1004. SetPlayerHealth(playerid, ShredHealth + 30);
  1005. }
  1006. else if(ShredHealth > 70)
  1007. {
  1008. SetPlayerHealth(playerid, 100);
  1009. }
  1010. }
  1011. case 5: // Saji Special
  1012. {
  1013. if(Poisoned[playerid] == 0)
  1014. {
  1015. if(SajiCard[playerid] == 3)
  1016. {
  1017. SetPlayerHealth(playerid, 30);
  1018. Poisoned[playerid] = 1;
  1019. poisontimer = SetTimerEx("PoisonTimer", 180000, false, "i", playerid);
  1020. SendClientMessage(playerid, 0xFF0000AA, "You start feeling awkward and your skin is freezing as you shake. You are poisoned you will last 3-5 minutes..");
  1021. }
  1022. else if(SajiCard[playerid] == 0 || SajiCard[playerid] == 1 || SajiCard[playerid] == 2)
  1023. {
  1024. SendClientMessage(playerid, 0xFF0000AA, "You do not have the proper 'Saji Card' to obtain this drink");
  1025. }
  1026. }
  1027. else
  1028. {
  1029. }
  1030. }
  1031. case 6: // Saji Freedom
  1032. {
  1033. if(Poisoned[playerid] == 1)
  1034. {
  1035. if(SajiCard[playerid] == 3)
  1036. {
  1037. SetPlayerHealth(playerid, 100);
  1038. Poisoned[playerid] = 0;
  1039. KillTimer(poisontimer);
  1040. SendClientMessage(playerid, 0xFF0000AA, "You don't feel the liquid at first, though you slightly get more concious of your presence. You have been cured");
  1041. }
  1042. else if(SajiCard[playerid] == 0 || SajiCard[playerid] == 2 || SajiCard[playerid] == 1)
  1043. {
  1044. SendClientMessage(playerid, 0xFF0000AA, "You do not have the proper 'Saji Card' to obtain this drink");
  1045. }
  1046. }
  1047. else
  1048. {
  1049. }
  1050. }
  1051. }
  1052. }
  1053. if(CurrentMenu == ClothesMenu)
  1054. {
  1055. switch(row)
  1056. {
  1057. case 0:
  1058. {
  1059. SetPlayerSkin(playerid, 252);
  1060. }
  1061. case 1:
  1062. {
  1063. SetPlayerSkin(playerid, 256);
  1064. }
  1065. case 2:
  1066. {
  1067. SetPlayerSkin(playerid, 60);
  1068. }
  1069. case 3:
  1070. {
  1071. SetPlayerSkin(playerid, 121);
  1072. }
  1073. case 4:
  1074. {
  1075. SetPlayerSkin(playerid, 122);
  1076. }
  1077. case 5:
  1078. {
  1079. SetPlayerSkin(playerid, 57);
  1080. }
  1081. case 6:
  1082. {
  1083. SetPlayerSkin(playerid, 123);
  1084. }
  1085. case 7:
  1086. {
  1087. SetPlayerSkin(playerid, 186);
  1088. }
  1089. case 8:
  1090. {
  1091. SetPlayerSkin(playerid, 49);
  1092. }
  1093. case 9:
  1094. {
  1095. SetPlayerSkin(playerid, 246);
  1096. }
  1097. case 10:
  1098. {
  1099. SetPlayerSkin(playerid, 203);
  1100. }
  1101. case 11:
  1102. {
  1103. SetPlayerSkin(playerid, 210);
  1104. }
  1105. case 12:
  1106. {
  1107. SetPlayerSkin(playerid, 204);
  1108. }
  1109. }
  1110. }
  1111.  
  1112. return 1;
  1113. }
  1114.  
  1115. public PoisonTimer(playerid)
  1116. {
  1117. SetPlayerHealth(playerid, 0);
  1118. SendClientMessage(playerid, 0xFF0000AA, "The poison has taken over and you can no longer struggle it, you fade into darkness");
  1119. Poisoned[playerid] = 0;
  1120. return 1;
  1121. }
  1122.  
  1123. public OnPlayerExitedMenu(playerid)
  1124. {
  1125. return 1;
  1126. }
  1127.  
  1128. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  1129. {
  1130. return 1;
  1131. }
  1132.  
  1133. public OnSajiUpdate(giveplayerid, cardid)
  1134. {
  1135. new file[128];
  1136. if(IsLogged[giveplayerid] == 1)
  1137. {
  1138. if(cardid == 2 || cardid == 3)
  1139. {
  1140. new name[MAX_PLAYER_NAME];
  1141. GetPlayerName(giveplayerid, name, sizeof(name));
  1142. format(file,sizeof(file),"(saji)%s.ini",name);
  1143. dini_IntSet(file,"SajiCard", cardid);
  1144. PlayerPlaySound(giveplayerid,1057,0.0,0.0,0.0);
  1145. SendClientMessage(giveplayerid, 0xFF0000AA, "[Saji System]: All your Saji Information has been processed");
  1146. }
  1147. if(cardid == 1 || cardid == 0) // Take the card / Guest ( does not save ).
  1148. {
  1149. new name[MAX_PLAYER_NAME];
  1150. GetPlayerName(giveplayerid, name, sizeof(name));
  1151. format(file, sizeof(file), "(saji)%s.ini",name);
  1152. dini_IntSet(file, "SajiCard", 0);
  1153. PlayerPlaySound(giveplayerid, 1057,0.0,0.0,0.0);
  1154. SendClientMessage(giveplayerid, 0xFF0000AA, "[Saji System]: all you Saji Information has been processed");
  1155. }
  1156. }
  1157. return 1;
  1158. }
  1159.  
  1160. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  1161. {
  1162. return 1;
  1163. }
  1164.  
  1165. public OnRconLoginAttempt(ip[], password[], success)
  1166. {
  1167. return 1;
  1168. }
  1169.  
  1170. public OnPlayerUpdate(playerid)
  1171. {
  1172. return 1;
  1173. }
  1174.  
  1175. public OnPlayerStreamIn(playerid, forplayerid)
  1176. {
  1177. return 1;
  1178. }
  1179.  
  1180. public OnPlayerStreamOut(playerid, forplayerid)
  1181. {
  1182. return 1;
  1183. }
  1184.  
  1185. public OnVehicleStreamIn(vehicleid, forplayerid)
  1186. {
  1187. return 1;
  1188. }
  1189.  
  1190. public OnVehicleStreamOut(vehicleid, forplayerid)
  1191. {
  1192. return 1;
  1193. }
  1194.  
  1195. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  1196. {
  1197. return 1;
  1198. }
  1199.  
  1200. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  1201. {
  1202. return 1;
  1203. }
  1204.  
  1205. dcmd_givesajicard(playerid, params[])
  1206. {
  1207. new
  1208. giveplayerid,
  1209. Float:X,Float:Y,Float:Z,
  1210. ShredName[MAX_PLAYER_NAME],
  1211. ShreddName[MAX_PLAYER_NAME],
  1212. cardid;
  1213. GetPlayerPos(giveplayerid, X, Y, Z);
  1214. GetPlayerName(playerid, ShredName, sizeof(ShredName));
  1215. GetPlayerName(giveplayerid, ShreddName, sizeof(ShreddName));
  1216. if (sscanf(params, "ud", giveplayerid, cardid)) SendClientMessage(playerid, 0xFF0000AA, "Correct Use: /givesajicard [playerid] [cardid]");
  1217. else if (SajiCardOwner[playerid] == 0) SendClientMessage(playerid, 0xFF0000AA, "You are not a 'Saji Card' owner!");
  1218. else if (!IsPlayerInRangeOfPoint(playerid, 20.0, X, Y, Z)) SendClientMessage(playerid, 0xFF000AA, "You are not near that player");
  1219. else if (giveplayerid == INVALID_PLAYER_ID) SendClientMessage(playerid, 0xFF0000AA, "Player does not exist");
  1220. else if (cardid < 1 || cardid > 3) SendClientMessage(playerid, 0xFF0000AA, "Invalid Card ID");
  1221. else
  1222. {
  1223. new string[128];
  1224. format(string, sizeof(string), "%s has given you a Saji Card! [ID: %d]", ShredName, cardid);
  1225. SendClientMessage(giveplayerid, 0xFF0000AA, string);
  1226. format(string, sizeof(string), "You have given %s a Saji Card! [ID: %d]", ShreddName, cardid);
  1227. SendClientMessage(playerid, 0xFF0000AA, string);
  1228. SajiCard[giveplayerid] = cardid;
  1229. SajiInfo[playerid][sSajiCard] = cardid;
  1230.  
  1231. new name[MAX_PLAYER_NAME], file[256];
  1232. GetPlayerName(playerid, name, sizeof(name));
  1233. format(file,sizeof(file),"(saji)%s.ini",name);
  1234. OnSajiUpdate(giveplayerid, cardid);
  1235. if(cardid == 1) // Guest does not save.
  1236. {
  1237. dini_IntSet(file,"SajiCard", 0);
  1238. }
  1239. if(cardid == 2)
  1240. {
  1241. dini_IntSet(file,"SajiCard", 2);
  1242. }
  1243. if(cardid == 3)
  1244. {
  1245. dini_IntSet(file, "SajiCard", 3);
  1246. }
  1247.  
  1248. }
  1249. return 1;
  1250. }
  1251.  
  1252. dcmd_takesajicard(playerid, params[])
  1253. {
  1254. new
  1255. giveplayerid,
  1256. ShreddName[MAX_PLAYER_NAME];
  1257. GetPlayerName(giveplayerid, ShreddName, sizeof(ShreddName));
  1258. if (sscanf(params, "u", giveplayerid)) SendClientMessage(playerid, 0xFF0000AA, "Correct Use: /takesajicard [playerid]");
  1259. else if (SajiCardOwner[playerid] == 0) SendClientMessage(playerid, 0xFF0000AA, "You are not a 'Saji Card' owner!");
  1260. else if (giveplayerid == INVALID_PLAYER_ID) SendClientMessage(playerid, 0xFF0000AA, "Player does not exist");
  1261. else
  1262. {
  1263. new string[128];
  1264. SendClientMessage(giveplayerid, 0xFF0000AA, " Saji Systems has marked your card invalid - it has now expired. ");
  1265. format(string, sizeof(string), "You've made %s his Saji Card invalid", ShreddName);
  1266. SendClientMessage(playerid, 0xFF0000AA, string);
  1267. SajiCard[giveplayerid] = 0;
  1268.  
  1269. new name[MAX_PLAYER_NAME], file[256];
  1270. GetPlayerName(playerid, name, sizeof(name));
  1271. format(file,sizeof(file),"(saji)%s.ini",name);
  1272. dini_IntSet(file,"SajiCard", 0);
  1273. OnSajiUpdate(giveplayerid, 0);
  1274. }
  1275. return 1;
  1276. }
  1277.  
  1278.  
  1279.  
  1280. /*----------------------------------------------------------------------------*-
  1281. Function:
  1282. sscanf
  1283. Params:
  1284. string[] - String to extract parameters from.
  1285. format[] - Parameter types to get.
  1286. {Float,_}:... - Data return variables.
  1287. Return:
  1288. 0 - Successful, not 0 - fail.
  1289. Notes:
  1290. A fail is either insufficient variables to store the data or insufficient
  1291. data for the format string - excess data is disgarded.
  1292.  
  1293. A string in the middle of the input data is extracted as a single word, a
  1294. string at the end of the data collects all remaining text.
  1295.  
  1296. The format codes are:
  1297.  
  1298. c - A character.
  1299. d, i - An integer.
  1300. h, x - A hex number (e.g. a colour).
  1301. f - A float.
  1302. s - A string.
  1303. z - An optional string.
  1304. pX - An additional delimiter where X is another character.
  1305. '' - Encloses a litteral string to locate.
  1306. u - User, takes a name, part of a name or an id and returns the id if they're connected.
  1307.  
  1308. Now has IsNumeric integrated into the code.
  1309.  
  1310. Added additional delimiters in the form of all whitespace and an
  1311. optioanlly specified one in the format string.
  1312. -*----------------------------------------------------------------------------*/
  1313.  
  1314. stock sscanf(string[], format[], {Float,_}:...)
  1315. {
  1316. #if defined isnull
  1317. if (isnull(string))
  1318. #else
  1319. if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
  1320. #endif
  1321. {
  1322. return format[0];
  1323. }
  1324. #pragma tabsize 4
  1325. new
  1326. formatPos = 0,
  1327. stringPos = 0,
  1328. paramPos = 2,
  1329. paramCount = numargs(),
  1330. delim = ' ';
  1331. while (string[stringPos] && string[stringPos] <= ' ')
  1332. {
  1333. stringPos++;
  1334. }
  1335. while (paramPos < paramCount && string[stringPos])
  1336. {
  1337. switch (format[formatPos++])
  1338. {
  1339. case '\0':
  1340. {
  1341. return 0;
  1342. }
  1343. case 'i', 'd':
  1344. {
  1345. new
  1346. neg = 1,
  1347. num = 0,
  1348. ch = string[stringPos];
  1349. if (ch == '-')
  1350. {
  1351. neg = -1;
  1352. ch = string[++stringPos];
  1353. }
  1354. do
  1355. {
  1356. stringPos++;
  1357. if ('0' <= ch <= '9')
  1358. {
  1359. num = (num * 10) + (ch - '0');
  1360. }
  1361. else
  1362. {
  1363. return -1;
  1364. }
  1365. }
  1366. while ((ch = string[stringPos]) > ' ' && ch != delim);
  1367. setarg(paramPos, 0, num * neg);
  1368. }
  1369. case 'h', 'x':
  1370. {
  1371. new
  1372. num = 0,
  1373. ch = string[stringPos];
  1374. do
  1375. {
  1376. stringPos++;
  1377. switch (ch)
  1378. {
  1379. case 'x', 'X':
  1380. {
  1381. num = 0;
  1382. continue;
  1383. }
  1384. case '0' .. '9':
  1385. {
  1386. num = (num << 4) | (ch - '0');
  1387. }
  1388. case 'a' .. 'f':
  1389. {
  1390. num = (num << 4) | (ch - ('a' - 10));
  1391. }
  1392. case 'A' .. 'F':
  1393. {
  1394. num = (num << 4) | (ch - ('A' - 10));
  1395. }
  1396. default:
  1397. {
  1398. return -1;
  1399. }
  1400. }
  1401. }
  1402. while ((ch = string[stringPos]) > ' ' && ch != delim);
  1403. setarg(paramPos, 0, num);
  1404. }
  1405. case 'c':
  1406. {
  1407. setarg(paramPos, 0, string[stringPos++]);
  1408. }
  1409. case 'f':
  1410. {
  1411.  
  1412. new changestr[16], changepos = 0, strpos = stringPos;
  1413. while(changepos < 16 && string[strpos] && string[strpos] != delim)
  1414. {
  1415. changestr[changepos++] = string[strpos++];
  1416. }
  1417. changestr[changepos] = '\0';
  1418. setarg(paramPos,0,_:floatstr(changestr));
  1419. }
  1420. case 'p':
  1421. {
  1422. delim = format[formatPos++];
  1423. continue;
  1424. }
  1425. case '\'':
  1426. {
  1427. new
  1428. end = formatPos - 1,
  1429. ch;
  1430. while ((ch = format[++end]) && ch != '\'') {}
  1431. if (!ch)
  1432. {
  1433. return -1;
  1434. }
  1435. format[end] = '\0';
  1436. if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
  1437. {
  1438. if (format[end + 1])
  1439. {
  1440. return -1;
  1441. }
  1442. return 0;
  1443. }
  1444. format[end] = '\'';
  1445. stringPos = ch + (end - formatPos);
  1446. formatPos = end + 1;
  1447. }
  1448. case 'u':
  1449. {
  1450. new
  1451. end = stringPos - 1,
  1452. id = 0,
  1453. bool:num = true,
  1454. ch;
  1455. while ((ch = string[++end]) && ch != delim)
  1456. {
  1457. if (num)
  1458. {
  1459. if ('0' <= ch <= '9')
  1460. {
  1461. id = (id * 10) + (ch - '0');
  1462. }
  1463. else
  1464. {
  1465. num = false;
  1466. }
  1467. }
  1468. }
  1469. if (num && IsPlayerConnected(id))
  1470. {
  1471. setarg(paramPos, 0, id);
  1472. }
  1473. else
  1474. {
  1475. #if !defined foreach
  1476. #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
  1477. #define __SSCANF_FOREACH__
  1478. #endif
  1479. string[end] = '\0';
  1480. num = false;
  1481. new
  1482. name[MAX_PLAYER_NAME];
  1483. id = end - stringPos;
  1484. foreach (Player, playerid)
  1485. {
  1486. GetPlayerName(playerid, name, sizeof (name));
  1487. if (!strcmp(name, string[stringPos], true, id))
  1488. {
  1489. setarg(paramPos, 0, playerid);
  1490. num = true;
  1491. break;
  1492. }
  1493. }
  1494. if (!num)
  1495. {
  1496. setarg(paramPos, 0, INVALID_PLAYER_ID);
  1497. }
  1498. string[end] = ch;
  1499. #if defined __SSCANF_FOREACH__
  1500. #undef foreach
  1501. #undef __SSCANF_FOREACH__
  1502. #endif
  1503. }
  1504. stringPos = end;
  1505. }
  1506. case 's', 'z':
  1507. {
  1508. new
  1509. i = 0,
  1510. ch;
  1511. if (format[formatPos])
  1512. {
  1513. while ((ch = string[stringPos++]) && ch != delim)
  1514. {
  1515. setarg(paramPos, i++, ch);
  1516. }
  1517. if (!i)
  1518. {
  1519. return -1;
  1520. }
  1521. }
  1522. else
  1523. {
  1524. while ((ch = string[stringPos++]))
  1525. {
  1526. setarg(paramPos, i++, ch);
  1527. }
  1528. }
  1529. stringPos--;
  1530. setarg(paramPos, i, '\0');
  1531. }
  1532. default:
  1533. {
  1534. continue;
  1535. }
  1536. }
  1537. while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
  1538. {
  1539. stringPos++;
  1540. }
  1541. while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
  1542. {
  1543. stringPos++;
  1544. }
  1545. paramPos++;
  1546. }
  1547. do
  1548. {
  1549. if ((delim = format[formatPos++]) > ' ')
  1550. {
  1551. if (delim == '\'')
  1552. {
  1553. while ((delim = format[formatPos++]) && delim != '\'') {}
  1554. }
  1555. else if (delim != 'z')
  1556. {
  1557. return delim;
  1558. }
  1559. }
  1560. }
  1561. while (delim > ' ');
  1562. return 0;
  1563. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement