tutorial_new.pwn 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731
  1. /*
  2. /$$ /$$ /$$$$$$ /$$$$$$$ /$$$$$$$
  3. | $$$ | $$ /$$__ $$ | $$__ $$| $$__ $$
  4. | $$$$| $$| $$ \__/ | $$ \ $$| $$ \ $$
  5. | $$ $$ $$| $$ /$$$$ /$$$$$$| $$$$$$$/| $$$$$$$/
  6. | $$ $$$$| $$|_ $$|______/| $$__ $$| $$____/
  7. | $$\ $$$| $$ \ $$ | $$ \ $$| $$
  8. | $$ \ $$| $$$$$$/ | $$ | $$| $$
  9. |__/ \__/ \______/ |__/ |__/|__/
  10. Tutorial System
  11. Next Generation Gaming, LLC
  12. (created by Next Generation Gaming Development Team)
  13. * Copyright (c) 2016, Next Generation Gaming, LLC
  14. *
  15. * All rights reserved.
  16. *
  17. * Redistribution and use in source and binary forms, with or without modification,
  18. * are not permitted in any case.
  19. *
  20. *
  21. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  22. * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  23. * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  24. * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
  25. * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  26. * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  27. * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  28. * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
  29. * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
  30. * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  31. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  32. */
  33. stock ShowTutGUIFrame(playerid, frame)
  34. {
  35. switch(frame)
  36. {
  37. case 1:
  38. {
  39. for(new i = 4; i < 14; i++) {
  40. TextDrawShowForPlayer(playerid, TutTxtdraw[i]);
  41. }
  42. }
  43. case 2:
  44. {
  45. for(new i = 14; i < 18; i++) {
  46. TextDrawShowForPlayer(playerid, TutTxtdraw[i]);
  47. }
  48. }
  49. case 3:
  50. {
  51. TextDrawShowForPlayer(playerid, TutTxtdraw[18]);
  52. }
  53. case 4:
  54. {
  55. TextDrawShowForPlayer(playerid, TutTxtdraw[19]);
  56. }
  57. case 5:
  58. {
  59. TextDrawShowForPlayer(playerid, TutTxtdraw[20]);
  60. }
  61. case 6:
  62. {
  63. TextDrawShowForPlayer(playerid, TutTxtdraw[21]);
  64. }
  65. case 7:
  66. {
  67. TextDrawShowForPlayer(playerid, TutTxtdraw[22]);
  68. }
  69. case 8:
  70. {
  71. TextDrawShowForPlayer(playerid, TutTxtdraw[23]);
  72. }
  73. case 9:
  74. {
  75. TextDrawShowForPlayer(playerid, TutTxtdraw[24]);
  76. }
  77. case 10:
  78. {
  79. for(new i = 25; i < 34; i++) {
  80. TextDrawShowForPlayer(playerid, TutTxtdraw[i]);
  81. }
  82. }
  83. case 11:
  84. {
  85. for(new i = 34; i < 40; i++) {
  86. TextDrawShowForPlayer(playerid, TutTxtdraw[i]);
  87. }
  88. }
  89. case 12:
  90. {
  91. for(new i = 40; i < 46; i++) {
  92. TextDrawShowForPlayer(playerid, TutTxtdraw[i]);
  93. }
  94. }
  95. case 13:
  96. {
  97. for(new i = 46; i < 52; i++) {
  98. TextDrawShowForPlayer(playerid, TutTxtdraw[i]);
  99. }
  100. }
  101. case 14:
  102. {
  103. for(new i = 52; i < 58; i++) {
  104. TextDrawShowForPlayer(playerid, TutTxtdraw[i]);
  105. }
  106. }
  107. case 15:
  108. {
  109. for(new i = 58; i < 65; i++) {
  110. TextDrawShowForPlayer(playerid, TutTxtdraw[i]);
  111. }
  112. }
  113. case 16:
  114. {
  115. for(new i = 65; i < 71; i++) {
  116. TextDrawShowForPlayer(playerid, TutTxtdraw[i]);
  117. }
  118. }
  119. case 17:
  120. {
  121. for(new i = 71; i < 77; i++) {
  122. TextDrawShowForPlayer(playerid, TutTxtdraw[i]);
  123. }
  124. }
  125. case 18:
  126. {
  127. for(new i = 77; i < 82; i++) {
  128. TextDrawShowForPlayer(playerid, TutTxtdraw[i]);
  129. }
  130. }
  131. case 19:
  132. {
  133. for(new i = 82; i < 87; i++) {
  134. TextDrawShowForPlayer(playerid, TutTxtdraw[i]);
  135. }
  136. }
  137. case 20:
  138. {
  139. for(new i = 87; i < 93; i++) {
  140. TextDrawShowForPlayer(playerid, TutTxtdraw[i]);
  141. }
  142. }
  143. case 21:
  144. {
  145. for(new i = 93; i < 100; i++) {
  146. TextDrawShowForPlayer(playerid, TutTxtdraw[i]);
  147. }
  148. }
  149. case 22:
  150. {
  151. for(new i = 100; i < 108; i++) {
  152. TextDrawShowForPlayer(playerid, TutTxtdraw[i]);
  153. }
  154. }
  155. case 23:
  156. {
  157. for(new i = 108; i < 114; i++) {
  158. TextDrawShowForPlayer(playerid, TutTxtdraw[i]);
  159. }
  160. }
  161. }
  162. }
  163. stock HideTutGUIFrame(playerid, frame)
  164. {
  165. switch(frame)
  166. {
  167. case 1:
  168. {
  169. for(new i = 4; i < 14; i++) {
  170. TextDrawHideForPlayer(playerid, TutTxtdraw[i]);
  171. }
  172. }
  173. case 2:
  174. {
  175. for(new i = 14; i < 18; i++) {
  176. TextDrawHideForPlayer(playerid, TutTxtdraw[i]);
  177. }
  178. }
  179. case 3:
  180. {
  181. TextDrawHideForPlayer(playerid, TutTxtdraw[18]);
  182. }
  183. case 4:
  184. {
  185. TextDrawHideForPlayer(playerid, TutTxtdraw[19]);
  186. }
  187. case 5:
  188. {
  189. TextDrawHideForPlayer(playerid, TutTxtdraw[20]);
  190. }
  191. case 6:
  192. {
  193. TextDrawHideForPlayer(playerid, TutTxtdraw[21]);
  194. }
  195. case 7:
  196. {
  197. TextDrawHideForPlayer(playerid, TutTxtdraw[22]);
  198. }
  199. case 8:
  200. {
  201. TextDrawHideForPlayer(playerid, TutTxtdraw[23]);
  202. }
  203. case 9:
  204. {
  205. TextDrawHideForPlayer(playerid, TutTxtdraw[24]);
  206. }
  207. case 10:
  208. {
  209. for(new i = 25; i < 34; i++) {
  210. TextDrawHideForPlayer(playerid, TutTxtdraw[i]);
  211. }
  212. }
  213. case 11:
  214. {
  215. for(new i = 34; i < 40; i++) {
  216. TextDrawHideForPlayer(playerid, TutTxtdraw[i]);
  217. }
  218. }
  219. case 12:
  220. {
  221. for(new i = 40; i < 46; i++) {
  222. TextDrawHideForPlayer(playerid, TutTxtdraw[i]);
  223. }
  224. }
  225. case 13:
  226. {
  227. for(new i = 46; i < 52; i++) {
  228. TextDrawHideForPlayer(playerid, TutTxtdraw[i]);
  229. }
  230. }
  231. case 14:
  232. {
  233. for(new i = 52; i < 58; i++) {
  234. TextDrawHideForPlayer(playerid, TutTxtdraw[i]);
  235. }
  236. }
  237. case 15:
  238. {
  239. for(new i = 58; i < 65; i++) {
  240. TextDrawHideForPlayer(playerid, TutTxtdraw[i]);
  241. }
  242. }
  243. case 16:
  244. {
  245. for(new i = 65; i < 71; i++) {
  246. TextDrawHideForPlayer(playerid, TutTxtdraw[i]);
  247. }
  248. }
  249. case 17:
  250. {
  251. for(new i = 71; i < 77; i++) {
  252. TextDrawHideForPlayer(playerid, TutTxtdraw[i]);
  253. }
  254. }
  255. case 18:
  256. {
  257. for(new i = 77; i < 82; i++) {
  258. TextDrawHideForPlayer(playerid, TutTxtdraw[i]);
  259. }
  260. }
  261. case 19:
  262. {
  263. for(new i = 82; i < 87; i++) {
  264. TextDrawHideForPlayer(playerid, TutTxtdraw[i]);
  265. }
  266. }
  267. case 20:
  268. {
  269. for(new i = 87; i < 93; i++) {
  270. TextDrawHideForPlayer(playerid, TutTxtdraw[i]);
  271. }
  272. }
  273. case 21:
  274. {
  275. for(new i = 93; i < 100; i++) {
  276. TextDrawHideForPlayer(playerid, TutTxtdraw[i]);
  277. }
  278. }
  279. case 22:
  280. {
  281. for(new i = 100; i < 108; i++) {
  282. TextDrawHideForPlayer(playerid, TutTxtdraw[i]);
  283. }
  284. }
  285. case 23:
  286. {
  287. for(new i = 108; i < 114; i++) {
  288. TextDrawHideForPlayer(playerid, TutTxtdraw[i]);
  289. }
  290. }
  291. }
  292. }
  293. stock ShowTutGUIBox(playerid)
  294. {
  295. InsideTut{playerid} = true;
  296. TextDrawShowForPlayer(playerid, MainMenuTxtdraw[0]);
  297. TextDrawShowForPlayer(playerid, MainMenuTxtdraw[1]);
  298. TextDrawShowForPlayer(playerid, MainMenuTxtdraw[2]);
  299. TextDrawShowForPlayer(playerid, MainMenuTxtdraw[3]);
  300. TextDrawShowForPlayer(playerid, MainMenuTxtdraw[4]);
  301. TextDrawShowForPlayer(playerid, MainMenuTxtdraw[5]);
  302. TextDrawShowForPlayer(playerid, MainMenuTxtdraw[6]);
  303. TextDrawShowForPlayer(playerid, MainMenuTxtdraw[9]);
  304. TextDrawShowForPlayer(playerid, MainMenuTxtdraw[10]);
  305. TextDrawShowForPlayer(playerid, TutTxtdraw[0]);
  306. TextDrawShowForPlayer(playerid, TutTxtdraw[1]);
  307. TextDrawShowForPlayer(playerid, TutTxtdraw[2]);
  308. TextDrawShowForPlayer(playerid, TutTxtdraw[3]);
  309. TextDrawShowForPlayer(playerid, TutTxtdraw[114]);
  310. }
  311. stock HideTutGUIBox(playerid)
  312. {
  313. InsideTut{playerid} = false;
  314. TextDrawHideForPlayer(playerid, MainMenuTxtdraw[0]);
  315. TextDrawHideForPlayer(playerid, MainMenuTxtdraw[1]);
  316. TextDrawHideForPlayer(playerid, MainMenuTxtdraw[2]);
  317. TextDrawHideForPlayer(playerid, MainMenuTxtdraw[3]);
  318. TextDrawHideForPlayer(playerid, MainMenuTxtdraw[4]);
  319. TextDrawHideForPlayer(playerid, MainMenuTxtdraw[5]);
  320. TextDrawHideForPlayer(playerid, MainMenuTxtdraw[6]);
  321. TextDrawHideForPlayer(playerid, MainMenuTxtdraw[9]);
  322. TextDrawHideForPlayer(playerid, MainMenuTxtdraw[10]);
  323. TextDrawHideForPlayer(playerid, TutTxtdraw[0]);
  324. TextDrawHideForPlayer(playerid, TutTxtdraw[1]);
  325. TextDrawHideForPlayer(playerid, TutTxtdraw[2]);
  326. TextDrawHideForPlayer(playerid, TutTxtdraw[3]);
  327. TextDrawHideForPlayer(playerid, TutTxtdraw[114]);
  328. }
  329. stock TutorialStep(playerid)
  330. {
  331. if(gettime() - GetPVarInt(playerid, "pTutTime") < 5)
  332. {
  333. GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~r~PLEASE WAIT", 1100, 3);
  334. return 1;
  335. }
  336. if(InsideTut{playerid} < 1)
  337. {
  338. SendClientMessageEx(playerid, COLOR_WHITE, "You can't use the command outside the tutorial.");
  339. return 1;
  340. }
  341. SetPVarInt(playerid, "pTutTime", gettime());
  342. switch(TutStep[playerid])
  343. {
  344. case 1:
  345. {
  346. HideTutGUIFrame(playerid, 1);
  347. ShowTutGUIFrame(playerid, 2);
  348. TutStep[playerid] = 2;
  349. SetPVarInt(playerid, "pTutTime", gettime()-4);
  350. // Los Santos Bank (Camera)
  351. SetPlayerVirtualWorld(playerid, 0);
  352. SetPlayerInterior(playerid, 0);
  353. Streamer_UpdateEx(playerid, 1457.4854,-1011.5267,26.8438);
  354. SetPlayerPos(playerid, 1457.4854,-1011.5267,-10.0);
  355. SetPlayerCameraPos(playerid, 1457.5421,-1039.4404,28.4274);
  356. SetPlayerCameraLookAt(playerid, 1457.4854,-1011.5267,26.8438);
  357. }
  358. case 2:
  359. {
  360. ShowTutGUIFrame(playerid, 3);
  361. TutStep[playerid] = 3;
  362. SetPVarInt(playerid, "pTutTime", gettime()-4);
  363. // Los Santos ATM (Camera)
  364. SetPlayerVirtualWorld(playerid, 0);
  365. SetPlayerInterior(playerid, 0);
  366. Streamer_UpdateEx(playerid, 2140.5173,-1163.9576,23.9922);
  367. SetPlayerPos(playerid, 2140.5173,-1163.9576,-10.0);
  368. SetPlayerCameraPos(playerid, 2145.8252,-1159.2659,27.7218);
  369. SetPlayerCameraLookAt(playerid, 2140.5173,-1163.9576,23.9922);
  370. }
  371. case 3:
  372. {
  373. ShowTutGUIFrame(playerid, 4);
  374. TutStep[playerid] = 4;
  375. SetPVarInt(playerid, "pTutTime", gettime()-4);
  376. // Fishing Pier (Camera)
  377. SetPlayerVirtualWorld(playerid, 0);
  378. SetPlayerInterior(playerid, 0);
  379. Streamer_UpdateEx(playerid, 370.0804,-2087.8767,7.8359);
  380. SetPlayerPos(playerid, 370.0804,-2087.8767,-10.0);
  381. SetPlayerCameraPos(playerid, 423.3802,-2067.7915,29.8605);
  382. SetPlayerCameraLookAt(playerid, 370.0804,-2087.8767,7.8359);
  383. }
  384. case 4:
  385. {
  386. ShowTutGUIFrame(playerid, 5);
  387. TutStep[playerid] = 5;
  388. SetPVarInt(playerid, "pTutTime", gettime()-4);
  389. // Ganton Gym (Camera)
  390. SetPlayerVirtualWorld(playerid, 0);
  391. SetPlayerInterior(playerid, 0);
  392. Streamer_UpdateEx(playerid, 2229.4968,-1722.0701,13.5625);
  393. SetPlayerPos(playerid, 2229.4968,-1722.0701,-10.0);
  394. SetPlayerCameraPos(playerid, 2211.1460,-1748.3909,29.3744);
  395. SetPlayerCameraLookAt(playerid, 2229.4968,-1722.0701,13.5625);
  396. }
  397. case 5:
  398. {
  399. ShowTutGUIFrame(playerid, 6);
  400. TutStep[playerid] = 6;
  401. SetPVarInt(playerid, "pTutTime", gettime()-4);
  402. // Arms Dealer (Camera)
  403. SetPlayerVirtualWorld(playerid, 0);
  404. SetPlayerInterior(playerid, 0);
  405. Streamer_UpdateEx(playerid, 1366.1187,-1275.1248,13.5469);
  406. SetPlayerPos(playerid, 1366.1187,-1275.1248,-10.0);
  407. SetPlayerCameraPos(playerid, 1341.2936,-1294.8105,23.3096);
  408. SetPlayerCameraLookAt(playerid, 1366.1187,-1275.1248,13.5469);
  409. }
  410. case 6:
  411. {
  412. ShowTutGUIFrame(playerid, 7);
  413. TutStep[playerid] = 7;
  414. SetPVarInt(playerid, "pTutTime", gettime()-4);
  415. // Drugs Dealer (Camera)
  416. SetPlayerVirtualWorld(playerid, 0);
  417. SetPlayerInterior(playerid, 0);
  418. Streamer_UpdateEx(playerid, 2167.5542,-1673.1503,15.0812);
  419. SetPlayerPos(playerid, 2167.5542,-1673.1503,-10.0);
  420. SetPlayerCameraPos(playerid, 2186.2607,-1693.4254,29.5406);
  421. SetPlayerCameraLookAt(playerid, 2167.5542,-1673.1503,15.0812);
  422. }
  423. case 7:
  424. {
  425. ShowTutGUIFrame(playerid, 8);
  426. TutStep[playerid] = 8;
  427. SetPVarInt(playerid, "pTutTime", gettime()-4);
  428. // Drugs Smuggler (Camera)
  429. SetPlayerVirtualWorld(playerid, 0);
  430. SetPlayerInterior(playerid, 0);
  431. Streamer_UpdateEx(playerid, 59.9634,-283.6652,1.5781);
  432. SetPlayerPos(playerid, 59.9634,-283.6652,-10.0);
  433. SetPlayerCameraPos(playerid, 96.4630,-216.5790,34.2965);
  434. SetPlayerCameraLookAt(playerid, 59.9634,-283.6652,1.5781);
  435. }
  436. case 8:
  437. {
  438. ShowTutGUIFrame(playerid, 9);
  439. TutStep[playerid] = 9;
  440. }
  441. case 9:
  442. {
  443. for(new f = 2; f < 10; f++)
  444. {
  445. HideTutGUIFrame(playerid, f);
  446. }
  447. ShowTutGUIFrame(playerid, 10);
  448. TutStep[playerid] = 10;
  449. // LSPD (Camera)
  450. SetPlayerVirtualWorld(playerid, 0);
  451. SetPlayerInterior(playerid, 0);
  452. Streamer_UpdateEx(playerid, 1554.3381,-1675.5692,16.1953);
  453. SetPlayerPos(playerid, 1554.3381,-1675.5692,-10.0);
  454. SetPlayerCameraPos(playerid, 1514.7783,-1700.2913,36.7506);
  455. SetPlayerCameraLookAt(playerid, 1554.3381,-1675.5692,16.1953);
  456. }
  457. case 10:
  458. {
  459. HideTutGUIFrame(playerid, 10);
  460. ShowTutGUIFrame(playerid, 11);
  461. TutStep[playerid] = 11;
  462. // All Saints (Camera)
  463. SetPlayerVirtualWorld(playerid, 0);
  464. SetPlayerInterior(playerid, 0);
  465. Streamer_UpdateEx(playerid,1175.5581,-1324.7922,18.1610);
  466. SetPlayerPos(playerid, 1188.4574,-1309.2242,-10.0);
  467. SetPlayerCameraPos(playerid,1188.4574,-1309.2242,13.5625+6.0);
  468. SetPlayerCameraLookAt(playerid,1175.5581,-1324.7922,18.1610);
  469. }
  470. case 11:
  471. {
  472. HideTutGUIFrame(playerid, 11);
  473. ShowTutGUIFrame(playerid, 12);
  474. TutStep[playerid] = 12;
  475. // San Andreas News (Camera)
  476. SetPlayerVirtualWorld(playerid, 0);
  477. SetPlayerInterior(playerid, 0);
  478. Streamer_UpdateEx(playerid,643.6738,-1348.9811,17.7879);
  479. SetPlayerPos(playerid, 643.6738,-1348.9811,-10.0);
  480. SetPlayerCameraPos(playerid,616.4327,-1336.6818,20.9202);
  481. SetPlayerCameraLookAt(playerid,643.6738,-1348.9811,17.7879);
  482. }
  483. case 12:
  484. {
  485. HideTutGUIFrame(playerid, 12);
  486. ShowTutGUIFrame(playerid, 13);
  487. TutStep[playerid] = 13;
  488. // Government (Camera)
  489. SetPlayerVirtualWorld(playerid, 0);
  490. SetPlayerInterior(playerid, 0);
  491. Streamer_UpdateEx(playerid,1478.4708,-1754.7579,16.7400);
  492. SetPlayerPos(playerid, 1478.4708,-1754.7579,-10.0);
  493. SetPlayerCameraPos(playerid,1520.2188,-1712.0742,40.5350);
  494. SetPlayerCameraLookAt(playerid,1478.4708,-1754.7579,16.7400);
  495. }
  496. case 13:
  497. {
  498. HideTutGUIFrame(playerid, 13);
  499. ShowTutGUIFrame(playerid, 14);
  500. TutStep[playerid] = 14;
  501. // TR (Camera)
  502. SetPlayerVirtualWorld(playerid, 0);
  503. SetPlayerInterior(playerid, 0);
  504. Streamer_UpdateEx(playerid,-2679.5342,1639.0643,65.8865);
  505. SetPlayerPos(playerid, -2679.5342,1639.0643,-10.0);
  506. SetPlayerCameraPos(playerid,-2734.3477,1520.4971,87.1810);
  507. SetPlayerCameraLookAt(playerid,-2679.5342,1639.0643,65.8865);
  508. }
  509. case 14:
  510. {
  511. HideTutGUIFrame(playerid, 14);
  512. ShowTutGUIFrame(playerid, 15);
  513. TutStep[playerid] = 15;
  514. // Gang SaC Beach (Camera)
  515. SetPlayerVirtualWorld(playerid, 0);
  516. SetPlayerInterior(playerid, 0);
  517. Streamer_UpdateEx(playerid,655.5394,-1867.2231,5.4609);
  518. SetPlayerPos(playerid, 655.5394,-1867.2231,-10.0);
  519. SetPlayerCameraPos(playerid,699.7435,-1936.7568,24.8646);
  520. SetPlayerCameraLookAt(playerid,655.5394,-1867.2231,5.4609);
  521. }
  522. case 15:
  523. {
  524. HideTutGUIFrame(playerid, 15);
  525. ShowTutGUIFrame(playerid, 16);
  526. TutStep[playerid] = 16;
  527. // 24/7 Store (Camera)
  528. SetPlayerVirtualWorld(playerid, 0);
  529. SetPlayerInterior(playerid, 0);
  530. Streamer_UpdateEx(playerid,1315.6570,-898.7749,39.5781);
  531. SetPlayerPos(playerid, 1315.6570,-898.7749,-10.0);
  532. SetPlayerCameraPos(playerid,1315.4285,-922.5234,44.0355);
  533. SetPlayerCameraLookAt(playerid,1315.6570,-898.7749,39.5781);
  534. }
  535. case 16:
  536. {
  537. HideTutGUIFrame(playerid, 16);
  538. ShowTutGUIFrame(playerid, 17);
  539. TutStep[playerid] = 17;
  540. // Clothing Store (Camera)
  541. SetPlayerVirtualWorld(playerid, 0);
  542. SetPlayerInterior(playerid, 0);
  543. Streamer_UpdateEx(playerid,1457.1664,-1138.0111,26.6261);
  544. SetPlayerPos(playerid, 1457.1664,-1138.0111,-10.0);
  545. SetPlayerCameraPos(playerid,1459.0411,-1156.4342,33.4464);
  546. SetPlayerCameraLookAt(playerid,1457.1664,-1138.0111,26.6261);
  547. }
  548. case 17:
  549. {
  550. HideTutGUIFrame(playerid, 17);
  551. ShowTutGUIFrame(playerid, 18);
  552. TutStep[playerid] = 18;
  553. // Car Dealership (Camera)
  554. SetPlayerVirtualWorld(playerid, 0);
  555. SetPlayerInterior(playerid, 0);
  556. Streamer_UpdateEx(playerid,1656.6107,-1892.3878,13.5521);
  557. SetPlayerPos(playerid,1656.6107,-1892.3878,-10.0);
  558. SetPlayerCameraPos(playerid,1678.1699,-1863.5964,22.9622);
  559. SetPlayerCameraLookAt(playerid,1656.6107,-1892.3878,13.5521);
  560. }
  561. case 18:
  562. {
  563. HideTutGUIFrame(playerid, 18);
  564. ShowTutGUIFrame(playerid, 19);
  565. TutStep[playerid] = 19;
  566. // Los Santos (Camera)
  567. SetPlayerVirtualWorld(playerid, 0);
  568. SetPlayerInterior(playerid, 0);
  569. Streamer_UpdateEx(playerid,1607.0160,-1510.8218,207.4438);
  570. SetPlayerPos(playerid,1607.0160,-1510.8218,-10.0);
  571. SetPlayerCameraPos(playerid,1850.1813,-1765.7552,81.9271);
  572. SetPlayerCameraLookAt(playerid,1607.0160,-1510.8218,207.4438);
  573. }
  574. case 19:
  575. {
  576. HideTutGUIFrame(playerid, 19);
  577. ShowTutGUIFrame(playerid, 20);
  578. TutStep[playerid] = 20;
  579. // VIP (Camera)
  580. SetPlayerVirtualWorld(playerid, 0);
  581. SetPlayerInterior(playerid, 0);
  582. Streamer_UpdateEx(playerid,1797.3397,-1578.3440,14.0798);
  583. SetPlayerPos(playerid,1797.3397,-1578.3440,-10.0);
  584. SetPlayerCameraPos(playerid,1832.1698,-1600.1538,32.2877);
  585. SetPlayerCameraLookAt(playerid,1797.3397,-1578.3440,14.0798);
  586. }
  587. case 20:
  588. {
  589. HideTutGUIFrame(playerid, 20);
  590. ShowTutGUIFrame(playerid, 21);
  591. TutStep[playerid] = 21;
  592. // Unity Station (Camera)
  593. SetPlayerVirtualWorld(playerid, 0);
  594. SetPlayerInterior(playerid, 0);
  595. Streamer_UpdateEx(playerid,1716.1129,-1880.0715,22.0264);
  596. SetPlayerPos(playerid,1716.1129,-1880.0715,-10.0);
  597. SetPlayerCameraPos(playerid,1755.0413,-1824.8710,20.2100);
  598. SetPlayerCameraLookAt(playerid,1716.1129,-1880.0715,22.0264);
  599. }
  600. case 21:
  601. {
  602. HideTutGUIFrame(playerid, 21);
  603. ShowTutGUIFrame(playerid, 22);
  604. TutStep[playerid] = 22;
  605. SetPVarInt(playerid, "pTutTime", gettime()-4);
  606. // Unity Station (Camera)
  607. SetPlayerVirtualWorld(playerid, 0);
  608. SetPlayerInterior(playerid, 0);
  609. Streamer_UpdateEx(playerid,1716.1129,-1880.0715,22.0264);
  610. SetPlayerPos(playerid,1716.1129,-1880.0715,-10.0);
  611. SetPlayerCameraPos(playerid,1755.0413,-1824.8710,20.2100);
  612. SetPlayerCameraLookAt(playerid,1716.1129,-1880.0715,22.0264);
  613. }
  614. case 22:
  615. {
  616. HideTutGUIFrame(playerid, 22);
  617. ShowTutGUIFrame(playerid, 23);
  618. TutStep[playerid] = 23;
  619. SetPVarInt(playerid, "pTutTime", gettime()+3);
  620. // Unity Station (Camera)
  621. SetPlayerVirtualWorld(playerid, 0);
  622. SetPlayerInterior(playerid, 0);
  623. Streamer_UpdateEx(playerid,1716.1129,-1880.0715,22.0264);
  624. SetPlayerPos(playerid,1716.1129,-1880.0715,-10.0);
  625. SetPlayerCameraPos(playerid,1755.0413,-1824.8710,20.2100);
  626. SetPlayerCameraLookAt(playerid,1716.1129,-1880.0715,22.0264);
  627. }
  628. case 23:
  629. {
  630. HideTutGUIBox(playerid);
  631. HideTutGUIFrame(playerid, 23);
  632. DeletePVar(playerid, "pTutTime");
  633. TutStep[playerid] = 24;
  634. /* TextDrawShowForPlayer(playerid, txtNationSelHelper);
  635. TextDrawShowForPlayer(playerid, txtNationSelMain);
  636. PlayerNationSelection[playerid] = -1; */
  637. RegistrationStep[playerid] = 0;
  638. PlayerInfo[playerid][pTut] = 1;
  639. gOoc[playerid] = 0; gNews[playerid] = 0;
  640. TogglePlayerControllable(playerid, 0);
  641. SetCamBack(playerid);
  642. DeletePVar(playerid, "MedicBill");
  643. SetPlayerColor(playerid,TEAM_HIT_COLOR);
  644. SetPlayerInterior(playerid,0);
  645. SetHealth(playerid, 100);
  646. for(new x;x<10000;x++)
  647. {
  648. new rand=random(300);
  649. if(PlayerInfo[playerid][pSex] == 2)
  650. {
  651. if(IsValidSkin(rand) && IsFemaleSpawnSkin(rand))
  652. {
  653. PlayerInfo[playerid][pModel] = rand;
  654. SetPlayerSkin(playerid, rand);
  655. break;
  656. }
  657. }
  658. else
  659. {
  660. if(IsValidSkin(rand) && !IsFemaleSkin(rand))
  661. {
  662. PlayerInfo[playerid][pModel] = rand;
  663. SetPlayerSkin(playerid, rand);
  664. break;
  665. }
  666. }
  667. }
  668. SetCameraBehindPlayer(playerid);
  669. SetPlayerVirtualWorld(playerid, 0);
  670. PlayerInfo[playerid][pNation] = 0;
  671. switch(random(2))
  672. {
  673. case 0:
  674. {
  675. SetPlayerPos(playerid, 1715.1201,-1903.1711,13.5665);
  676. SetPlayerFacingAngle(playerid, 360.0);
  677. InterpolateCameraPos(playerid, 1715.130615, -1905.752563, 165.564697, 1715.130615, -1905.752563, 14.295700, 8000, 1);
  678. InterpolateCameraLookAt(playerid, 1712.883056, -1902.467529, 165.168472, 1715.114868, -1901.757568, 14.095783, 8000, 1);
  679. }
  680. case 1:
  681. {
  682. SetPlayerPos(playerid, -1969.0737,138.1210,27.6875);
  683. SetPlayerFacingAngle(playerid, 90.0);
  684. InterpolateCameraPos(playerid, -1948.954711, 138.121002, 123.546340, -1965.578247, 138.121002, 28.462400, 8000, 1);
  685. InterpolateCameraLookAt(playerid, -1947.651367, 141.897277, 123.343559, -1969.573242, 138.121002, 28.262483, 8000, 1);
  686. }
  687. }
  688. SetTimerEx("DelaySetCameraBehindPlayer", 8000, 0, "i", playerid);
  689. if(emailcheck) InvalidEmailCheck(playerid, PlayerInfo[playerid][pEmail], 1);
  690. }
  691. }
  692. return 1;
  693. }
  694. CMD:next(playerid, params[])
  695. {
  696. TutorialStep(playerid);
  697. return 1;
  698. }
  699. forward DelaySetCameraBehindPlayer(playerid);
  700. public DelaySetCameraBehindPlayer(playerid) SetCameraBehindPlayer(playerid), TogglePlayerControllable(playerid, 1);