Advertisement
Guest User

Untitled

a guest
Dec 7th, 2019
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.30 KB | None | 0 0
  1. class 1 miner_mai : citizen
  2. {
  3. handler:
  4. EventHandler TALKED( i0, i1, quest_id, talker )
  5. {
  6. if( _from_choice == 0 )
  7. {
  8. if( myself::GetMemoStateEx( talker, @tutorial_quest, 1 ) < 0 )
  9. {
  10. _choiceN = _choiceN + 1;
  11. _code = 0;
  12. myself::AddChoice( 0, "Dwarf's Tutorial" );
  13. }
  14. if( ( myself::GetMemoStateEx( talker, @tutorial_quest, 1 ) == 1 ||
  15. myself::GetMemoStateEx( talker, @tutorial_quest, 1 ) == 2 ||
  16. myself::GetMemoStateEx( talker, @tutorial_quest, 1 ) == 0 ) &&
  17. myself::OwnItemCount( talker, @tutorial_blue_gem ) < 1 )
  18. {
  19. _choiceN = _choiceN + 1;
  20. _code = 1;
  21. myself::AddChoice( 1, "Dwarf's Tutorial" );
  22. }
  23. if( ( myself::GetMemoStateEx( talker, @tutorial_quest, 1 ) == 2 ||
  24. myself::GetMemoStateEx( talker, @tutorial_quest, 1 ) == 1 ||
  25. myself::GetMemoStateEx( talker, @tutorial_quest, 1 ) == 0 ) &&
  26. myself::OwnItemCount( talker, @tutorial_blue_gem ) > 0 )
  27. {
  28. _choiceN = _choiceN + 1;
  29. _code = 2;
  30. myself::AddChoice( 2, "Dwarf's Tutorial" );
  31. }
  32. if( myself::GetMemoStateEx( talker, @tutorial_quest, 1 ) == 3 )
  33. {
  34. _choiceN = _choiceN + 1;
  35. _code = 3;
  36. myself::AddChoice( 3, "Dwarf's Tutorial" );
  37. }
  38. if( myself::GetMemoStateEx( talker, @tutorial_quest, 1 ) > 3 )
  39. {
  40. _choiceN = _choiceN + 1;
  41. _code = 4;
  42. myself::AddChoice( 4, "Dwarf's Tutorial" );
  43. }
  44. if( _choiceN > 1 )
  45. {
  46. myself::ShowChoicePage( talker, 0 );
  47. return;
  48. }
  49. }
  50. if( _from_choice || _choiceN == 1 )
  51. {
  52. switch( _code )
  53. {
  54. case 0:
  55. {
  56. if( _from_choice == 0 ||
  57. myself::GetMemoStateEx( talker, @tutorial_quest, 1 ) < 0 )
  58. {
  59. myself::SetCurrentQuestID( @dwarf_tutorial );
  60. if( myself::GetInventoryInfo( talker, 0 ) >= myself::GetInventoryInfo( talker, 1 ) * 0.800000 ||
  61. myself::GetInventoryInfo( talker, 2 ) >= myself::GetInventoryInfo( talker, 3 ) * 0.800000 )
  62. {
  63. myself::ShowSystemMessage( talker, 1118 );
  64. return;
  65. }
  66. if( talker.race == @race_dwarf )
  67. {
  68. myself::DeleteRadar( talker, 108567, -173994, -406, 2 );
  69. myself::AddTimerEx( myself::GetIndexFromCreature( talker ) + 1000000,
  70. 1000 * 30 );
  71. if( myself::IsInCategory( @fighter_group, talker.occupation ) )
  72. {
  73. myself::ShowPage( talker, "carl001.htm" );
  74. }
  75. else
  76. {
  77. myself::ShowPage( talker, "doff001.htm" );
  78. }
  79. myself::SetMemoStateEx( talker, @tutorial_quest, 1, 0 );
  80. i1 = myself::GetMemoState( talker, @tutorial_quest );
  81. i0 = i1 & 2147483392;
  82. myself::EnableTutorialEvent( talker, i0 | 1048576 );
  83. }
  84. else
  85. {
  86. myself::ShowPage( talker, "carl006.htm" );
  87. }
  88. }
  89. break;
  90. }
  91. case 1:
  92. {
  93. if( _from_choice == 0 ||
  94. ( ( myself::GetMemoStateEx( talker, @tutorial_quest, 1 ) == 1 ||
  95. myself::GetMemoStateEx( talker, @tutorial_quest, 1 ) == 2 ||
  96. myself::GetMemoStateEx( talker, @tutorial_quest, 1 ) == 0 ) &&
  97. myself::OwnItemCount( talker, @tutorial_blue_gem ) < 1 ) )
  98. {
  99. myself::SetCurrentQuestID( @dwarf_tutorial );
  100. if( myself::GetInventoryInfo( talker, 0 ) >= myself::GetInventoryInfo( talker, 1 ) * 0.800000 ||
  101. myself::GetInventoryInfo( talker, 2 ) >= myself::GetInventoryInfo( talker, 3 ) * 0.800000 )
  102. {
  103. myself::ShowSystemMessage( talker, 1118 );
  104. return;
  105. }
  106. myself::ShowPage( talker, "carl002.htm" );
  107. }
  108. break;
  109. }
  110. case 2:
  111. {
  112. if( _from_choice == 0 ||
  113. ( ( myself::GetMemoStateEx( talker, @tutorial_quest, 1 ) == 2 ||
  114. myself::GetMemoStateEx( talker, @tutorial_quest, 1 ) == 1 ||
  115. myself::GetMemoStateEx( talker, @tutorial_quest, 1 ) == 0 ) &&
  116. myself::OwnItemCount( talker, @tutorial_blue_gem ) > 0 ) )
  117. {
  118. myself::SetCurrentQuestID( @dwarf_tutorial );
  119. if( myself::GetInventoryInfo( talker, 0 ) >= myself::GetInventoryInfo( talker, 1 ) * 0.800000 ||
  120. myself::GetInventoryInfo( talker, 2 ) >= myself::GetInventoryInfo( talker, 3 ) * 0.800000 )
  121. {
  122. myself::ShowSystemMessage( talker, 1118 );
  123. return;
  124. }
  125. myself::ShowPage( talker, "miner_mai003.htm" );
  126. myself::DeleteItem1( talker, @tutorial_blue_gem,
  127. myself::OwnItemCount( talker, @tutorial_blue_gem ) );
  128. myself::SetMemoStateEx( talker, @tutorial_quest, 1, 3 );
  129. myself::GiveItem1( talker, @license_of_miner, 1 );
  130. myself::AddTimerEx( myself::GetIndexFromCreature( talker ) + 1000000,
  131. 1000 * 30 );
  132. i0 = myself::GetMemoState( talker, @tutorial_quest ) & 2147483392;
  133. myself::SetMemoState( talker, @tutorial_quest, i0 | 4 );
  134. if( myself::IsInCategory( @fighter_group, talker.occupation ) &&
  135. myself::OwnItemCount( talker, @soulshot_none_for_rookie ) <= 0 )
  136. {
  137. myself::VoiceEffect( talker, "tutorial_voice_026", 1000 );
  138. myself::GiveItem1( talker, @soulshot_none_for_rookie, 200 );
  139. }
  140. if( myself::IsInCategory( @mage_group, talker.occupation ) &&
  141. myself::OwnItemCount( talker, @soulshot_none_for_rookie ) <= 0 &&
  142. myself::OwnItemCount( talker, @spiritshot_none_for_rookie ) <= 0 )
  143. {
  144. myself::VoiceEffect( talker, "tutorial_voice_027", 1000 );
  145. myself::GiveItem1( talker, @spiritshot_none_for_rookie, 100 );
  146. }
  147. }
  148. break;
  149. }
  150. case 3:
  151. {
  152. if( _from_choice == 0 ||
  153. myself::GetMemoStateEx( talker, @tutorial_quest, 1 ) == 3 )
  154. {
  155. myself::SetCurrentQuestID( @dwarf_tutorial );
  156. if( myself::GetInventoryInfo( talker, 0 ) >= myself::GetInventoryInfo( talker, 1 ) * 0.800000 ||
  157. myself::GetInventoryInfo( talker, 2 ) >= myself::GetInventoryInfo( talker, 3 ) * 0.800000 )
  158. {
  159. myself::ShowSystemMessage( talker, 1118 );
  160. return;
  161. }
  162. myself::ShowPage( talker, "miner_mai004.htm" );
  163. }
  164. break;
  165. }
  166. case 4:
  167. {
  168. if( _from_choice == 0 ||
  169. myself::GetMemoStateEx( talker, @tutorial_quest, 1 ) > 3 )
  170. {
  171. myself::SetCurrentQuestID( @dwarf_tutorial );
  172. if( myself::GetInventoryInfo( talker, 0 ) >= myself::GetInventoryInfo( talker, 1 ) * 0.800000 ||
  173. myself::GetInventoryInfo( talker, 2 ) >= myself::GetInventoryInfo( talker, 3 ) * 0.800000 )
  174. {
  175. myself::ShowSystemMessage( talker, 1118 );
  176. return;
  177. }
  178. myself::ShowPage( talker, "carl005.htm" );
  179. }
  180. break;
  181. }
  182. }
  183. return;
  184. }
  185. super;
  186. }
  187.  
  188. EventHandler TIMER_FIRED_EX( talker, timer_id )
  189. {
  190. myself::SetCurrentQuestID( @dwarf_tutorial );
  191. if( timer_id <= 1000000 )
  192. {
  193. return;
  194. }
  195. talker = myself::GetCreatureFromIndex( timer_id - 1000000 );
  196. if( talker.alive == 0 || talker.is_pc == 0 )
  197. {
  198. return;
  199. }
  200. if( myself::GetMemoStateEx( talker, @tutorial_quest, 1 ) == 0 &&
  201. timer_id >= 1000000 )
  202. {
  203. myself::VoiceEffect( talker, "tutorial_voice_009a", 0 );
  204. myself::SetMemoStateEx( talker, @tutorial_quest, 1, 1 );
  205. }
  206. if( myself::GetMemoStateEx( talker, @tutorial_quest, 1 ) == 3 &&
  207. timer_id >= 1000000 )
  208. {
  209. myself::VoiceEffect( talker, "tutorial_voice_010f", 0 );
  210. myself::SetMemoStateEx( talker, @tutorial_quest, 1, 4 );
  211. }
  212. super;
  213. }
  214. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement