Advertisement
Lineas

SFRIT Global

Jan 10th, 2015
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.08 KB | None | 0 0
  1. //Magic Container Pieces
  2. const int I_MCPNONE = 131;
  3. const int I_MCPDUMMY = 130;
  4. const int I_MCPIECE1 = 132;
  5. const int I_MCPIECE2 = 133;
  6. const int I_MCPIECE3 = 134;
  7. const int I_MCPIECE4 = 211;
  8.  
  9. //Link Items
  10. const int Brian = 17;
  11. const int Justin = 18;
  12. const int Bullhorn = 128;
  13. const int BullhornDummy = 72;
  14. const int Microphone = 73;
  15. const int MicrophoneDummy = 71;
  16. const int DummyGuitar2 = 77;
  17. const int DummyGuitar3 = 80;
  18. const int DummyGuitar4 = 78;
  19. const int SmokeBreak = 65;
  20. const int BSong1 = 23;
  21. const int BSong1Dummy = 50;
  22. const int BSong2 = 3;
  23. const int BSong2Dummy = 63;
  24. const int BSong3 = 48;
  25. const int BSong3Dummy = 14;
  26. const int BSong4 = 13;
  27. const int BSong4Dummy = 57;
  28. const int BSong5 = 10;
  29. const int BSong5Dummy = 70;
  30. const int BCharge = 101;
  31. const int BRing = 115;
  32. const int BGuitar1 = 5;
  33. const int BGuitar2 = 6;
  34. const int BGuitar3 = 7;
  35. const int BGuitar4 = 36;
  36. const int Harmonica = 31;
  37. const int JSong1 = 12;
  38. const int JSong1Dummy = 90;
  39. const int JSong2 = 29;
  40. const int JSong2Dummy = 81;
  41. const int JSong3 = 25;
  42. const int JSong3Dummy = 82;
  43. const int JSong4 = 88;
  44. const int JSong4Dummy = 83;
  45. const int JSong5 = 53;
  46. const int JSong5Dummy = 106;
  47. const int JSpin = 98;
  48. const int JRing = 112;
  49. const int JGuitar1 = 123;
  50. const int JGuitar2 = 124;
  51. const int JGuitar3 = 125;
  52. const int JGuitar4 = 126;
  53. const int SSong1 = 52;
  54. const int SSong1Dummy = 24;
  55. const int SSong2 = 54;
  56. const int SSong2Dummy = 55;
  57. const int SSong3 = 91;
  58. const int SSong3Dummy = 35;
  59. const int SSong4 = 64;
  60. const int SSong4Dummy = 15;
  61. const int SSong5 = 136;
  62. const int SSong5Dummy = 68;
  63.  
  64. global script slot2
  65. {
  66. void run()
  67. {
  68.  
  69.  
  70. int FollowerJustin = 32; //The number of the FFC used. This script will "hijack" this one, so don't use it for anything else on screens when you expect the player to have a follower.
  71. int FollowerBrian = 31;
  72. int firstFollowerJustinCombo = 1592; //combo of the first combo. In order, the concecutive combos must be "still up", "still down", "still left", "still right", "moving up", "moving down", "moving left", "moving right".
  73. int firstFollowerBrianCombo = 1584;
  74. int csetOfFollower = 12;
  75. bool firstCheck = false; //leave this alone
  76. int Follower;
  77. int firstFollowerCombo;
  78. int CharID;
  79. ffc follower;
  80.  
  81. int pastX;
  82. int currentX;
  83. int followerX[13];
  84.  
  85. int pastY;
  86. int currentY;
  87. int followerY[13];
  88.  
  89. int index;
  90. while(true)
  91. {
  92.  
  93. if(Link->Item[Brian] == true){
  94. CharID = Brian;
  95. Follower = FollowerJustin;
  96. firstFollowerCombo = firstFollowerJustinCombo;}
  97. else if(Link->Item[Justin] == true){
  98. CharID = Justin;
  99. Follower = FollowerBrian;
  100. firstFollowerCombo = firstFollowerBrianCombo;}
  101. if(Link->Item[CharID] == true){
  102. if(Link->Action != LA_SCROLLING && firstCheck == false){
  103. follower = Screen->LoadFFC(Follower);
  104. follower->Flags[FFCF_CARRYOVER] = true;
  105. follower->Data = firstFollowerCombo;
  106. follower->CSet = csetOfFollower;
  107.  
  108. pastX = Link->X;
  109. follower->X = Link->X;
  110. pastY = Link->Y;
  111. follower->Y = Link->Y;
  112.  
  113. for ( int i = 0; i < 13; i++ ){
  114. followerX[i] = Link->X;
  115. followerY[i] = Link->Y;
  116. }
  117.  
  118. firstCheck = true;
  119. }
  120. if(Link->Action != LA_SCROLLING){
  121. if((Link->InputUp || Link->InputDown || Link->InputRight || Link->InputLeft)&&(!(Link->InputA || Link->InputB))){
  122. pastX = follower->X;
  123. follower->X = followerX[0];
  124. for(index=0; index<12; index++){
  125. followerX[index] = followerX[index + 1];
  126. }
  127. followerX[12] = Link->X;
  128.  
  129. pastY = follower->Y;
  130. follower->Y = followerY[0];
  131. for(index=0; index<12; index++){
  132. followerY[index] = followerY[index + 1];
  133. }
  134. followerY[12] = Link->Y;
  135. }
  136.  
  137. if(follower->Y > pastY){
  138. follower->Data = firstFollowerCombo + 5;
  139. }
  140. else if(follower->Y < pastY){
  141. follower->Data = firstFollowerCombo + 4;
  142. }
  143. else if(follower->X > pastX){
  144. follower->Data = firstFollowerCombo + 7;
  145. }
  146. else if(follower->X < pastX){
  147. follower->Data = firstFollowerCombo + 6;
  148. }
  149. if(!(Link->InputUp || Link->InputDown || Link->InputRight || Link->InputLeft)){
  150. if((follower->Data == (firstFollowerCombo + 4))||(follower->Data == (firstFollowerCombo + 5))||(follower->Data == (firstFollowerCombo + 6))||(follower->Data == (firstFollowerCombo + 7))){
  151. follower->Data = follower->Data - 4;
  152. }
  153. else if((follower->Data == (firstFollowerCombo + 3))||(follower->Data == (firstFollowerCombo + 2))||(follower->Data == (firstFollowerCombo + 1))||(follower->Data == (firstFollowerCombo))){
  154.  
  155. }
  156. else{
  157. follower->Data = firstFollowerCombo;
  158. }
  159. }
  160. }
  161. if(Link->Action == LA_SCROLLING){
  162. firstCheck = false;
  163. }
  164. }
  165.  
  166.  
  167.  
  168. //Waitdraw();
  169. UpdateDrunkeness();
  170. //Magic Container Piece Global
  171.  
  172. //Magic Container checks
  173. for ( int i = 1; i <= Screen->NumItems(); i++){
  174. item drop = Screen->LoadItem(i);
  175. if ( (drop->ID == I_MCPDUMMY))
  176. drop->ID = I_MCPIECE1;
  177. if ( (drop->ID == I_MCPIECE1 && Link->Item[I_MCPIECE1]))
  178. drop->ID = I_MCPIECE2;
  179. if ( (drop->ID == I_MCPIECE2 && Link->Item[I_MCPIECE2]))
  180. drop->ID = I_MCPIECE3;
  181. if ( (drop->ID == I_MCPIECE3 && Link->Item[I_MCPIECE3]))
  182. drop->ID = I_MCPIECE4;
  183.  
  184.  
  185. }
  186. if ( (Link->Item[I_MCPIECE1] == true) && //Manually enter item number for MC_1.
  187. (Link->Item[I_MCPIECE2] == true) && //Manually enter item number for MC_2.
  188. (Link->Item[I_MCPIECE3] == true) && //Manually enter item number for MC_3.
  189. (Link->Item[I_MCPIECE4] == true) ) //Manually enter item number for MC_4.
  190.  
  191. //If Link has four Magic Containers
  192. {
  193. Link->Item[I_MCPIECE1] = false; //Removes MPC1; Manually enter item number for MC_1.
  194. Link->Item[I_MCPIECE2] = false; //Removes MCP2; Manually enter item number for MC_2.
  195. Link->Item[I_MCPIECE3] = false; //Removes MCP3; Manually enter item number for MC_3.
  196. Link->Item[I_MCPIECE4] = false; //Removes MCP4; Manually enter item number for MC_4.
  197. item MCWhole = Screen->CreateItem(I_MAGICCONTAINER); //Gives link a whole MC.
  198. MCWhole->X = Link->X;
  199. MCWhole->Y = Link->Y;
  200. MCWhole->Z = Link->Z;
  201. }
  202.  
  203.  
  204. //Character switching
  205. if (Link->Item[Brian] == true)
  206. {
  207. Link->Item[SmokeBreak] = true;
  208. Link->Item[BCharge] = true;
  209. Link->Item[BRing] = true;
  210. Link->Item[JSpin] = false;
  211. Link->Item[JRing] = false;
  212. Link->Item[Harmonica] = false;
  213. Link->Item[JSong1] = false;
  214. Link->Item[JSong2] = false;
  215. Link->Item[JSong3] = false;
  216. Link->Item[JSong4] = false;
  217. Link->Item[JSong5] = false;
  218. if (Link->Item[BSong1Dummy] == true)
  219. {
  220. Link->Item[BSong1] = true;
  221. }
  222. if (Link->Item[BSong2Dummy] == true)
  223. {
  224. Link->Item[BSong2] = true;
  225. }
  226. if (Link->Item[BSong3Dummy] == true)
  227. {
  228. Link->Item[BSong3] = true;
  229. }
  230. if (Link->Item[BSong4Dummy] == true)
  231. {
  232. Link->Item[BSong4] = true;
  233. }
  234. if (Link->Item[BSong5Dummy] == true)
  235. {
  236. Link->Item[BSong5] = true;
  237. }
  238. if (Link->Item[JGuitar1] == true)
  239. {
  240. Link->Item[BGuitar1] = true;
  241. Link->Item[JGuitar1] = false;
  242. }
  243. if (Link->Item[JGuitar2] == true)
  244. {
  245. Link->Item[BGuitar2] = true;
  246. Link->Item[JGuitar2] = false;
  247. }
  248. if (Link->Item[JGuitar3] == true)
  249. {
  250. Link->Item[BGuitar3] = true;
  251. Link->Item[JGuitar3] = false;
  252. }
  253. if (Link->Item[JGuitar4] == true)
  254. {
  255. Link->Item[BGuitar4] = true;
  256. Link->Item[JGuitar4] = false;
  257. }
  258. }
  259. if (Link->Item[Justin] == true)
  260. {
  261. Link->Item[SmokeBreak] = false;
  262. Link->Item[BCharge] = false;
  263. Link->Item[BRing] = false;
  264. Link->Item[JSpin] = true;
  265. Link->Item[JRing] = true;
  266. Link->Item[Harmonica] = true;
  267. Link->Item[BSong1] = false;
  268. Link->Item[BSong2] = false;
  269. Link->Item[BSong3] = false;
  270. Link->Item[BSong4] = false;
  271. Link->Item[BSong5] = false;
  272. if (Link->Item[JSong1Dummy] == true)
  273. {
  274. Link->Item[JSong1] = true;
  275. }
  276. if (Link->Item[JSong2Dummy] == true)
  277. {
  278. Link->Item[JSong2] = true;
  279. }
  280. if (Link->Item[JSong3Dummy] == true)
  281. {
  282. Link->Item[JSong3] = true;
  283. }
  284. if (Link->Item[JSong4Dummy] == true)
  285. {
  286. Link->Item[JSong4] = true;
  287. }
  288. if (Link->Item[JSong5Dummy] == true)
  289. {
  290. Link->Item[JSong5] = true;
  291. }
  292. if (Link->Item[BGuitar1] == true)
  293. {
  294. Link->Item[JGuitar1] = true;
  295. Link->Item[BGuitar1] = false;
  296. }
  297. if (Link->Item[BGuitar2] == true)
  298. {
  299. Link->Item[JGuitar2] = true;
  300. Link->Item[BGuitar2] = false;
  301. }
  302. if (Link->Item[BGuitar3] == true)
  303. {
  304. Link->Item[JGuitar3] = true;
  305. Link->Item[BGuitar3] = false;
  306. }
  307. if (Link->Item[BGuitar4] == true)
  308. {
  309. Link->Item[JGuitar4] = true;
  310. Link->Item[BGuitar4] = false;
  311. }
  312. }
  313. if (Link->Item[Bullhorn] == true)
  314. {
  315. if ((Link->Item[BSong1Dummy] == true) && (Link->Item[Brian] == true))
  316. {
  317. Link->Item[BSong1] = true;
  318. }
  319. if ((Link->Item[BSong2Dummy] == true) && (Link->Item[Brian] == true))
  320. {
  321. Link->Item[BSong2] = true;
  322. }
  323. if ((Link->Item[BSong3Dummy] == true) && (Link->Item[Brian] == true))
  324. {
  325. Link->Item[BSong3] = true;
  326. }
  327. if ((Link->Item[BSong4Dummy] == true) && (Link->Item[Brian] == true))
  328. {
  329. Link->Item[BSong4] = true;
  330. }
  331. if ((Link->Item[BSong5Dummy] == true) && (Link->Item[Brian] == true))
  332. {
  333. Link->Item[BSong5] = true;
  334. }
  335. if ((Link->Item[JSong1Dummy] == true) && (Link->Item[Justin] == true))
  336. {
  337. Link->Item[JSong1] = true;
  338. }
  339. if ((Link->Item[JSong2Dummy] == true) && (Link->Item[Justin] == true))
  340. {
  341. Link->Item[JSong2] = true;
  342. }
  343. if ((Link->Item[JSong3Dummy] == true) && (Link->Item[Justin] == true))
  344. {
  345. Link->Item[JSong3] = true;
  346. }
  347. if ((Link->Item[JSong4Dummy] == true) && (Link->Item[Justin] == true))
  348. {
  349. Link->Item[JSong4] = true;
  350. }
  351. if ((Link->Item[JSong5Dummy] == true) && (Link->Item[Justin] == true))
  352. {
  353. Link->Item[JSong5] = true;
  354. }
  355. if (Link->Item[SSong1Dummy] == true)
  356. {
  357. Link->Item[SSong1] = true;
  358. }
  359. if (Link->Item[SSong2Dummy] == true)
  360. {
  361. Link->Item[SSong2] = true;
  362. }
  363. if (Link->Item[SSong3Dummy] == true)
  364. {
  365. Link->Item[SSong3] = true;
  366. }
  367. if (Link->Item[SSong4Dummy] == true)
  368. {
  369. Link->Item[SSong4] = true;
  370. }
  371. if (Link->Item[SSong5Dummy] == true)
  372. {
  373. Link->Item[SSong5] = true;
  374. }
  375. }
  376.  
  377. else if (Link->Item[Bullhorn] == false)
  378. {
  379.  
  380. Link->Item[BSong1] = false;
  381. Link->Item[BSong2] = false;
  382. Link->Item[BSong3] = false;
  383. Link->Item[BSong4] = false;
  384. Link->Item[BSong5] = false;
  385. Link->Item[JSong1] = false;
  386. Link->Item[JSong2] = false;
  387. Link->Item[JSong3] = false;
  388. Link->Item[JSong4] = false;
  389. Link->Item[JSong5] = false;
  390. Link->Item[SSong1] = false;
  391. Link->Item[SSong2] = false;
  392. Link->Item[SSong3] = false;
  393. Link->Item[SSong4] = false;
  394. Link->Item[SSong5] = false;
  395. }
  396. Waitframe();
  397. }
  398. }
  399.  
  400. }
  401.  
  402.  
  403. void UpdateDrunkeness()
  404. {
  405. int random_act = 0;
  406.  
  407. if(Game->Counter[CR_DRUNKENESS] == 0 && Game->Counter[CR_BEER] > 0){
  408. Game->Counter[CR_BEER] = 0;
  409. }
  410.  
  411. if(Link->Drunk > 0)
  412. {
  413. Game->Counter[CR_DRUNKENESS]=Link->Drunk;
  414. Link->Drunk=0;
  415. }
  416.  
  417. if(Game->Counter[CR_DRUNKENESS]>0)
  418. {
  419. Game->Counter[CR_DRUNKENESS]--;
  420. Screen->FastCombo(DRUNK_ICON_LAYER, Link->X, Link->Y, DRUNK_ICON_COMBO, DRUNK_ICON_CSET, OP_OPAQUE);
  421.  
  422. if(Link->Misc[LM_DRUNKACT] > 0){
  423. if(Link->Misc[LM_DRUNKACTTIME] > 0){
  424. Drunk_Action();
  425. Link->Misc[LM_DRUNKACTTIME]--;
  426. }else{
  427. Link->Misc[LM_DRUNKACT] = 0;
  428. }
  429. }
  430.  
  431. // Game->Counter[CR_DRUNKENESS]%30 == 0 &&
  432.  
  433. if( Drunk_Effect() ) {
  434. Link->Misc[LM_DRUNKACT] = Rand(15);
  435. if(Link->Misc[LM_DRUNKACT] <= 11) Link->Misc[LM_DRUNKACTTIME] = 30;
  436. else Link->Misc[LM_DRUNKACTTIME] = 0;
  437.  
  438. Drunk_Action();
  439. }
  440. }
  441. }
  442.  
  443. bool Drunk_Effect(){
  444. return (Rand(100) <= DRUNK_EFFECT_CHANCE * (Max(1,Game->Counter[CR_DRUNKENESS]/DRUNK_TIME)) );
  445. }
  446.  
  447. void Drunk_Action(){
  448. int temp = 0;
  449.  
  450. if(Link->Misc[LM_DRUNKACT] <= 3){
  451. Link->Dir = Link->Misc[LM_DRUNKACT];
  452. }else if(Link->Misc[LM_DRUNKACT] <= 7){
  453. if(Link->Misc[LM_DRUNKACT] == 4){
  454. Link->InputDown = false;
  455. Link->InputLeft = false;
  456. Link->InputRight = false;
  457.  
  458. Link->InputUp = true;
  459. }else if(Link->Misc[LM_DRUNKACT] == 5){
  460. Link->InputUp = false;
  461. Link->InputLeft = false;
  462. Link->InputRight = false;
  463.  
  464. Link->InputDown = true;
  465. }else if(Link->Misc[LM_DRUNKACT] == 6){
  466. Link->InputUp = false;
  467. Link->InputDown = false;
  468. Link->InputRight = false;
  469.  
  470. Link->InputLeft = true;
  471. }else{
  472. Link->InputUp = false;
  473. Link->InputDown = false;
  474. Link->InputLeft = false;
  475.  
  476. Link->InputRight = true;
  477. }
  478.  
  479. Link->Dir = Link->Misc[LM_DRUNKACT]-4;
  480. }else if(Link->Misc[LM_DRUNKACT] == 8){
  481. Link->InputDown = false;
  482. Link->InputLeft = false;
  483. Link->InputRight = false;
  484.  
  485. temp = Link->Dir;
  486. Link->InputUp;
  487. Link->Dir = temp;
  488. }else if(Link->Misc[LM_DRUNKACT] == 9){
  489. Link->InputUp = false;
  490. Link->InputLeft = false;
  491. Link->InputRight = false;
  492.  
  493. temp = Link->Dir;
  494. Link->InputDown;
  495. Link->Dir = temp;
  496. }else if(Link->Misc[LM_DRUNKACT] == 10){
  497. Link->InputUp = false;
  498. Link->InputDown = false;
  499. Link->InputRight = false;
  500.  
  501. temp = Link->Dir;
  502. Link->InputLeft;
  503. Link->Dir = temp;
  504. }else if(Link->Misc[LM_DRUNKACT] == 11){
  505. Link->InputUp = false;
  506. Link->InputDown = false;
  507. Link->InputLeft = false;
  508.  
  509. temp = Link->Dir;
  510. Link->InputRight;
  511. Link->Dir = temp;
  512. }else if(Link->Misc[LM_DRUNKACT] == 12){
  513. Link->InputA = true;
  514. }else if(Link->Misc[LM_DRUNKACT] == 13){
  515. Link->InputB = true;
  516. }else if(Link->Misc[LM_DRUNKACT] == 14){
  517. Link->InputL = true;
  518. }else if(Link->Misc[LM_DRUNKACT] == 15){
  519. Link->InputR = true;
  520. }
  521. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement