Advertisement
Guest User

Untitled

a guest
Jul 11th, 2017
626
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.61 KB | None | 0 0
  1. // NICK'O'THE'DEEP
  2. //
  3. // turtle who floats around in Loch Lalain
  4. // can tell us an amazing amount of information about bell, Kraken, shipwrecks
  5. //
  6. // Has wound from pirates shooting at him, if we heal it we will get more
  7. // amity with neriad when we see her again
  8. //
  9. // Will not talk to a cPIRATE profession or cNAGA race
  10. //
  11. // Give hot chili sardines to for special reward
  12.  
  13. const int Flag_First_Encounter = 0;
  14. const int Flag_First_Exit = 1;
  15. const int Flag_First_Exit_Talk = 2;
  16. const int Flag_Healed_My_Wounds = 3;
  17. const int Flag_Feeling_Better = 4;
  18. const int Flag_First_Talk = 5;
  19. const int Flag_Told_About_Pirate_Treasure = 6;
  20. const int Flag_Told_About_Pirate_Ship = 7;
  21. const int Flag_Asked_About_Chest = 8;
  22.  
  23. const int CIDX_Hitpoints = 1;
  24.  
  25. const int CONDITION_Gratitude_For_Medical_Attention = 90;
  26.  
  27. const int CHECKPOINT_Loch_Lalain = 40;
  28. const int CHECKPOINT_Loch_Titan = 44;
  29. const int CHECKPOINT_Snark_Mistress = 46;
  30. const int CHECKPOINT_Sargasso_Of_The_Kraken = 45;
  31. const int CHECKPOINT_Zephyre_Isles = 50;
  32.  
  33. const int ITEM_Hot_Chili_Sardine = 238;
  34.  
  35. const int MAPNOTE_X = 152;
  36. const int MAPNOTE_Y = 67;
  37. const int MAPNOTE_SHIPX = 83;
  38. const int MAPNOTE_SHIPY = 44;
  39. const int MAPNOTE_PIRATE_TREASURE = 24;
  40. const int MAPNOTE_PIRATE_SHIP = 25;
  41.  
  42. //cGLOBAL_HEALED_NICK_OF_THE_DEEP
  43.  
  44. bool OnSubject_YOU(int querytype)
  45. {
  46. Say(14);
  47.  
  48. return(true);
  49. }
  50.  
  51. bool OnSubject_JOB(int querytype)
  52. {
  53. Say(15);
  54.  
  55. return(true);
  56. }
  57.  
  58. bool OnSubject_NAGA(int querytype)
  59. {
  60. //Say(15);
  61.  
  62. return(true);
  63. }
  64.  
  65. bool OnSubject_ZEPHYRISLES(int querytype)
  66. {
  67. //Say(15);
  68.  
  69. return(true);
  70. }
  71.  
  72. bool OnSubject_BLACKPIERRE(int querytype)
  73. {
  74. //Say(15);
  75.  
  76. return(true);
  77. }
  78.  
  79. bool OnSubject_KRAKEN(int querytype)
  80. {
  81. if(GetGlobal(cGLOBAL_KILLED_KRAKEN) == true)
  82. {
  83. Say(43);
  84. }
  85. else
  86. {
  87. QSay(querytype,0,38,39,42,42);
  88. }
  89.  
  90. return(true);
  91. }
  92.  
  93. bool OnSubject_BAHOMET(int querytype)
  94. {
  95. if(GetGlobal(cGLOBAL_KILLED_KRAKEN) == true)
  96. {
  97. Say(44);
  98. }
  99. else
  100. {
  101. QSay(querytype,0,40,41,0,0);
  102. }
  103.  
  104. return(true);
  105. }
  106.  
  107. bool OnSubject_NERIAD(int querytype)
  108. {
  109. if(querytype == cDISPATCH_WHERE)
  110. {
  111. Say(34);
  112. }
  113. else
  114. {
  115. Say(33);
  116. }
  117.  
  118. return(true);
  119. }
  120.  
  121. bool OnSubject_PIRATE(int querytype)
  122. {
  123. Say(35);
  124.  
  125. if(GetGlobal(cGLOBAL_HEALED_NICK_OF_THE_DEEP)==true)
  126. {
  127. if(Get(Flag_Told_About_Pirate_Ship) == false)
  128. {
  129. Say(36);
  130.  
  131. Set(Flag_Told_About_Pirate_Ship);
  132.  
  133. if(PartyVisited(CHECKPOINT_Snark_Mistress) == false)
  134. {
  135. RevealMap(CHECKPOINT_Loch_Titan, MAPNOTE_SHIPX,MAPNOTE_SHIPY,MAPNOTE_PIRATE_SHIP);
  136. }
  137. }
  138.  
  139. if(Get(Flag_Told_About_Pirate_Treasure) == false)
  140. {
  141. Say(28);
  142.  
  143. Set(Flag_Told_About_Pirate_Treasure);
  144.  
  145. // communicating with logic pointers in game logic
  146. SetGlobal(cGLOBAL_NICKS_PIRATE_TREASURE,true);
  147.  
  148. RevealMap(CHECKPOINT_Zephyre_Isles, MAPNOTE_X,MAPNOTE_Y,MAPNOTE_PIRATE_TREASURE);
  149.  
  150. Say(37);
  151. }
  152. else
  153. {
  154. if(Get(Flag_Asked_About_Chest)==false)
  155. {
  156. Say(29);
  157.  
  158. Set(Flag_Asked_About_Chest);
  159. }
  160. }
  161. }
  162.  
  163. return(true);
  164. }
  165.  
  166. bool OnSubject_INTREPID(int querytype)
  167. {
  168. QSay(querytype,0,16,21,0,0);
  169.  
  170. return(true);
  171. }
  172.  
  173. bool OnSubject_LOCHLALAIN(int querytype)
  174. {
  175. QSay(querytype,0,17,22,0,0);
  176.  
  177. return(true);
  178. }
  179.  
  180. bool OnSubject_LOCHTITAN(int querytype)
  181. {
  182. QSay(querytype,0,18,23,0,0);
  183.  
  184. return(true);
  185. }
  186.  
  187. bool OnSubject_SNARKMISTRES(int querytype)
  188. {
  189. QSay(querytype,0,19,24,0,0);
  190.  
  191. if(GetGlobal(cGLOBAL_HEALED_NICK_OF_THE_DEEP)==true)
  192. {
  193. if(Get(Flag_Told_About_Pirate_Ship) == false)
  194. {
  195. Say(36);
  196.  
  197. Set(Flag_Told_About_Pirate_Ship);
  198.  
  199. if(PartyVisited(CHECKPOINT_Snark_Mistress) == false)
  200. {
  201. RevealMap(CHECKPOINT_Loch_Titan, MAPNOTE_SHIPX,MAPNOTE_SHIPY,MAPNOTE_PIRATE_SHIP);
  202. }
  203. }
  204.  
  205. if(Get(Flag_Told_About_Pirate_Treasure) == false)
  206. {
  207. Say(28);
  208.  
  209. Set(Flag_Told_About_Pirate_Treasure);
  210.  
  211. // communicating with logic pointers in game logic
  212. SetGlobal(cGLOBAL_NICKS_PIRATE_TREASURE,true);
  213.  
  214. RevealMap(CHECKPOINT_Zephyre_Isles, MAPNOTE_X,MAPNOTE_Y,MAPNOTE_PIRATE_TREASURE);
  215.  
  216. Say(37);
  217. }
  218. else
  219. {
  220. Say(29);
  221. }
  222. }
  223.  
  224. return(true);
  225. }
  226.  
  227. bool OnSubject_WATERPORT(int querytype)
  228. {
  229. QSay(querytype,0,20,25,0,0);
  230.  
  231. return(true);
  232. }
  233.  
  234. bool OnSubject_SARGASSO(int querytype)
  235. {
  236. QSay(querytype,0,26,27,0,0);
  237.  
  238. return(true);
  239. }
  240.  
  241. bool OnEncounter(int value)
  242. {
  243. if(Get(Flag_First_Encounter)==false)
  244. {
  245. // when we first encounter Nick, he is wounded by pirates
  246. MakeMeWounded();
  247.  
  248. Narrative(1);
  249. Say(2);
  250.  
  251. Set(Flag_First_Encounter);
  252. }
  253. else
  254. {
  255. if(Get(Flag_Healed_My_Wounds) == true)
  256. {
  257. if(Get(Flag_Feeling_Better)==false)
  258. {
  259. Say(12);
  260.  
  261. Set(Flag_Feeling_Better);
  262. }
  263. }
  264. }
  265.  
  266. return(true);
  267. }
  268.  
  269. bool OnExitEncounter(int value)
  270. {
  271. if(Get(Flag_Healed_My_Wounds) == true)
  272. {
  273. if(Get(Flag_First_Exit)==false)
  274. {
  275. Say(6);
  276.  
  277. Set(Flag_First_Exit);
  278. }
  279. else
  280. {
  281. if(FlipCoin())
  282. {
  283. RandomSay(3,4,5);
  284. }
  285. else
  286. {
  287. RandomSay(7,8,11);
  288. }
  289. }
  290. }
  291. else
  292. {
  293. if(Amicable())RandomSay(7,8,11);
  294. }
  295.  
  296. return(true);
  297. }
  298.  
  299. bool OnExitTalk(int value)
  300. {
  301. if(Get(Flag_First_Exit_Talk)==false)
  302. {
  303. if(Amicable())Narrative(13);
  304.  
  305. Set(Flag_First_Exit_Talk);
  306.  
  307. return(true);
  308. }
  309.  
  310. return(true);
  311. }
  312.  
  313. bool OnHeal(int value)
  314. {
  315. int cndpc = MyConditionPercentile(CIDX_Hitpoints);
  316.  
  317. if(Get(Flag_Healed_My_Wounds) == true)
  318. {
  319. return(true);
  320. }
  321.  
  322. // if we heal this NPC during interaction it increases amity
  323. // until he is ready to assist us in our quest
  324. if(value == 1)
  325. {
  326. ModifyAmity(cPARTY_AGENTSOFWHITEOWL,+1);
  327. ModifyEnmity(cPARTY_AGENTSOFWHITEOWL,-1);
  328.  
  329. if(cndpc >= CONDITION_Gratitude_For_Medical_Attention)
  330. {
  331. if(Get(Flag_Healed_My_Wounds) == false)
  332. {
  333. Set(Flag_Healed_My_Wounds) ;
  334.  
  335. SetGlobal(cGLOBAL_HEALED_NICK_OF_THE_DEEP, true);
  336. }
  337. }
  338. }
  339.  
  340. return(true);
  341. }
  342.  
  343. bool OnUnknown(int value)
  344. {
  345. RandomSay(30,31,32);
  346.  
  347. return(true);
  348. }
  349.  
  350. bool OnTalk(int value)
  351. {
  352. if(GetTalkerRace() == cNAGA || GetTalkerProfession() == cPIRATE)
  353. {
  354. Narrative(10);
  355.  
  356. return(true);
  357. }
  358.  
  359. if(Get(Flag_First_Talk)==false)
  360. {
  361. Say(9);
  362.  
  363. Set(Flag_First_Talk);
  364. }
  365.  
  366. return(false);
  367. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement