Advertisement
Guest User

madocter siege

a guest
Apr 7th, 2018
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 61.04 KB | None | 0 0
  1.  
  2. /************
  3. * MajoR, ROCK, PYC, Kray *
  4. * 27.08.09 *
  5.  
  6. * Madocter
  7. *07.04.2018
  8. ************/
  9.  
  10.  
  11. class 1 giran_siege_event_master : (null)
  12. {
  13. parameter:
  14.  
  15.   int control_tower =  @event_crystal;  
  16.  
  17.   int attack_guard =  @archer_of_despair;
  18.   int attack_guard_2 =  @heretic_knight;
  19.  
  20.   int attack_guard_3 =  @lilim_priest;
  21.   int attack_guard_4 =  @lilim_knight;
  22.   int attack_guard_5 =  @lilim_assassin;
  23.   int attack_guard_6 =  @fiend_archer_2;
  24.   int attack_guard_7 =  @alpine_bandersnatch;
  25.    
  26.   int tower =  @godad_holything_r;
  27.   int wall =  @godad_holything_l;
  28.   int war_tent =  @azit_contest_flag_a;
  29.   int large_war_tent =  @azit_contest_flag_winner;
  30.  
  31.   int broken_siege_hog = @godad_holything_l;
  32.   int broken_siege_golem = @godad_holything_l;
  33.    
  34.   int final_warrior =  @mikhail;  //mini raid
  35.   int siege_golem=  @event_siege_golem; //final boss who end the event.
  36.  
  37.   int siege_hog =  @event_range_golem;
  38.  
  39.   int guard_pole =  @heretic_knight;
  40.   int guard_bow =  @doom_archer_agit;
  41.  
  42.   int town_attack_stone_01 =  @__warehouse_keeper_romp;  //summons final boss
  43.   int terminator_stone =  @__warehouse_keeper_romp;      //summons mini raid boss  
  44.  
  45.   int skill_id_1 =  @s_event_wild_cannon;  //range skill
  46.   int skill_id_2 =  @s_event_siege_hammer1;  //mele attack skill
  47.   int skill_id_3 =  @s_heal_boss_a_2a_1;  //self buff  
  48.  
  49.   int skill_id_5 = @s_elemental_heal11;
  50.   int skill_id_6 = @s_zero_g1;
  51.  
  52.   int monsters_amount = 3;
  53.  
  54.   int test = 0;
  55.  
  56.   int item_reward_normal = 57 ;
  57.   int item_reward_normal_amount = 2;
  58.   int item_reward_nice = 57 ;
  59.   int item_reward_nice_amount = 1;
  60.  
  61.   int time_before_start = 5;
  62.   int delay_between_sieges = 1440;
  63.   string  start_siege_html = "giran_siege_start.htm";
  64.   string  start_siege_html_no = "giran_siege_start_no.htm";
  65.  
  66.   int request_item_id = 7866;
  67.   int request_item_amount = 10;
  68.  
  69.   string event_announce_message = "Giran siege event will start in 5 minutes";
  70.   string event_started_message = "Giran siege started , defend the city !" ;
  71. }
  72.  
  73.  
  74. class 1 giran_siege_event : giran_siege_event_master
  75. {
  76.  
  77.  handler:
  78.  
  79.  EventHandler CREATED()
  80.  {
  81.  myself.i_ai1 = 0;
  82.  }
  83.  
  84.   EventHandler TALKED( talker)
  85.   {
  86.     myself::ShowPage( talker, start_siege_html );
  87.    
  88.     if(talker.builder_level>0 || test == 1)
  89.     {
  90.  
  91.     if(myself.i_ai1 == 0)
  92.     {
  93.     myself.i_ai1 = 1;
  94.     myself::Say( "Siege started." );
  95.     myself::CreateOnePrivateEx(terminator_stone ,"giran_siege_town_observer",0,0,81876,140107,-3560,0,0,0,0);  
  96.     }
  97.     else{
  98.     myself::Say( "No more sieges for today." );
  99.     }
  100.    
  101.     }
  102.   }
  103.  
  104.  
  105.   EventHandler MENU_SELECTED( talker, ask, reply, i1 )
  106.   {
  107.     if( ask == 1 && reply == 1 )
  108.     {
  109.    
  110.      if(myself::OwnItemCount( talker, request_item_id ) >= request_item_amount && myself.i_ai1 == 0)
  111.      {
  112.      myself.i_ai1 = 1;
  113.      myself::DeleteItem1( talker, request_item_id, request_item_amount );
  114.      gg::Announce( event_announce_message );     
  115.      myself::AddTimerEx( 1, 60000 * time_before_start );
  116.      }
  117.      else
  118.      {
  119.             myself::ShowPage( talker, start_siege_html_no );
  120.      } 
  121.     }
  122.      
  123.    }  
  124.    
  125.   EventHandler TIMER_FIRED_EX( talker, timer_id, i0, i1 )
  126.   {
  127.     if( timer_id == 1 )
  128.     {
  129.     gg::Announce( event_started_message );   
  130.     myself::CreateOnePrivateEx(terminator_stone ,"giran_siege_town_observer",0,0,81876,140107,-3560,0,0,0,0);
  131.     myself::AddTimerEx( 2, 60000 * delay_between_sieges ); 
  132.     }  
  133.    
  134.     if( timer_id == 2)
  135.     {
  136.     myself.i_ai1 = 0;
  137.     }
  138.   }
  139.  
  140. }
  141.  
  142.  
  143. class 1 giran_siege_town_observer : giran_siege_event_master
  144. {
  145.  
  146.  
  147. handler:
  148.  
  149. EventHandler CREATED()
  150. {
  151. myself::CreateOnePrivateEx(control_tower ,"giran_siege_town_observer_n",0,0,81876,140107,-3560,0,0,0,0);
  152. myself::CreateOnePrivateEx(control_tower ,"giran_siege_town_observer_w",0,0,72254,146904,-3328,0,0,0,0);
  153. myself::CreateOnePrivateEx(control_tower ,"giran_siege_town_observer_s",0,0,78631,154764,-3488,0,0,0,0);
  154.  
  155. //archers at giran
  156. myself::CreateOnePrivateEx(attack_guard ,"giran_siege_town_attack_guard",0,0,83248,149261,-3400,0,0,0,0);
  157. //myself::CreateOnePrivateEx(attack_guard ,"giran_siege_town_attack_guard",0,0,83248,149155,-3400,0,0,0,0);
  158. //myself::CreateOnePrivateEx(attack_guard ,"giran_siege_town_attack_guard",0,0,83235,149045,-3400,0,0,0,0);
  159. //myself::CreateOnePrivateEx(attack_guard ,"giran_siege_town_attack_guard",0,0,83226,148934,-3400,0,0,0,0);
  160. myself::CreateOnePrivateEx(attack_guard ,"giran_siege_town_attack_guard",0,0,83218,148765,-3400,0,0,0,0);
  161. //myself::CreateOnePrivateEx(attack_guard ,"giran_siege_town_attack_guard",0,0,83220,148671,-3400,0,0,0,0);
  162. //myself::CreateOnePrivateEx(attack_guard ,"giran_siege_town_attack_guard",0,0,83223,148575,-3400,0,0,0,0);
  163. //myself::CreateOnePrivateEx(attack_guard ,"giran_siege_town_attack_guard",0,0,83230,148467,-3400,0,0,0,0);
  164. myself::CreateOnePrivateEx(attack_guard ,"giran_siege_town_attack_guard",0,0,83222,148319,-3400,0,0,0,0);
  165. //myself::CreateOnePrivateEx(attack_guard ,"giran_siege_town_attack_guard",0,0,83229,148241,-3400,0,0,0,0);
  166. //myself::CreateOnePrivateEx(attack_guard ,"giran_siege_town_attack_guard",0,0,83229,148152,-3400,0,0,0,0);
  167. //myself::CreateOnePrivateEx(attack_guard ,"giran_siege_town_attack_guard",0,0,83232,148061,-3400,0,0,0,0);
  168. myself::CreateOnePrivateEx(attack_guard ,"giran_siege_town_attack_guard",0,0,83226,147965,-3400,0,0,0,0);
  169.  
  170. //warriors at temple
  171. myself::CreateOnePrivateEx(attack_guard_2,"",0,0,87031,148425,-3400,32768,0,0,0);
  172. myself::CreateOnePrivateEx(attack_guard_2,"",0,0,87013,148630,-3400,32768,0,0,0);
  173. myself::CreateOnePrivateEx(attack_guard_2,"",0,0,87007,148828,-3400,32768,0,0,0);
  174.  
  175. }
  176.  
  177. EventHandler SEE_CREATURE(creature)
  178. {
  179. myself::Despawn();
  180. }
  181.  
  182. }
  183.  
  184.  
  185. class 1 giran_siege_town_observer_n : giran_siege_town_observer
  186. {
  187. parameter:
  188.  
  189. handler:
  190.  
  191. EventHandler CREATED()
  192. {
  193. myself::AddTimerEx(1, 3000);
  194. myself::AddTimerEx(2, 6000);
  195. myself::AddTimerEx(3, 9000);
  196. myself::AddTimerEx(4, 12000);
  197. myself::AddTimerEx(5, 15000);
  198.  
  199. myself::AddTimerEx(6, 195000);
  200. myself::AddTimerEx(7, 198000);
  201. myself::AddTimerEx(8, 201000);
  202. myself::AddTimerEx(9, 204000);
  203. myself::AddTimerEx(10, 207000);
  204.  
  205. myself::AddTimerEx(11, 507000);
  206. myself::AddTimerEx(12, 510000);
  207. myself::AddTimerEx(13, 513000);
  208. myself::AddTimerEx(14, 516000);
  209. myself::AddTimerEx(15, 519000);
  210.  
  211. myself::AddTimerEx(16, 819000);
  212. myself::AddTimerEx(17, 822000);
  213. myself::AddTimerEx(18, 825000);
  214. myself::AddTimerEx(19, 828000);
  215. myself::AddTimerEx(20, 831000);
  216.  
  217. myself::AddTimerEx(21, 1191000);
  218. myself::AddTimerEx(22, 1193000);
  219. myself::AddTimerEx(23, 1196000);
  220. myself::AddTimerEx(24, 1199000);
  221. myself::AddTimerEx(25, 1202000);
  222.  
  223. myself::AddTimerEx(26, 1682000);
  224. myself::AddTimerEx(27, 1685000);
  225. myself::AddTimerEx(28, 1688000);
  226. myself::AddTimerEx(29, 1691000);
  227. myself::AddTimerEx(30, 1694000);
  228.  
  229. myself::AddTimerEx(31, 25000);
  230.  
  231. //myself::CreateOnePrivateEx(control_tower,"",0,0,81876,140107,-3560,0,0,0,0); //Tower heart at N exit (just fashion npc)
  232.  
  233. myself::CreateOnePrivateEx(war_tent,"",0,0,82443,141177,-3640,0,0,0,0); //War tent
  234. myself::CreateOnePrivateEx(war_tent,"",0,0,82618,141177,-3648,0,0,0,0);
  235.  
  236. myself::CreateOnePrivateEx(broken_siege_hog,"",0,0,80299,140318,-3472,0,0,0,0);   //Broken hogs
  237. myself::CreateOnePrivateEx(broken_siege_hog,"",0,0,80595,140329,-3480,0,0,0,0);  
  238.  
  239. myself::CreateOnePrivateEx(broken_siege_golem,"",0,0,80934,140249,-3504,0,0,0,0);       // Broken golem
  240. myself::CreateOnePrivateEx(broken_siege_golem,"",0,0,81240,140152,-3528,0,0,0,0);
  241.  
  242. myself::CreateOnePrivateEx(tower,"",0,0,82963,141399,-3712,0,0,0,0); //Tower
  243. myself::CreateOnePrivateEx(wall,"",0,0,82948,141240,-3680,0,0,0,0); //Wall
  244. myself::CreateOnePrivateEx(tower,"",0,0,82959,141056,-3616,0,0,0,0);
  245. myself::CreateOnePrivateEx(wall,"",0,0,82960,140844,-3560,0,0,0,0);
  246. myself::CreateOnePrivateEx(tower,"",0,0,82977,140627,-3560,0,0,0,0);
  247. myself::CreateOnePrivateEx(wall,"",0,0,82940,140432,-3560,-4000,0,0,0);
  248. myself::CreateOnePrivateEx(tower,"",0,0,82903,140267,-3552,0,0,0,0);
  249. myself::CreateOnePrivateEx(wall,"",0,0,82889,140078,-3544,-3000,0,0,0);
  250. myself::CreateOnePrivateEx(wall,"",0,0,82853,139860,-3536,-3000,0,0,0);
  251. myself::CreateOnePrivateEx(tower,"",0,0,82843,139657,-3536,0,0,0,0);
  252. myself::CreateOnePrivateEx(wall,"",0,0,82711,139509,-3544,-8000,0,0,0);
  253. myself::CreateOnePrivateEx(tower,"",0,0,82604,139339,-3560,0,0,0,0);
  254. myself::CreateOnePrivateEx(wall,"",0,0,82481,139167,-3568,-8000,0,0,0);
  255. myself::CreateOnePrivateEx(tower,"",0,0,82335,139034,-3584,0,0,0,0);
  256. myself::CreateOnePrivateEx(wall,"",0,0,82232,138892,-3576,-8000,0,0,0);
  257. myself::CreateOnePrivateEx(tower,"",0,0,81832,141781,-3664,0,0,0,0);
  258. myself::CreateOnePrivateEx(wall,"",0,0,81995,141737,-3712,-18000,0,0,0);
  259. myself::CreateOnePrivateEx(tower,"",0,0,82167,141732,-3744,0,0,0,0);
  260. myself::CreateOnePrivateEx(tower,"",0,0,80904,142064,-3552,0,0,0,0);
  261. myself::CreateOnePrivateEx(wall,"",0,0,80698,142102,-3536,-19000,0,0,0);
  262. myself::CreateOnePrivateEx(tower,"",0,0,80495,142139,-3528,0,0,0,0);
  263. myself::CreateOnePrivateEx(tower,"",0,0,79860,142081,-3512,0,0,0,0);
  264. myself::CreateOnePrivateEx(wall,"",0,0,79659,142043,-3504,-15000,0,0,0);
  265. myself::CreateOnePrivateEx(wall,"",0,0,79432,141947,-3504,-15000,0,0,0);
  266. myself::CreateOnePrivateEx(tower,"",0,0,79239,141908,-3504,0,0,0,0);
  267.  
  268.  
  269. myself::CreateOnePrivateEx(siege_hog,"giran_siege_town_big_pig",0,0,81045,142073,-3568,16000,0,0,0); //Siege hogs with guards
  270. myself::CreateOnePrivateEx(siege_hog,"giran_siege_town_big_pig",0,0,81665,141854,-3662,16000,0,0,0);
  271.  
  272.  
  273. myself::CreateOnePrivateEx(siege_hog,"giran_siege_town_big_pig",0,0,84768,140998,-3520,16000,0,0,0); //Siege hogs
  274. //myself::CreateOnePrivateEx(siege_hog,"giran_siege_town_big_pig",0,0,84605,140599,-3560,16000,0,0,0);
  275. myself::CreateOnePrivateEx(siege_hog,"giran_siege_town_big_pig",0,0,84269,140281,-3544,16000,0,0,0);
  276. //myself::CreateOnePrivateEx(siege_hog,"giran_siege_town_big_pig",0,0,83917,140196,-3512,16000,0,0,0);
  277.  
  278. myself::CreateOnePrivateEx(siege_hog,"giran_siege_town_big_pig",0,0,83192,140846,-3552,16000,0,0,0);
  279. myself::CreateOnePrivateEx(siege_hog,"giran_siege_town_big_pig",0,0,83411,140262,-3544,16000,0,0,0);
  280. //myself::CreateOnePrivateEx(siege_hog,"giran_siege_town_big_pig",0,0,84796,141690,-3480,16000,0,0,0);
  281. //myself::CreateOnePrivateEx(siege_hog,"giran_siege_town_big_pig",0,0,84868,141379,-3488,16000,0,0,0);
  282.  
  283. myself::CreateOnePrivateEx(guard_pole,"giran_siege_town_guard_pole",0,0,81042,142317,-3552,16000,0,0,0); //Guards a  
  284. myself::CreateOnePrivateEx(guard_pole,"giran_siege_town_guard_pole",0,0,80972,142263,-3544,16000,0,0,0);
  285. myself::CreateOnePrivateEx(guard_pole,"giran_siege_town_guard_pole",0,0,81114,142237,-3552,16000,0,0,0);
  286. myself::CreateOnePrivateEx(guard_pole,"giran_siege_town_guard_pole",0,0,81152,142147,-3568,16000,0,0,0);
  287. myself::CreateOnePrivateEx(guard_pole,"giran_siege_town_guard_pole",0,0,80937,142174,-3552,16000,0,0,0);
  288. myself::CreateOnePrivateEx(guard_pole,"giran_siege_town_guard_pole",0,0,81674,142090,-3532,16000,0,0,0);
  289. myself::CreateOnePrivateEx(guard_pole,"giran_siege_town_guard_pole",0,0,81594,142031,-3600,16000,0,0,0);
  290. myself::CreateOnePrivateEx(guard_pole,"giran_siege_town_guard_pole",0,0,81761,141996,-3632,16000,0,0,0);
  291. myself::CreateOnePrivateEx(guard_pole,"giran_siege_town_guard_pole",0,0,81778,141926,-3632,16000,0,0,0);
  292. myself::CreateOnePrivateEx(guard_pole,"giran_siege_town_guard_pole",0,0,81566,141955,-3600,16000,0,0,0);
  293.  
  294. myself::CreateOnePrivateEx(guard_bow,"giran_siege_town_guard_bow",0,0,81672,142010,-3632,16000,0,0,0); //Guards b
  295. myself::CreateOnePrivateEx(guard_bow,"giran_siege_town_guard_bow",0,0,81723,141940,-3632,16000,0,0,0);
  296. myself::CreateOnePrivateEx(guard_bow,"giran_siege_town_guard_bow",0,0,81616,141943,-3600,16000,0,0,0);
  297. myself::CreateOnePrivateEx(guard_bow,"giran_siege_town_guard_bow",0,0,81053,142242,-3552,16000,0,0,0);
  298. myself::CreateOnePrivateEx(guard_bow,"giran_siege_town_guard_bow",0,0,81099,142187,-3560,16000,0,0,0);
  299. myself::CreateOnePrivateEx(guard_bow,"giran_siege_town_guard_bow",0,0,80995,142191,-3552,16000,0,0,0);
  300.  
  301. myself::CreateOnePrivateEx(terminator_stone,"giran_siege_town_terminator_stone",0,0,80776,140562,-3504,16000,0,0,0); // Mini raid boss
  302. }
  303.  
  304. EventHandler SEE_CREATURE(creature)
  305. {
  306.  
  307. }
  308.  
  309. EventHandler TIMER_FIRED_EX(timer_id , i0)
  310. {
  311. if( timer_id == 1 )
  312. {        
  313.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  314.         {
  315.         myself::CreateOnePrivateEx(attack_guard_3,"giran_siege_town_attack_1_walk_n",0,0,82224+(i0*100),139991+(i0*100),0,0,0,0,0);
  316.         }
  317. }
  318. super;
  319. if( timer_id == 2 )
  320. {
  321.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  322.         {
  323.         myself::CreateOnePrivateEx(attack_guard_3,"giran_siege_town_attack_1_agro_n",0,0,82224+(i0*100),139991+(i0*100),0,0,0,0,0);
  324.         }
  325.        
  326.  
  327. }
  328. super;
  329. if( timer_id == 3 )
  330. {
  331.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  332.         {
  333.         myself::CreateOnePrivateEx(attack_guard_3,"giran_siege_town_attack_1_worker_n",0,0,82224+(i0*100),139991+(i0*100),0,0,0,0,0);
  334.         }
  335. }
  336. super;
  337. if( timer_id == 4 )
  338. {
  339.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  340.         {
  341.         myself::CreateOnePrivateEx(attack_guard_3,"giran_siege_town_attack_1_walk_n",0,0,82224+(i0*100),139991+(i0*100),0,0,0,0,0);
  342.         }
  343. }
  344. super;
  345. if( timer_id == 5 )
  346. {
  347.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  348.         {
  349.         myself::CreateOnePrivateEx(attack_guard_3,"giran_siege_town_attack_1_walk_n",0,0,82224+(i0*100),139991+(i0*100),0,0,0,0,0);
  350.         }
  351. }
  352. super;
  353. if( timer_id == 6 )
  354. {
  355.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  356.         {
  357.         myself::CreateOnePrivateEx(attack_guard_3,"giran_siege_town_attack_1_walk_n",0,0,82224+(i0*100),139991+(i0*100),0,0,0,0,0);
  358.         }
  359. }
  360. super;
  361. if( timer_id == 7 )
  362. {
  363.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  364.         {
  365.         myself::CreateOnePrivateEx(attack_guard_3,"giran_siege_town_attack_1_agro_n",0,0,82224+(i0*100),139991+(i0*100),0,0,0,0,0);
  366.         }
  367. }
  368. super;
  369. if( timer_id == 8 )
  370. {
  371.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  372.         {
  373.         myself::CreateOnePrivateEx(attack_guard_3,"giran_siege_town_attack_1_worker_n",0,0,82154+(i0*100),140151+(i0*100),0,0,0,0,0);
  374.         }
  375. }
  376. super;
  377. if( timer_id == 9 )
  378. {
  379.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  380.         {
  381.         myself::CreateOnePrivateEx(attack_guard_3,"giran_siege_town_attack_1_walk_n",0,0,82224+(i0*100),139991+(i0*100),0,0,0,0,0);
  382.         }
  383. }
  384. super;
  385. if( timer_id == 10 )
  386. {
  387.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  388.         {
  389.         myself::CreateOnePrivateEx(attack_guard_3,"giran_siege_town_attack_1_walk_n",0,0,82224+(i0*100),139991+(i0*100),0,0,0,0,0);
  390.         }
  391. }
  392. super;
  393. if( timer_id == 11 )
  394. {
  395.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  396.         {
  397.         myself::CreateOnePrivateEx(attack_guard_4,"giran_siege_town_attack_1_walk_n",0,0,82224+(i0*100),139991+(i0*100),0,0,0,0,0);
  398.         }
  399. }
  400. super;
  401. if( timer_id == 12 )
  402. {
  403.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  404.         {
  405.         myself::CreateOnePrivateEx(attack_guard_4,"giran_siege_town_attack_1_agro_n",0,0,82154+(i0*100),140151+(i0*100),0,0,0,0,0);
  406.         }
  407. }
  408. super;
  409. if( timer_id == 13 )
  410. {
  411.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  412.         {
  413.         myself::CreateOnePrivateEx(attack_guard_4,"giran_siege_town_attack_1_worker_n",0,0,82224+(i0*100),139991+(i0*100),0,0,0,0,0);
  414.         }
  415. }
  416. super;
  417. if( timer_id == 14 )
  418. {
  419.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  420.         {
  421.         myself::CreateOnePrivateEx(attack_guard_4,"giran_siege_town_attack_1_walk_n",0,0,82224+(i0*100),139991+(i0*100),0,0,0,0,0);
  422.         }
  423.  
  424. }
  425. super;
  426. if( timer_id == 15 )
  427. {
  428.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  429.         {
  430.         myself::CreateOnePrivateEx(attack_guard_4,"giran_siege_town_attack_1_walk_n",0,0,82224+(i0*100),139991+(i0*100),0,0,0,0,0);
  431.         }
  432. }
  433. super;
  434. if( timer_id == 16 )
  435. {
  436.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  437.         {
  438.         myself::CreateOnePrivateEx(attack_guard_5,"giran_siege_town_attack_1_walk_n",0,0,82224+(i0*100),139991+(i0*100),0,0,0,0,0);
  439.         }
  440. }
  441. super;
  442. if( timer_id == 17 )
  443. {
  444.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  445.         {
  446.         myself::CreateOnePrivateEx(attack_guard_5,"giran_siege_town_attack_1_agro_n",0,0,82224+(i0*100),139991+(i0*100),0,0,0,0,0);
  447.         }
  448. }
  449. super;
  450. if( timer_id == 18 )
  451. {
  452.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  453.         {
  454.         myself::CreateOnePrivateEx(attack_guard_5,"giran_siege_town_attack_1_worker_n",0,0,82224+(i0*100),139991+(i0*100),0,0,0,0,0);
  455.         }
  456. }
  457. super;
  458. if( timer_id == 19 )
  459. {
  460.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  461.         {
  462.         myself::CreateOnePrivateEx(attack_guard_5,"giran_siege_town_attack_1_walk_n",0,0,82224+(i0*100),139991+(i0*100),0,0,0,0,0);
  463.         }
  464. }
  465. super;
  466. if( timer_id == 20 )
  467. {
  468.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  469.         {
  470.         myself::CreateOnePrivateEx(attack_guard_5,"giran_siege_town_attack_1_walk_n",0,0,82224+(i0*100),139991+(i0*100),0,0,0,0,0);
  471.         }
  472. }
  473. super;
  474. if( timer_id == 21 )
  475. {
  476.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  477.         {
  478.         myself::CreateOnePrivateEx(attack_guard_6,"giran_siege_town_attack_1_walk_n",0,0,82224+(i0*100),139991+(i0*100),0,0,0,0,0);
  479.         }
  480. }
  481. super;
  482. if( timer_id == 22 )
  483. {
  484.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  485.         {
  486.         myself::CreateOnePrivateEx(attack_guard_6,"giran_siege_town_attack_1_agro_n",0,0,82224+(i0*100),139991+(i0*100),0,0,0,0,0);    
  487.         }
  488. }
  489. super;
  490. if( timer_id == 23 )
  491. {
  492.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  493.         {
  494.          myself::CreateOnePrivateEx(attack_guard_6,"giran_siege_town_attack_1_worker_n",0,0,82224+(i0*100),139991+(i0*100),0,0,0,0,0);
  495.         }
  496. }
  497. super;
  498. if( timer_id == 24 )
  499. {
  500.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  501.         {
  502.         myself::CreateOnePrivateEx(attack_guard_6,"giran_siege_town_attack_1_worker_n",0,0,82224+(i0*100),139991+(i0*100),0,0,0,0,0);
  503.         }
  504. }
  505. super;
  506. if( timer_id == 25 )
  507. {
  508.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  509.         {
  510.         myself::CreateOnePrivateEx(attack_guard_6,"giran_siege_town_attack_1_walk_n",0,0,82224+(i0*100),139991+(i0*100),0,0,0,0,0);
  511.         }
  512. }
  513. super;
  514. if( timer_id == 26 )
  515. {
  516.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  517.         {
  518.         myself::CreateOnePrivateEx(attack_guard_7,"giran_siege_town_attack_1_walk_n",0,0,82224+(i0*100),139991+(i0*100),0,0,0,0,0);
  519.         }
  520. }
  521. super;
  522. if( timer_id == 27 )
  523. {
  524.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  525.         {
  526.         myself::CreateOnePrivateEx(attack_guard_7,"giran_siege_town_attack_1_agro_n",0,0,82224+(i0*100),139991+(i0*100),0,0,0,0,0);
  527.         }
  528. }
  529. super;
  530. if( timer_id == 28 )
  531. {
  532.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  533.         {
  534.         myself::CreateOnePrivateEx(attack_guard_7,"giran_siege_town_attack_1_worker_n",0,0,82224+(i0*100),139991+(i0*100),0,0,0,0,0);
  535.         }
  536. }
  537. super;
  538. if( timer_id == 29 )
  539. {
  540.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  541.         {
  542.         myself::CreateOnePrivateEx(attack_guard_7,"giran_siege_town_attack_1_walk_n",0,0,82224+(i0*100),139991+(i0*100),0,0,0,0,0);
  543.         }
  544. }
  545. super;
  546. if( timer_id == 30 )
  547. {
  548.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  549.         {
  550.         myself::CreateOnePrivateEx(attack_guard_7,"giran_siege_town_attack_1_walk_n",0,0,82224+(i0*100),139991+(i0*100),0,0,0,0,0);    
  551.         }
  552. }
  553. if( timer_id == 31 )
  554. {
  555. myself::CreateOnePrivateEx(town_attack_stone_01,"giran_siege_town_attack_bb_stone",0,0,81417,140749,-3560,0,0,0,0);   //Final boss
  556. }
  557. super;
  558. }
  559. }
  560.  
  561.  
  562. class 1 giran_siege_town_observer_s : giran_siege_town_observer
  563. {
  564. parameter:
  565.  
  566. handler:
  567.  
  568. EventHandler CREATED()
  569. {
  570. myself::AddTimerEx(1, 3000);
  571. myself::AddTimerEx(2, 6000);
  572. myself::AddTimerEx(3, 9000);
  573. myself::AddTimerEx(4, 12000);
  574. myself::AddTimerEx(5, 15000);
  575.  
  576. myself::AddTimerEx(6, 195000);
  577. myself::AddTimerEx(7, 198000);
  578. myself::AddTimerEx(8, 201000);
  579. myself::AddTimerEx(9, 204000);
  580. myself::AddTimerEx(10, 207000);
  581.  
  582. myself::AddTimerEx(11, 507000);
  583. myself::AddTimerEx(12, 510000);
  584. myself::AddTimerEx(13, 513000);
  585. myself::AddTimerEx(14, 516000);
  586. myself::AddTimerEx(15, 519000);
  587.  
  588. myself::AddTimerEx(16, 819000);
  589. myself::AddTimerEx(17, 822000);
  590. myself::AddTimerEx(18, 825000);
  591. myself::AddTimerEx(19, 828000);
  592. myself::AddTimerEx(20, 831000);
  593.  
  594. myself::AddTimerEx(21, 1191000);
  595. myself::AddTimerEx(22, 1193000);
  596. myself::AddTimerEx(23, 1196000);
  597. myself::AddTimerEx(24, 1199000);
  598. myself::AddTimerEx(25, 1202000);
  599.  
  600. myself::AddTimerEx(26, 1682000);
  601. myself::AddTimerEx(27, 1685000);
  602. myself::AddTimerEx(28, 1688000);
  603. myself::AddTimerEx(29, 1691000);
  604. myself::AddTimerEx(30, 1694000);
  605.  
  606. //myself::CreateOnePrivateEx(control_tower,"",0,0,78631,154764,-3488,0,0,0,0); //Π‘Π°ΡˆΠ½Ρ Β«Π‘Π΅Ρ€Π΄Ρ†Π΅Β» Ρƒ S-Π²Ρ‹Ρ…ΠΎΠ΄Π°
  607. myself::CreateOnePrivateEx(war_tent,"",0,0,78571,154185,-3496,0,0,0,0); //ΠŸΠ°Π»Π°Ρ‚ΠΊΠ°
  608. myself::CreateOnePrivateEx(war_tent,"",0,0,78576,154038,-3504,0,0,0,0);
  609. myself::CreateOnePrivateEx(war_tent,"",0,0,78583,153915,-3512,0,0,0,0);
  610.  
  611. myself::CreateOnePrivateEx(broken_siege_hog,"",0,0,80046,155659,-3344,0,0,0,0); //ΠžΡΠ°Π΄Π½Ρ‹ΠΉ Π³ΠΎΠ»Π΅ΠΌ
  612. myself::CreateOnePrivateEx(broken_siege_hog,"",0,0,79888,155664,-3360,0,0,0,0);
  613. myself::CreateOnePrivateEx(broken_siege_hog,"",0,0,79670,155652,-3392,0,0,0,0);
  614. myself::CreateOnePrivateEx(broken_siege_golem,"",0,0,79468,155598,-3408,0,0,0,0); //ΠžΡΠ°Π΄Π½Ρ‹ΠΉ хряк
  615. myself::CreateOnePrivateEx(broken_siege_golem,"",0,0,79230,155416,-3424,0,0,0,0);
  616.  
  617. myself::CreateOnePrivateEx(tower,"",0,0,80920,154808,-3432,0,0,0,0); //Π‘Π°ΡˆΠ½Ρ
  618. myself::CreateOnePrivateEx(wall,"",0,0,81001,154958,-3448,-10000,0,0,0); //Π‘Ρ‚Π΅Π½Π°
  619. myself::CreateOnePrivateEx(wall,"",0,0,81169,155175,-3392,-10000,0,0,0); //Π‘Ρ‚Π΅Π½Π°
  620. myself::CreateOnePrivateEx(tower,"",0,0,81296,155328,-3344,0,0,0,0); //Π‘Π°ΡˆΠ½Ρ
  621. myself::CreateOnePrivateEx(wall,"",0,0,81313,155537,-3336,-4000,0,0,0); //Π‘Ρ‚Π΅Π½Π°
  622. myself::CreateOnePrivateEx(wall,"",0,0,81364,155801,-3328,-4000,0,0,0); //Π‘Ρ‚Π΅Π½Π°
  623. myself::CreateOnePrivateEx(tower,"",0,0,81361,155998,-3320,0,0,0,0); //Π‘Π°ΡˆΠ½Ρ
  624. myself::CreateOnePrivateEx(tower,"",0,0,79877,153929,-3496,0,0,0,0); //Π‘Π°ΡˆΠ½Ρ
  625. myself::CreateOnePrivateEx(wall,"",0,0,79702,153835,-3512,-14000,0,0,0); //Π‘Ρ‚Π΅Π½Π°
  626. myself::CreateOnePrivateEx(wall,"",0,0,79446,153725,-3512,-14000,0,0,0); //Π‘Ρ‚Π΅Π½Π°
  627. myself::CreateOnePrivateEx(tower,"",0,0,79260,153635,-3512,0,0,0,0); //Π‘Π°ΡˆΠ½Ρ
  628. myself::CreateOnePrivateEx(wall,"",0,0,79061,153586,-3520,-18000,0,0,0); //Π‘Ρ‚Π΅Π½Π°
  629. myself::CreateOnePrivateEx(tower,"",0,0,78933,153615,-3512,0,0,0,0); //Π‘Π°ΡˆΠ½Ρ
  630. myself::CreateOnePrivateEx(wall,"",0,0,78770,153616,-3520,-18000,0,0,0); //Π‘Ρ‚Π΅Π½Π°
  631. myself::CreateOnePrivateEx(tower,"",0,0,78574,153612,-3528,0,0,0,0); //Π‘Π°ΡˆΠ½Ρ
  632. myself::CreateOnePrivateEx(wall,"",0,0,78393,153701,-3536,-22000,0,0,0); //Π‘Ρ‚Π΅Π½Π°
  633. myself::CreateOnePrivateEx(wall,"",0,0,78165,153834,-3520,-22000,0,0,0); //Π‘Ρ‚Π΅Π½Π°
  634. myself::CreateOnePrivateEx(tower,"",0,0,77987,153862,-3520,0,0,0,0); //Π‘Π°ΡˆΠ½Ρ
  635.  
  636. myself::CreateOnePrivateEx(siege_hog,"giran_siege_town_big_pig",0,0,80823,154651,-3440,-16000,0,0,0); //ΠžΡΠ°Π΄Π½Ρ‹ΠΉ хряк
  637. myself::CreateOnePrivateEx(siege_hog,"giran_siege_town_big_pig",0,0,80085,154016,-3488,-16000,0,0,0);
  638. myself::CreateOnePrivateEx(guard_pole,"giran_siege_town_guard_pole",0,0,80917,154442,-3480,-16000,0,0,0); //Π“Π²Π°Ρ€Π΄Ρ‹
  639. myself::CreateOnePrivateEx(guard_pole,"giran_siege_town_guard_pole",0,0,80792,154478,-3472,-16000,0,0,0);
  640. myself::CreateOnePrivateEx(guard_pole,"giran_siege_town_guard_pole",0,0,80697,154544,-3456,-16000,0,0,0);
  641. myself::CreateOnePrivateEx(guard_pole,"giran_siege_town_guard_pole",0,0,80979,154561,-3464,-16000,0,0,0);
  642. myself::CreateOnePrivateEx(guard_pole,"giran_siege_town_guard_pole",0,0,80981,154694,-3464,-16000,0,0,0);
  643. myself::CreateOnePrivateEx(guard_pole,"giran_siege_town_guard_pole",0,0,80277,153862,-3496,-16000,0,0,0);
  644. myself::CreateOnePrivateEx(guard_pole,"giran_siege_town_guard_pole",0,0,80262,153984,-3496,-16000,0,0,0);
  645. myself::CreateOnePrivateEx(guard_pole,"giran_siege_town_guard_pole",0,0,80229,154106,-3488,-16000,0,0,0);
  646. myself::CreateOnePrivateEx(guard_pole,"giran_siege_town_guard_pole",0,0,80151,153847,-3496,-16000,0,0,0);
  647. myself::CreateOnePrivateEx(guard_pole,"giran_siege_town_guard_pole",0,0,80032,153857,-3496,-16000,0,0,0);
  648. myself::CreateOnePrivateEx(guard_bow,"giran_siege_town_guard_bow",0,0,80891,154508,-3456,-16000,0,0,0);
  649. myself::CreateOnePrivateEx(guard_bow,"giran_siege_town_guard_bow",0,0,80917,154581,-3464,-16000,0,0,0);
  650. myself::CreateOnePrivateEx(guard_bow,"giran_siege_town_guard_bow",0,0,80788,154538,-3456,-16000,0,0,0);
  651. myself::CreateOnePrivateEx(guard_bow,"giran_siege_town_guard_bow",0,0,80223,153914,-3496,-16000,0,0,0);
  652. myself::CreateOnePrivateEx(guard_bow,"giran_siege_town_guard_bow",0,0,80110,153906,-3496,-16000,0,0,0);
  653. myself::CreateOnePrivateEx(guard_bow,"giran_siege_town_guard_bow",0,0,80209,154001,-3488,-16000,0,0,0);
  654.  
  655. myself::CreateOnePrivateEx(terminator_stone,"giran_siege_town_terminator_stone",0,0,79752,155335,-3392,-16000,0,0,0); //ΠžΡΠ°Π΄Π½Ρ‹ΠΉ Π³ΠΎΠ»Π΅ΠΌ
  656. }
  657.  
  658. EventHandler SEE_CREATURE(creature)
  659. {
  660.  
  661. }
  662.  
  663. EventHandler TIMER_FIRED_EX(timer_id ,i0)
  664. {
  665. if( timer_id == 1 )
  666. {
  667.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  668.         {
  669.         myself::CreateOnePrivateEx(attack_guard_3,"giran_siege_town_attack_1_walk_s",0,0,78341+(i0*100),155045+(i0*100),0,0,0,0,0);
  670.         }
  671. }
  672. super;
  673. if( timer_id == 2 )
  674. {
  675.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  676.         {
  677.         myself::CreateOnePrivateEx(attack_guard_3,"giran_siege_town_attack_1_agro_s",0,0,78341+(i0*100),155045+(i0*100),0,0,0,0,0);
  678.         }
  679. }
  680. super;
  681. if( timer_id == 3 )
  682. {
  683.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  684.         {
  685.         myself::CreateOnePrivateEx(attack_guard_3,"giran_siege_town_attack_1_worker_s",0,0,78341+(i0*100),155045+(i0*100),0,0,0,0,0);
  686.         }
  687. }
  688. super;
  689. if( timer_id == 4 )
  690. {
  691.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  692.         {
  693.         myself::CreateOnePrivateEx(attack_guard_3,"giran_siege_town_attack_1_walk_s",0,0,78341+(i0*100),155045+(i0*100),0,0,0,0,0);
  694.         }
  695. }
  696. super;
  697. if( timer_id == 5 )
  698. {
  699.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  700.         {
  701.         myself::CreateOnePrivateEx(attack_guard_3,"giran_siege_town_attack_1_walk_s",0,0,78341+(i0*100),155045+(i0*100),0,0,0,0,0);
  702.         }
  703. }
  704. super;
  705. if( timer_id == 6 )
  706. {
  707.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  708.         {
  709.         myself::CreateOnePrivateEx(attack_guard_3,"giran_siege_town_attack_1_walk_s",0,0,78341+(i0*100),155045+(i0*100),0,0,0,0,0);
  710.         }
  711. }
  712. super;
  713. if( timer_id == 7 )
  714. {
  715.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  716.         {
  717.         myself::CreateOnePrivateEx(attack_guard_3,"giran_siege_town_attack_1_agro_s",0,0,78341+(i0*100),155045+(i0*100),0,0,0,0,0);
  718.         }
  719. }
  720. super;
  721. if( timer_id == 8 )
  722. {
  723.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  724.         {
  725.         myself::CreateOnePrivateEx(attack_guard_3,"giran_siege_town_attack_1_worker_s",0,0,78341+(i0*100),155045+(i0*100),0,0,0,0,0);
  726.         }
  727. }
  728. super;
  729. if( timer_id == 9 )
  730. {
  731.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  732.         {
  733.         myself::CreateOnePrivateEx(attack_guard_3,"giran_siege_town_attack_1_walk_s",0,0,78341+(i0*100),155045+(i0*100),0,0,0,0,0);
  734.         }
  735. }
  736. super;
  737. if( timer_id == 10 )
  738. {
  739.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  740.         {
  741.         myself::CreateOnePrivateEx(attack_guard_3,"giran_siege_town_attack_1_walk_s",0,0,78341+(i0*100),155045+(i0*100),0,0,0,0,0);
  742.         }
  743. }
  744. super;
  745. if( timer_id == 11 )
  746. {
  747.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  748.         {
  749.         myself::CreateOnePrivateEx(attack_guard_4,"giran_siege_town_attack_1_walk_s",0,0,78341+(i0*100),155045+(i0*100),0,0,0,0,0);
  750.         }
  751. }
  752. super;
  753. if( timer_id == 12 )
  754. {
  755.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  756.         {
  757.         myself::CreateOnePrivateEx(attack_guard_4,"giran_siege_town_attack_1_agro_s",0,0,78341+(i0*100),155045+(i0*100),0,0,0,0,0);
  758.         }
  759. }
  760. super;
  761. if( timer_id == 13 )
  762. {
  763.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  764.         {
  765.         myself::CreateOnePrivateEx(attack_guard_4,"giran_siege_town_attack_1_worker_s",0,0,78341+(i0*100),155045+(i0*100),0,0,0,0,0);
  766.         }
  767. }
  768. super;
  769. if( timer_id == 14 )
  770. {
  771.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  772.         {
  773.         myself::CreateOnePrivateEx(attack_guard_4,"giran_siege_town_attack_1_walk_s",0,0,78341+(i0*100),155045+(i0*100),0,0,0,0,0);
  774.         }
  775. }
  776. super;
  777. if( timer_id == 15 )
  778. {
  779.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  780.         {
  781.         myself::CreateOnePrivateEx(attack_guard_4,"giran_siege_town_attack_1_walk_s",0,0,78341+(i0*100),155045+(i0*100),0,0,0,0,0);
  782.         }
  783. }
  784. super;
  785. if( timer_id == 16 )
  786. {
  787.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  788.         {
  789.         myself::CreateOnePrivateEx(attack_guard_5,"giran_siege_town_attack_1_walk_s",0,0,78341+(i0*100),155045+(i0*100),0,0,0,0,0);
  790.         }
  791. }
  792. super;
  793. if( timer_id == 17 )
  794. {
  795.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  796.         {
  797.         myself::CreateOnePrivateEx(attack_guard_5,"giran_siege_town_attack_1_agro_s",0,0,78341+(i0*100),155045+(i0*100),0,0,0,0,0);
  798.         }
  799. }
  800. super;
  801. if( timer_id == 18 )
  802. {
  803.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  804.         {
  805.         myself::CreateOnePrivateEx(attack_guard_5,"giran_siege_town_attack_1_worker_s",0,0,78341+(i0*100),155045+(i0*100),0,0,0,0,0);
  806.         }
  807. }
  808. super;
  809. if( timer_id == 19 )
  810. {
  811.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  812.         {
  813.         myself::CreateOnePrivateEx(attack_guard_5,"giran_siege_town_attack_1_walk_s",0,0,78341+(i0*100),155045+(i0*100),0,0,0,0,0);
  814.         }
  815. }
  816. super;
  817. if( timer_id == 20 )
  818. {
  819.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  820.         {
  821.         myself::CreateOnePrivateEx(attack_guard_5,"giran_siege_town_attack_1_walk_s",0,0,78341+(i0*100),155045+(i0*100),0,0,0,0,0);
  822.         }
  823. }
  824. super;
  825. if( timer_id == 21 )
  826. {
  827.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  828.         {
  829.         myself::CreateOnePrivateEx(attack_guard_6,"giran_siege_town_attack_1_walk_s",0,0,78341+(i0*100),155045+(i0*100),0,0,0,0,0);
  830.         }
  831. }
  832. super;
  833. if( timer_id == 22 )
  834. {
  835.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  836.         {
  837.         myself::CreateOnePrivateEx(attack_guard_6,"giran_siege_town_attack_1_agro_s",0,0,78341+(i0*100),155045+(i0*100),0,0,0,0,0);
  838.         }
  839. }
  840. super;
  841. if( timer_id == 23 )
  842. {
  843.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  844.         {
  845.         myself::CreateOnePrivateEx(attack_guard_6,"giran_siege_town_attack_1_worker_s",0,0,78341+(i0*100),155045+(i0*100),0,0,0,0,0);
  846.         }
  847. }
  848. super;
  849. if( timer_id == 24 )
  850. {
  851.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  852.         {
  853.         myself::CreateOnePrivateEx(attack_guard_6,"giran_siege_town_attack_1_walk_s",0,0,78341+(i0*100),155045+(i0*100),0,0,0,0,0);
  854.         }
  855. }
  856. super;
  857. if( timer_id == 25 )
  858. {
  859.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  860.         {
  861.         myself::CreateOnePrivateEx(attack_guard_6,"giran_siege_town_attack_1_walk_s",0,0,78341+(i0*100),155045+(i0*100),0,0,0,0,0);
  862.         }
  863. }
  864. super;
  865. if( timer_id == 26 )
  866. {
  867.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  868.         {
  869.         myself::CreateOnePrivateEx(attack_guard_7,"giran_siege_town_attack_1_walk_s",0,0,78341+(i0*100),155045+(i0*100),0,0,0,0,0);
  870.         }
  871. }
  872. super;
  873. if( timer_id == 27 )
  874. {
  875.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  876.         {
  877.         myself::CreateOnePrivateEx(attack_guard_7,"giran_siege_town_attack_1_agro_s",0,0,78341+(i0*100),155045+(i0*100),0,0,0,0,0);
  878.         }
  879. }
  880. super;
  881. if( timer_id == 28 )
  882. {
  883.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  884.         {
  885.         myself::CreateOnePrivateEx(attack_guard_7,"giran_siege_town_attack_1_worker_s",0,0,78341+(i0*100),155045+(i0*100),0,0,0,0,0);
  886.         }
  887. }
  888. super;
  889. if( timer_id == 29 )
  890. {
  891.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  892.         {
  893.         myself::CreateOnePrivateEx(attack_guard_7,"giran_siege_town_attack_1_walk_s",0,0,78341+(i0*100),155045+(i0*100),0,0,0,0,0);
  894.         }
  895. }
  896. super;
  897. if( timer_id == 30 )
  898. {
  899.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  900.         {
  901.         myself::CreateOnePrivateEx(attack_guard_7,"giran_siege_town_attack_1_walk_s",0,0,78341+(i0*100),155045+(i0*100),0,0,0,0,0);
  902.         }
  903. }
  904. super;
  905. }
  906. }
  907.  
  908. class 1 giran_siege_town_observer_w : giran_siege_town_observer
  909. {
  910. parameter:
  911.  
  912. handler:
  913.  
  914. EventHandler CREATED()
  915. {
  916. myself::AddTimerEx(1, 3000);
  917. myself::AddTimerEx(2, 6000);
  918. myself::AddTimerEx(3, 9000);
  919. myself::AddTimerEx(4, 12000);
  920. myself::AddTimerEx(5, 15000);
  921.  
  922. myself::AddTimerEx(6, 195000);
  923. myself::AddTimerEx(7, 198000);
  924. myself::AddTimerEx(8, 201000);
  925. myself::AddTimerEx(9, 204000);
  926. myself::AddTimerEx(10, 207000);
  927.  
  928. myself::AddTimerEx(11, 507000);
  929. myself::AddTimerEx(12, 510000);
  930. myself::AddTimerEx(13, 513000);
  931. myself::AddTimerEx(14, 516000);
  932. myself::AddTimerEx(15, 519000);
  933.  
  934. myself::AddTimerEx(16, 819000);
  935. myself::AddTimerEx(17, 822000);
  936. myself::AddTimerEx(18, 825000);
  937. myself::AddTimerEx(19, 828000);
  938. myself::AddTimerEx(20, 831000);
  939.  
  940. myself::AddTimerEx(21, 1191000);
  941. myself::AddTimerEx(22, 1193000);
  942. myself::AddTimerEx(23, 1196000);
  943. myself::AddTimerEx(24, 1199000);
  944. myself::AddTimerEx(25, 1202000);
  945.  
  946. myself::AddTimerEx(26, 1682000);
  947. myself::AddTimerEx(27, 1685000);
  948. myself::AddTimerEx(28, 1688000);
  949. myself::AddTimerEx(29, 1691000);
  950. myself::AddTimerEx(30, 1694000);
  951.  
  952. //myself::CreateOnePrivateEx(control_tower,"",0,0,72254,146904,-3328,0,0,0,0); //Π‘Π°ΡˆΠ½Ρ Β«Π‘Π΅Ρ€Π΄Ρ†Π΅Β» Ρƒ W-Π²Ρ‹Ρ…ΠΎΠ΄Π°
  953. myself::CreateOnePrivateEx(large_war_tent,"",0,0,74038,147905,-3408,0,0,0,0); //Π‘ΠΎΠ»ΡˆΠ°Ρ ΠΏΠ°Π»Π°Ρ‚ΠΊΠ°
  954. myself::CreateOnePrivateEx(war_tent,"",0,0,72481,146115,-3112,0,0,0,0); //ΠŸΠ°Π»Π°Ρ‚ΠΊΠ°
  955. myself::CreateOnePrivateEx(war_tent,"",0,0,72261,146170,-3088,0,0,0,0);
  956. myself::CreateOnePrivateEx(war_tent,"",0,0,72060,146117,-3096,0,0,0,0);
  957.  
  958. myself::CreateOnePrivateEx(broken_siege_hog,"",0,0,72683,148298,-3312,0,0,0,0); //ΠžΡΠ°Π΄Π½Ρ‹ΠΉ Π³ΠΎΠ»Π΅ΠΌ
  959. myself::CreateOnePrivateEx(broken_siege_hog,"",0,0,73422,146435,-3280,0,0,0,0);
  960. myself::CreateOnePrivateEx(broken_siege_hog,"",0,0,73517,146103,-3272,0,0,0,0);
  961. myself::CreateOnePrivateEx(broken_siege_golem,"",0,0,72468,148398,-3304,0,0,0,0); //ΠžΡΠ°Π΄Π½Ρ‹ΠΉ хряк
  962. myself::CreateOnePrivateEx(broken_siege_golem,"",0,0,72282,148010,-3288,0,0,0,0);
  963.  
  964. myself::CreateOnePrivateEx(tower,"",0,0,70691,148767,-2200,0,0,0,0); //Π‘Π°ΡˆΠ½Ρ
  965. myself::CreateOnePrivateEx(wall,"",0,0,70651,148585,-2312,0,0,0,0); //Π‘Ρ‚Π΅Π½Π°
  966. myself::CreateOnePrivateEx(wall,"",0,0,70614,148354,-2432,0,0,0,0); //Π‘Ρ‚Π΅Π½Π°
  967. myself::CreateOnePrivateEx(tower,"",0,0,70559,148170,-2552,0,0,0,0); //Π‘Π°ΡˆΠ½Ρ
  968. myself::CreateOnePrivateEx(wall,"",0,0,70571,148012,-2608,0,0,0,0); //Π‘Ρ‚Π΅Π½Π°
  969. myself::CreateOnePrivateEx(wall,"",0,0,70553,147748,-2592,0,0,0,0); //Π‘Ρ‚Π΅Π½Π°
  970. myself::CreateOnePrivateEx(wall,"",0,0,70580,147489,-2480,0,0,0,0); //Π‘Ρ‚Π΅Π½Π°
  971. myself::CreateOnePrivateEx(wall,"",0,0,70570,147270,-2432,0,0,0,0); //Π‘Ρ‚Π΅Π½Π°
  972. myself::CreateOnePrivateEx(tower,"",0,0,70551,147074,-2400,0,0,0,0); //Π‘Π°ΡˆΠ½Ρ
  973. myself::CreateOnePrivateEx(wall,"",0,0,70405,146902,-2368,0,0,0,0); //Π‘Ρ‚Π΅Π½Π°
  974. myself::CreateOnePrivateEx(wall,"",0,0,70387,146684,-2352,0,0,0,0); //Π‘Ρ‚Π΅Π½Π°
  975. myself::CreateOnePrivateEx(tower,"",0,0,70297,146494,-2384,0,0,0,0); //Π‘Π°ΡˆΠ½Ρ
  976. myself::CreateOnePrivateEx(wall,"",0,0,70359,146322,-2488,0,0,0,0); //Π‘Ρ‚Π΅Π½Π°
  977. myself::CreateOnePrivateEx(wall,"",0,0,70427,146119,-2632,0,0,0,0); //Π‘Ρ‚Π΅Π½Π°
  978. myself::CreateOnePrivateEx(wall,"",0,0,70504,145905,-2760,0,0,0,0); //Π‘Ρ‚Π΅Π½Π°
  979. myself::CreateOnePrivateEx(wall,"",0,0,70534,145660,-2904,0,0,0,0); //Π‘Ρ‚Π΅Π½Π°
  980. myself::CreateOnePrivateEx(tower,"",0,0,70613,145488,-2976,0,0,0,0); //Π‘Π°ΡˆΠ½Ρ
  981. myself::CreateOnePrivateEx(wall,"",0,0,70802,145441,-2984,-20000,0,0,0); //Π‘Ρ‚Π΅Π½Π°
  982. myself::CreateOnePrivateEx(wall,"",0,0,71037,145384,-3024,-20000,0,0,0); //Π‘Ρ‚Π΅Π½Π°
  983. myself::CreateOnePrivateEx(wall,"",0,0,71243,145335,-3040,-20000,0,0,0); //Π‘Ρ‚Π΅Π½Π°
  984. myself::CreateOnePrivateEx(tower,"",0,0,71455,145286,-3088,0,0,0,0); //Π‘Π°ΡˆΠ½Ρ
  985. myself::CreateOnePrivateEx(tower,"",0,0,74195,148647,-3263,0,0,0,0); //Π‘Π°ΡˆΠ½Ρ
  986. myself::CreateOnePrivateEx(wall,"",0,0,74398,148589,-3304,-23000,0,0,0); //Π‘Ρ‚Π΅Π½Π°
  987. myself::CreateOnePrivateEx(wall,"",0,0,74653,148504,-3336,-23000,0,0,0); //Π‘Ρ‚Π΅Π½Π°
  988. myself::CreateOnePrivateEx(wall,"",0,0,74875,148365,-3368,-23000,0,0,0); //Π‘Ρ‚Π΅Π½Π°
  989. myself::CreateOnePrivateEx(tower,"",0,0,75051,148299,-3416,0,0,0,0); //Π‘Π°ΡˆΠ½Ρ
  990. myself::CreateOnePrivateEx(tower,"",0,0,74827,147059,-3528,0,0,0,0); //Π‘Π°ΡˆΠ½Ρ
  991. myself::CreateOnePrivateEx(wall,"",0,0,74759,146879,-3528,-5000,0,0,0); //Π‘Ρ‚Π΅Π½Π°
  992. myself::CreateOnePrivateEx(wall,"",0,0,74681,146646,-3544,-5000,0,0,0); //Π‘Ρ‚Π΅Π½Π°
  993. myself::CreateOnePrivateEx(tower,"",0,0,74576,146472,-3536,0,0,0,0); //Π‘Π°ΡˆΠ½Ρ
  994.  
  995. myself::CreateOnePrivateEx(siege_hog,"giran_siege_town_big_pig",0,0,75186,148138,-3448,0,0,0,0); //ΠžΡΠ°Π΄Π½Ρ‹ΠΉ хряк
  996. myself::CreateOnePrivateEx(siege_hog,"giran_siege_town_big_pig",0,0,74914,147217,-3520,0,0,0,0);
  997.  
  998. myself::CreateOnePrivateEx(guard_pole,"giran_siege_town_guard_pole",0,0,75452,148234,-3496,0,0,0,0); //Π“Π²Π°Ρ€Π΄Ρ‹
  999. myself::CreateOnePrivateEx(guard_pole,"giran_siege_town_guard_pole",0,0,75321,148280,-3472,0,0,0,0);
  1000. myself::CreateOnePrivateEx(guard_pole,"giran_siege_town_guard_pole",0,0,75217,148327,-3440,0,0,0,0);
  1001. myself::CreateOnePrivateEx(guard_pole,"giran_siege_town_guard_pole",0,0,75381,148108,-3472,0,0,0,0);
  1002. myself::CreateOnePrivateEx(guard_pole,"giran_siege_town_guard_pole",0,0,75285,148016,-3480,0,0,0,0);
  1003. myself::CreateOnePrivateEx(guard_pole,"giran_siege_town_guard_pole",0,0,75142,147389,-3528,0,0,0,0);
  1004. myself::CreateOnePrivateEx(guard_pole,"giran_siege_town_guard_pole",0,0,75116,147275,-3528,0,0,0,0);
  1005. myself::CreateOnePrivateEx(guard_pole,"giran_siege_town_guard_pole",0,0,75046,147148,-3536,0,0,0,0);
  1006. myself::CreateOnePrivateEx(guard_pole,"giran_siege_town_guard_pole",0,0,75030,147394,-3520,0,0,0,0);
  1007. myself::CreateOnePrivateEx(guard_pole,"giran_siege_town_guard_pole",0,0,74924,147397,-3512,0,0,0,0);
  1008. myself::CreateOnePrivateEx(guard_bow,"giran_siege_town_guard_bow",0,0,75058,147327,-3528,0,0,0,0);
  1009. myself::CreateOnePrivateEx(guard_bow,"giran_siege_town_guard_bow",0,0,75033,147239,-3528,0,0,0,0);
  1010. myself::CreateOnePrivateEx(guard_bow,"giran_siege_town_guard_bow",0,0,74982,147336,-3512,0,0,0,0);
  1011. myself::CreateOnePrivateEx(guard_bow,"giran_siege_town_guard_bow",0,0,75347,148185,-3472,0,0,0,0);
  1012. myself::CreateOnePrivateEx(guard_bow,"giran_siege_town_guard_bow",0,0,75289,148100,-3472,0,0,0,0);
  1013. myself::CreateOnePrivateEx(guard_bow,"giran_siege_town_guard_bow",0,0,75264,148225,-3472,0,0,0,0);
  1014. myself::CreateOnePrivateEx(terminator_stone,"giran_siege_town_terminator_stone",0,0,73127,146705,-3224,0,0,0,0); //ΠžΡΠ°Π΄Π½Ρ‹ΠΉ Π³ΠΎΠ»Π΅ΠΌ
  1015. }
  1016.  
  1017. EventHandler SEE_CREATURE(creature)
  1018. {
  1019.  
  1020. }
  1021.  
  1022. EventHandler TIMER_FIRED_EX(timer_id ,i0)
  1023. {
  1024. if( timer_id == 1 )
  1025. {
  1026.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  1027.         {
  1028.         myself::CreateOnePrivateEx(attack_guard_3,"giran_siege_town_attack_1_walk_w",0,0,72525+(i0*100),146800+(i0*100),0,0,0,0,0);
  1029.         }
  1030. }
  1031. super;
  1032. if( timer_id == 2 )
  1033. {
  1034.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  1035.         {
  1036.         myself::CreateOnePrivateEx(attack_guard_3,"giran_siege_town_attack_1_agro_w",0,0,72525+(i0*100),146800+(i0*100),0,0,0,0,0);
  1037.         }
  1038. }
  1039. super;
  1040. if( timer_id == 3 )
  1041. {
  1042.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  1043.         {
  1044.         myself::CreateOnePrivateEx(attack_guard_3,"giran_siege_town_attack_1_worker_w",0,0,72525+(i0*100),146800+(i0*100),0,0,0,0,0);
  1045.         }
  1046. }
  1047. super;
  1048. if( timer_id == 4 )
  1049. {
  1050.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  1051.         {
  1052.         myself::CreateOnePrivateEx(attack_guard_3,"giran_siege_town_attack_1_walk_w",0,0,72525+(i0*100),146800+(i0*100),0,0,0,0,0);
  1053.         }
  1054. }
  1055. super;
  1056. if( timer_id == 5 )
  1057. {
  1058.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  1059.         {
  1060.         myself::CreateOnePrivateEx(attack_guard_3,"giran_siege_town_attack_1_walk_w",0,0,72525+(i0*100),146800+(i0*100),0,0,0,0,0);
  1061.         }
  1062. }
  1063. super;
  1064. if( timer_id == 6 )
  1065. {
  1066.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  1067.         {
  1068.         myself::CreateOnePrivateEx(attack_guard_3,"giran_siege_town_attack_1_walk_w",0,0,72525+(i0*100),146800+(i0*100),0,0,0,0,0);
  1069.         }
  1070. }
  1071. super;
  1072. if( timer_id == 7 )
  1073. {
  1074.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  1075.         {
  1076.         myself::CreateOnePrivateEx(attack_guard_3,"giran_siege_town_attack_1_agro_w",0,0,72525+(i0*100),146800+(i0*100),0,0,0,0,0);
  1077.         }
  1078. }
  1079. super;
  1080. if( timer_id == 8 )
  1081. {
  1082.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  1083.         {
  1084.         myself::CreateOnePrivateEx(attack_guard_3,"giran_siege_town_attack_1_worker_w",0,0,72525+(i0*100),146800+(i0*100),0,0,0,0,0);
  1085.         }
  1086. }
  1087. super;
  1088. if( timer_id == 9 )
  1089. {
  1090.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  1091.         {
  1092.         myself::CreateOnePrivateEx(attack_guard_3,"giran_siege_town_attack_1_walk_w",0,0,72525+(i0*100),146800+(i0*100),0,0,0,0,0);
  1093.         }
  1094. }
  1095. super;
  1096. if( timer_id == 10 )
  1097. {
  1098.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  1099.         {
  1100.         myself::CreateOnePrivateEx(attack_guard_3,"giran_siege_town_attack_1_walk_w",0,0,72525+(i0*100),146800+(i0*100),0,0,0,0,0);
  1101.         }
  1102. }
  1103. super;
  1104. if( timer_id == 11 )
  1105. {
  1106.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  1107.         {
  1108.         myself::CreateOnePrivateEx(attack_guard_4,"giran_siege_town_attack_1_walk_w",0,0,72525+(i0*100),146800+(i0*100),0,0,0,0,0);
  1109.         }
  1110. }
  1111. super;
  1112. if( timer_id == 12 )
  1113. {
  1114.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  1115.         {
  1116.         myself::CreateOnePrivateEx(attack_guard_4,"giran_siege_town_attack_1_agro_w",0,0,72525+(i0*100),146800+(i0*100),0,0,0,0,0);
  1117.         }
  1118. }
  1119. super;
  1120. if( timer_id == 13 )
  1121. {
  1122.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  1123.         {
  1124.         myself::CreateOnePrivateEx(attack_guard_4,"giran_siege_town_attack_1_worker_w",0,0,72525+(i0*100),146800+(i0*100),0,0,0,0,0);
  1125.         }
  1126. }
  1127. super;
  1128. if( timer_id == 14 )
  1129. {
  1130.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  1131.         {
  1132.         myself::CreateOnePrivateEx(attack_guard_4,"giran_siege_town_attack_1_walk_w",0,0,72525+(i0*100),146800+(i0*100),0,0,0,0,0);
  1133.         }
  1134. }
  1135. super;
  1136. if( timer_id == 15 )
  1137. {
  1138.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  1139.         {
  1140.         myself::CreateOnePrivateEx(attack_guard_4,"giran_siege_town_attack_1_walk_w",0,0,72525+(i0*100),146800+(i0*100),0,0,0,0,0);
  1141.         }
  1142. }
  1143. super;
  1144. if( timer_id == 16 )
  1145. {
  1146.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  1147.         {
  1148.         myself::CreateOnePrivateEx(attack_guard_5,"giran_siege_town_attack_1_walk_w",0,0,72525+(i0*100),146800+(i0*100),0,0,0,0,0);
  1149.         }
  1150. }
  1151. super;
  1152. if( timer_id == 17 )
  1153. {
  1154.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  1155.         {
  1156.         myself::CreateOnePrivateEx(attack_guard_5,"giran_siege_town_attack_1_agro_w",0,0,72525+(i0*100),146800+(i0*100),0,0,0,0,0);
  1157.         }
  1158. }
  1159. super;
  1160. if( timer_id == 18 )
  1161. {
  1162.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  1163.         {
  1164.         myself::CreateOnePrivateEx(attack_guard_5,"giran_siege_town_attack_1_worker_w",0,0,72525+(i0*100),146800+(i0*100),0,0,0,0,0);
  1165.         }
  1166. }
  1167. super;
  1168. if( timer_id == 19 )
  1169. {
  1170.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  1171.         {
  1172.         myself::CreateOnePrivateEx(attack_guard_5,"giran_siege_town_attack_1_walk_w",0,0,72525+(i0*100),146800+(i0*100),0,0,0,0,0);
  1173.         }
  1174. }
  1175. super;
  1176. if( timer_id == 20 )
  1177. {
  1178.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  1179.         {
  1180.         myself::CreateOnePrivateEx(attack_guard_5,"giran_siege_town_attack_1_walk_w",0,0,72525+(i0*100),146800+(i0*100),0,0,0,0,0);
  1181.         }
  1182. }
  1183. super;
  1184. if( timer_id == 21 )
  1185. {
  1186.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  1187.         {
  1188.         myself::CreateOnePrivateEx(attack_guard_6,"giran_siege_town_attack_1_walk_w",0,0,72525+(i0*100),146800+(i0*100),0,0,0,0,0);
  1189.         }
  1190. }
  1191. super;
  1192. if( timer_id == 22 )
  1193. {
  1194.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  1195.         {
  1196.         myself::CreateOnePrivateEx(attack_guard_6,"giran_siege_town_attack_1_agro_w",0,0,72525+(i0*100),146800+(i0*100),0,0,0,0,0);
  1197.         }
  1198. }
  1199. super;
  1200. if( timer_id == 23 )
  1201. {
  1202.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  1203.         {
  1204.         myself::CreateOnePrivateEx(attack_guard_6,"giran_siege_town_attack_1_worker_w",0,0,72525+(i0*100),146800+(i0*100),0,0,0,0,0);
  1205.         }
  1206. }
  1207. super;
  1208. if( timer_id == 24 )
  1209. {
  1210.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  1211.         {
  1212.         myself::CreateOnePrivateEx(attack_guard_6,"giran_siege_town_attack_1_walk_w",0,0,72525+(i0*100),146800+(i0*100),0,0,0,0,0);
  1213.         }
  1214. }
  1215. super;
  1216. if( timer_id == 25 )
  1217. {
  1218.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  1219.         {
  1220.         myself::CreateOnePrivateEx(attack_guard_6,"giran_siege_town_attack_1_walk_w",0,0,72525+(i0*100),146800+(i0*100),0,0,0,0,0);
  1221.         }
  1222. }
  1223. super;
  1224. if( timer_id == 26 )
  1225. {
  1226.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  1227.         {
  1228.         myself::CreateOnePrivateEx(attack_guard_7,"giran_siege_town_attack_1_walk_w",0,0,72525+(i0*100),146800+(i0*100),0,0,0,0,0);
  1229.         }
  1230. }
  1231. super;
  1232. if( timer_id == 27 )
  1233. {
  1234.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  1235.         {
  1236.         myself::CreateOnePrivateEx(attack_guard_7,"giran_siege_town_attack_1_agro_w",0,0,72525+(i0*100),146800+(i0*100),0,0,0,0,0);
  1237.         }
  1238. }
  1239. super;
  1240. if( timer_id == 28 )
  1241. {
  1242.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  1243.         {
  1244.         myself::CreateOnePrivateEx(attack_guard_7,"giran_siege_town_attack_1_worker_w",0,0,72525+(i0*100),146800+(i0*100),0,0,0,0,0);
  1245.         }
  1246. }
  1247. super;
  1248. if( timer_id == 29 )
  1249. {
  1250.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  1251.         {
  1252.         myself::CreateOnePrivateEx(attack_guard_7,"giran_siege_town_attack_1_walk_w",0,0,72525+(i0*100),146800+(i0*100),0,0,0,0,0);
  1253.         }
  1254.  
  1255. }
  1256. super;
  1257. if( timer_id == 30 )
  1258. {
  1259.         for( i0 = 0 ; i0 < monsters_amount ; i0 = i0 + 1 )
  1260.         {
  1261.         myself::CreateOnePrivateEx(attack_guard_7,"giran_siege_town_attack_1_walk_w",0,0,72525+(i0*100),146800+(i0*100),0,0,0,0,0);
  1262.         }
  1263. }
  1264. super;
  1265. }
  1266. }
  1267.  
  1268. class 1 giran_siege_town_attack : giran_siege_event_master
  1269. {
  1270. parameter:
  1271.  
  1272. handler:
  1273.  
  1274. EventHandler CLAN_ATTACKED(attacker)
  1275. {
  1276. myself::AddAttackDesire(attacker,1,100000);
  1277. }
  1278.  
  1279. EventHandler SEE_CREATURE(creature)
  1280. {
  1281. myself::AddAttackDesire(creature, 1, 12000);
  1282. myself::AddTimerEx(1, 30000);
  1283. }
  1284.  
  1285. EventHandler TIMER_FIRED_EX(timer_id, attacker)
  1286. {
  1287. if( timer_id == 1 )
  1288. {
  1289. myself::RemoveAttackDesire(attacker);
  1290. myself::AddMoveToDesire(81514,143393,-3528,12000);
  1291. }
  1292. }
  1293. }
  1294.  
  1295. class 1 giran_siege_town_attack_agro : giran_siege_town_attack
  1296. {
  1297. parameter:
  1298.  
  1299. handler:
  1300.  
  1301. EventHandler NO_DESIRE()
  1302. {
  1303. myself::Despawn();
  1304. }
  1305. }
  1306.  
  1307. class 1 giran_siege_town_attack_1_walk_n : giran_siege_town_attack_agro
  1308. {
  1309. parameter:
  1310.  
  1311. handler:
  1312.  
  1313. EventHandler CREATED()
  1314. {
  1315. myself::AddMoveToDesire(81543,141565,-3584,10500);
  1316. myself::AddMoveToDesire(81578,143310,-3528,10000);
  1317. myself::AddMoveToDesire(81523,143571,-3528,9500);
  1318. myself::AddMoveToDesire(81586,143871,-3528,9000);
  1319. myself::AddMoveToDesire(81603,147084,-3528,8500);
  1320. myself::AddMoveToDesire(81544,147450,-3464,8000);
  1321. myself::AddMoveToDesire(80898,148187,-3464,7500);
  1322. myself::AddMoveToDesire(83218,148046,-3400,7000);
  1323. myself::AddMoveToDesire(84006,148185,-3400,6500);
  1324. myself::AddMoveToDesire(84028,148632,-3400,6000);
  1325. myself::AddMoveToDesire(84729,148563,-3400,5500);
  1326. myself::AddMoveToDesire(87031,148425,-3400,5000);
  1327. }
  1328. }
  1329.  
  1330. class 1 giran_siege_town_attack_1_agro_n : giran_siege_town_attack_agro
  1331. {
  1332. parameter:
  1333.  
  1334. handler:
  1335.  
  1336. EventHandler CREATED()
  1337. {
  1338. myself::AddMoveToDesire(81463,141437,-3560,10500);
  1339. myself::AddMoveToDesire(81523,143571,-3528,10000);
  1340. myself::AddMoveToDesire(81544,147450,-3464,9000);
  1341. myself::AddMoveToDesire(81334,148143,-3464,8500);
  1342. myself::AddMoveToDesire(83251,148310,-3400,8000);
  1343. //myself::AddUseSkillDesire(myself,600375297,0,1,750 0);
  1344. myself::AddMoveToDesire(84006,148185,-3400,7000);
  1345. myself::AddMoveToDesire(84028,148632,-3400,6500);
  1346. myself::AddMoveToDesire(84729,148563,-3400,6000);
  1347. myself::AddMoveToDesire(87013,148630,-3400,5500);
  1348. }
  1349. }
  1350.  
  1351. class 1 giran_siege_town_attack_1_worker_n : giran_siege_town_attack_agro
  1352. {
  1353. parameter:
  1354.  
  1355. handler:
  1356.  
  1357. EventHandler CREATED()
  1358. {
  1359. myself::AddMoveToDesire(81197,141505,-3536,10500);
  1360. myself::AddMoveToDesire(81454,143360,-3528,10000);
  1361. myself::AddMoveToDesire(81523,143571,-3528,9500);
  1362. myself::AddMoveToDesire(81483,143873,-3528,9000);
  1363. myself::AddMoveToDesire(81491,147096,-3528,8500);
  1364. myself::AddMoveToDesire(81544,147450,-3464,8000);
  1365. myself::AddMoveToDesire(81735,147837,-3464,7500);
  1366. myself::AddMoveToDesire(83239,148153,-3400,7000);
  1367. myself::AddMoveToDesire(84006,148185,-3400,6500);
  1368. myself::AddMoveToDesire(84028,148632,-3400,6000);
  1369. myself::AddMoveToDesire(84729,148563,-3400,5500);
  1370. myself::AddMoveToDesire(87007,148828,-3400,5000);
  1371. }
  1372. }
  1373.  
  1374. class 1 giran_siege_town_attack_1_walk_s : giran_siege_town_attack_agro
  1375. {
  1376. parameter:
  1377.  
  1378. handler:
  1379.  
  1380. EventHandler CREATED()
  1381. {
  1382. myself::AddMoveToDesire(80143,155210,-3376,10500);
  1383. myself::AddMoveToDesire(81641,153118,-3528,10000);
  1384. myself::AddMoveToDesire(81552,152886,-3528,9500);
  1385. myself::AddMoveToDesire(81599,152643,-3528,9000);
  1386. myself::AddMoveToDesire(81605,150149,-3528,8500);
  1387. myself::AddMoveToDesire(81541,149822,-3464,8000);
  1388. myself::AddMoveToDesire(81020,148987,-3464,7500);
  1389. myself::AddMoveToDesire(83228,149044,-3400,7000);
  1390. myself::AddMoveToDesire(84053,149053,-3400,6500);
  1391. myself::AddMoveToDesire(84028,148632,-3400,6000);
  1392. myself::AddMoveToDesire(84791,148686,-3400,5500);
  1393. myself::AddMoveToDesire(87031,148425,-3400,5000);
  1394. }
  1395. }
  1396.  
  1397. class 1 giran_siege_town_attack_1_agro_s : giran_siege_town_attack_agro
  1398. {
  1399. parameter:
  1400.  
  1401. handler:
  1402.  
  1403. EventHandler CREATED()
  1404. {
  1405. myself::AddMoveToDesire(80235,154831,-3440,10500);
  1406. myself::AddMoveToDesire(81552,152886,-3528,10000);
  1407. myself::AddMoveToDesire(81541,149822,-3464,9000);
  1408. myself::AddMoveToDesire(81688,148941,-3464,8500);
  1409. myself::AddMoveToDesire(83235,149099,-3400,8000);
  1410. //myself::AddUseSkillDesire(myself,600375297,0,1,750 0);
  1411. myself::AddMoveToDesire(84053,149053,-3400,7000);
  1412. myself::AddMoveToDesire(84028,148632,-3400,6500);
  1413. myself::AddMoveToDesire(84791,148686,-3400,6000);
  1414. myself::AddMoveToDesire(87013,148630,-3400,5500);
  1415. }
  1416. }
  1417.  
  1418. class 1 giran_siege_town_attack_1_worker_s : giran_siege_town_attack_agro
  1419. {
  1420. parameter:
  1421.  
  1422. handler:
  1423.  
  1424. EventHandler CREATED()
  1425. {
  1426. myself::AddMoveToDesire(79997,154742,-3448,10500);
  1427. myself::AddMoveToDesire(81489,153085,-3536,10000);
  1428. myself::AddMoveToDesire(81502,152631,-3528,9500);
  1429. myself::AddMoveToDesire(81480,150138,-3528,9000);
  1430. myself::AddMoveToDesire(81541,149822,-3464,8500);
  1431. myself::AddMoveToDesire(81235,149205,-3464,8000);
  1432. myself::AddMoveToDesire(83230,149232,-3400,7500);
  1433. myself::AddMoveToDesire(84053,149053,-3400,7000);
  1434. myself::AddMoveToDesire(84028,148632,-3400,6500);
  1435. myself::AddMoveToDesire(84791,148686,-3400,6000);
  1436. myself::AddMoveToDesire(87007,148828,-3400,5500);
  1437. }
  1438. }
  1439.  
  1440. class 1 giran_siege_town_attack_1_walk_w : giran_siege_town_attack_agro
  1441. {
  1442. parameter:
  1443.  
  1444. handler:
  1445.  
  1446. EventHandler CREATED()
  1447. {
  1448. myself::AddMoveToDesire(74053,147439,-3440,10500);
  1449. myself::AddMoveToDesire(76777,148443,-3592,10000);
  1450. myself::AddMoveToDesire(77087,148622,-3592,9500);
  1451. myself::AddMoveToDesire(77416,148527,-3592,9000);
  1452. myself::AddMoveToDesire(80167,148560,-3528,8500);
  1453. myself::AddMoveToDesire(80656,148619,-3464,8000);
  1454. myself::AddMoveToDesire(81791,147865,-3464,7500);
  1455. myself::AddMoveToDesire(83184,148571,-3416,7000);
  1456. myself::AddMoveToDesire(84028,148632,-3400,6500);
  1457. myself::AddMoveToDesire(84852,148615,-3400,6000);
  1458. myself::AddMoveToDesire(87031,148425,-3400,5500);
  1459. }
  1460. }
  1461.  
  1462. class 1 giran_siege_town_attack_1_agro_w : giran_siege_town_attack_agro
  1463. {
  1464. parameter:
  1465.  
  1466. handler:
  1467.  
  1468. EventHandler CREATED()
  1469. {
  1470. myself::AddMoveToDesire(73500,147288,-3376,10500);
  1471. myself::AddMoveToDesire(77087,148622,-3592,10000);
  1472. myself::AddMoveToDesire(77421,148694,-3592,9000);
  1473. myself::AddMoveToDesire(80189,148678,-3528,8500);
  1474. myself::AddMoveToDesire(80656,148619,-3464,8000);
  1475. myself::AddMoveToDesire(81780,149445,-3464,7500);
  1476. myself::AddMoveToDesire(83184,148690,-3416,7000);
  1477. //myself::AddUseSkillDesire(myself,600375297,0,1,650 0);
  1478. myself::AddMoveToDesire(84028,148632,-3400,6000);
  1479. myself::AddMoveToDesire(84852,148615,-3400,5500);
  1480. myself::AddMoveToDesire(87013,148630,-3400,5000);
  1481. }
  1482. }
  1483.  
  1484. class 1 giran_siege_town_attack_1_worker_w : giran_siege_town_attack_agro
  1485. {
  1486. parameter:
  1487.  
  1488. handler:
  1489.  
  1490. EventHandler CREATED()
  1491. {
  1492. myself::AddMoveToDesire(73771,147071,-3384,10500);
  1493. myself::AddMoveToDesire(76758,148707,-3600,10000);
  1494. myself::AddMoveToDesire(77087,148622,-3592,9500);
  1495. myself::AddMoveToDesire(81791,147865,-3464,9000);
  1496. myself::AddMoveToDesire(83184,148690,-3416,8500);
  1497. myself::AddMoveToDesire(84028,148632,-3400,8000);
  1498. myself::AddMoveToDesire(84852,148615,-3400,7500);
  1499. myself::AddMoveToDesire(87007,148828,-3400,7000);
  1500. }
  1501. }
  1502.  
  1503.  
  1504. class 1 giran_siege_town_big_pig : giran_siege_town_attack
  1505. {
  1506. handler:
  1507.   EventHandler ATTACKED( attacker )
  1508.   {
  1509.     if( myself::Skill_GetConsumeMP( skill_id_1 ) < myself.sm.mp &&
  1510.         myself::Skill_GetConsumeHP( skill_id_1 ) < myself.sm.hp &&
  1511.         myself::Skill_InReuseDelay( skill_id_1 ) == 0 )
  1512.     {
  1513.       myself::AddUseSkillDesire( attacker, skill_id_1, 0, 0, 1000000 );
  1514.     }
  1515.     if( myself::GetCookie( attacker, "attacked_siegehog" ) != 1 &&
  1516.         attacker.is_pc == 1 )
  1517.     {
  1518.       myself::SetCookie( attacker, "attacked_siegehog", 1 );
  1519.       for( i1 = 20; i1 < 100; i1 = i1 + 1 )
  1520.       {
  1521.         if( myself::GetGlobalMap( i1 ) == -1 )
  1522.         {
  1523.           myself::RegisterGlobalMap( i1,
  1524.                                      myself::GetIndexFromCreature( attacker ) );
  1525.           break;
  1526.         }
  1527.       }
  1528.     }
  1529.   }
  1530.  
  1531.   EventHandler SEE_CREATURE( creature )
  1532.   {
  1533.     if( myself::Skill_GetConsumeMP( skill_id_1 ) < myself.sm.mp &&
  1534.         myself::Skill_GetConsumeHP( skill_id_1 ) < myself.sm.hp &&
  1535.         myself::Skill_InReuseDelay( skill_id_1 ) == 0 )
  1536.     {
  1537.       myself::AddUseSkillDesire( creature, skill_id_1, 0, 0, 1000000 );
  1538.     }
  1539.   }
  1540.  
  1541.   EventHandler CLAN_ATTACKED( attacker )
  1542.   {
  1543.     if( myself::Skill_GetConsumeMP( skill_id_1 ) < myself.sm.mp &&
  1544.         myself::Skill_GetConsumeHP( skill_id_1 ) < myself.sm.hp &&
  1545.         myself::Skill_InReuseDelay( skill_id_1 ) == 0 )
  1546.     {
  1547.       myself::AddUseSkillDesire( attacker, skill_id_1, 0, 0, 1000000 );
  1548.     }
  1549.   }
  1550.  
  1551.   EventHandler MY_DYING( i1, talker )
  1552.   {
  1553.     for( i1 = 20; i1 < 100; i1 = i1 + 1 )
  1554.     {
  1555.       if( myself::GetGlobalMap( i1 ) != -1 )
  1556.       {
  1557.         talker = myself::GetCreatureFromIndex( myself::GetGlobalMap( i1 ) );
  1558.         if( myself::GetCookie( talker, "attacked_siegehog" ) == 1 )
  1559.         {
  1560.           myself::SetCookie( talker, "attacked_siegehog", 0 );
  1561.           myself::GiveItem1( talker, item_reward_normal,
  1562.                              1 * item_reward_normal_amount );
  1563.         }
  1564.         myself::UnregisterGlobalMap( i1 );
  1565.       }
  1566.     }
  1567.   }
  1568. }
  1569.  
  1570.  
  1571. class 1 giran_siege_town_guard_sword : giran_siege_town_attack
  1572. {
  1573. parameter:
  1574.  
  1575. handler:
  1576.  
  1577. }
  1578.  
  1579. class 1 giran_siege_town_guard_bow : giran_siege_town_attack
  1580. {
  1581. parameter:
  1582.  
  1583. handler:
  1584.  
  1585. EventHandler CLAN_ATTACKED(attacker)
  1586. {
  1587. myself::AddAttackDesire(attacker,0,100000);
  1588. }
  1589.  
  1590. EventHandler SEE_CREATURE(creature)
  1591. {
  1592. myself::AddAttackDesire(creature,0,11000);
  1593. }
  1594. }
  1595.  
  1596. class 1 giran_siege_town_guard_pole : giran_siege_town_attack
  1597. {
  1598. parameter:
  1599.  
  1600. handler:
  1601.  
  1602. EventHandler NO_DESIRE()
  1603. {
  1604. myself::AddMoveToDesire(myself.start_x,myself.star t_y,myself.start_z,30);
  1605. }
  1606. }
  1607.  
  1608. class 1 giran_siege_town_terminator : giran_siege_event_master
  1609. {
  1610. parameter:
  1611.  
  1612. handler:
  1613.  
  1614. EventHandler ATTACKED(attacker)
  1615. {
  1616. myself::AddAttackDesire(attacker,1,98000);
  1617.  
  1618.         //Register user for reward
  1619.         if(myself::GetCookie( attacker, "attacked_miniraid" ) != 1 && attacker.is_pc == 1)
  1620.         {      
  1621.         myself::SetCookie( attacker, "attacked_miniraid", 1 );
  1622.        
  1623.             for( i1 = 20; i1 < 100; i1 = i1 + 1 )
  1624.             {
  1625.               if( myself::GetGlobalMap( i1 ) == -1 )
  1626.               {
  1627.                // myself::Shout("You attacked me ");
  1628.                 myself::RegisterGlobalMap( i1, myself::GetIndexFromCreature( attacker ) );
  1629.                 break;
  1630.               }
  1631.             }
  1632.         }
  1633. }
  1634.  
  1635. EventHandler NO_DESIRE()
  1636. {
  1637. myself::AddMoveToDesire(myself.start_x,myself.star t_y,myself.start_z,30);
  1638. }
  1639.  
  1640. EventHandler CLAN_ATTACKED(attacker)
  1641. {
  1642. myself::AddAttackDesire(attacker,1,100000);
  1643. }
  1644.  
  1645. EventHandler SEE_CREATURE(creature)
  1646. {
  1647. myself::AddAttackDesire(creature,1,99000);
  1648. }
  1649.  
  1650.   EventHandler MY_DYING( i1, talker )
  1651.   {
  1652.     for( i1 = 20; i1 < 100; i1 = i1 + 1 )
  1653.     {
  1654.       if( myself::GetGlobalMap( i1 ) != -1 )
  1655.       {
  1656.         talker = myself::GetCreatureFromIndex( myself::GetGlobalMap( i1 ) );
  1657.         if( myself::GetCookie( talker, "attacked_miniraid" ) == 1 )
  1658.         {
  1659.           myself::SetCookie( talker, "attacked_miniraid", 0 );
  1660.          // myself::Shout( "You killed me " );
  1661.          myself::GiveItem1( talker, item_reward_normal , 1* item_reward_normal_amount );
  1662.         }
  1663.         myself::UnregisterGlobalMap( i1 );
  1664.       }
  1665.     }
  1666.   }
  1667.  
  1668. }
  1669.  
  1670. class 1 giran_siege_town_terminator_stone : giran_siege_event_master
  1671. {
  1672. parameter:
  1673.  string music_effect =  "RaidSpawnMusic";
  1674.  
  1675. handler:
  1676.  
  1677. EventHandler SEE_CREATURE(creature)
  1678. {
  1679. myself::AddTimerEx(1,3000);
  1680. myself::EffectMusic(myself.sm,10000,music_effect);
  1681. }
  1682.  
  1683. EventHandler TIMER_FIRED_EX(timer_id)
  1684. {
  1685. if( timer_id == 1 )
  1686. {
  1687. myself::CreateOnePrivateEx(final_warrior,"giran_siege_town_terminator",0,0,myself.start_x,myself.start_y,myself.start_z,0,0,0,0);
  1688. myself::Despawn();
  1689. }
  1690. }
  1691. }
  1692.  
  1693. class 1 giran_siege_town_attack_bb_stone : giran_siege_event_master
  1694. {
  1695. parameter:
  1696.  
  1697. handler:
  1698.  
  1699. EventHandler CREATED()
  1700. {
  1701. myself::AddTimerEx(1,5000);
  1702. }
  1703.  
  1704. EventHandler TIMER_FIRED_EX(timer_id)
  1705. {
  1706. if( timer_id == 1 )
  1707. {
  1708. myself::CreateOnePrivateEx(siege_golem,"giran_siege_town_attack_bb",0,0,myself.start_x,myself.start_y,myself.start_z,0,0,0,0);
  1709. myself::Despawn();
  1710. }
  1711. }
  1712. }
  1713.  
  1714. class 1 giran_siege_town_attack_bb : giran_siege_event_master
  1715. {
  1716. parameter:
  1717.  
  1718. int end_charge=0;
  1719.  
  1720.  
  1721. //string target=attacker;
  1722.  
  1723. handler:
  1724.  
  1725. EventHandler CREATED()
  1726. {
  1727. myself.i_ai0 = 0;
  1728. myself::Shout("Here i am");
  1729. }
  1730.  
  1731. EventHandler ATTACKED(attacker,i0 , i1)
  1732. {
  1733.         //Register user for reward
  1734.         if(myself::GetCookie( attacker, "attacked_raid" ) != 1 && attacker.is_pc == 1)
  1735.         {      
  1736.         myself::SetCookie( attacker, "attacked_raid", 1 );
  1737.        
  1738.             for( i1 = 20; i1 < 100; i1 = i1 + 1 )
  1739.             {
  1740.               if( myself::GetGlobalMap( i1 ) == -1 )
  1741.               {
  1742.                // myself::Shout("You attacked me ");
  1743.                 myself::RegisterGlobalMap( i1, myself::GetIndexFromCreature( attacker ) );
  1744.                 break;
  1745.               }
  1746.             }
  1747.         }
  1748.        
  1749.  
  1750. myself.c_ai0 = attacker;
  1751. i1=gg::Rand(100);
  1752.  
  1753. if ( i1 >= 99)
  1754. {
  1755. myself::Shout("Ah ha ha, that's all you can do ? ");
  1756. }
  1757.  
  1758. else if ( i1 > 40 && i1 < 99 )
  1759. {
  1760.       if( myself::DistFromMe(attacker) > 150 &&
  1761.           myself::Skill_GetConsumeMP( skill_id_2 ) < myself.sm.mp &&
  1762.           myself::Skill_GetConsumeHP( skill_id_2 ) < myself.sm.hp &&
  1763.           myself::Skill_InReuseDelay( skill_id_2 ) == 0 )
  1764.       {
  1765.         myself::AddUseSkillDesire( attacker, skill_id_2, @ST_HEAL, @AMT_MOVE_TO_TARGET, @MAX_TIMER_ID );       
  1766.         myself.i_ai0 = 1;
  1767.       }
  1768. }
  1769.  
  1770. else if (i1 <= 40)
  1771. {
  1772.       if( myself::Skill_GetConsumeMP( skill_id_6 ) < myself.sm.mp &&
  1773.           myself::Skill_GetConsumeHP( skill_id_6 ) < myself.sm.hp &&
  1774.           myself::Skill_InReuseDelay( skill_id_6 ) == 0 )
  1775.       {
  1776.         myself::AddUseSkillDesire( attacker, skill_id_6, @ST_HEAL, @AMT_MOVE_TO_TARGET, @MAX_TIMER_ID );       
  1777.       }
  1778.      
  1779. }
  1780. }
  1781.  
  1782. EventHandler CLAN_ATTACKED(attacker)
  1783. {
  1784. myself::AddAttackDesire(attacker,1,98000);
  1785. }
  1786.  
  1787. EventHandler SEE_CREATURE(creature)
  1788. {
  1789.  
  1790.       if( myself::DistFromMe(creature) > 300 &&
  1791.           myself::Skill_GetConsumeMP( skill_id_2 ) < myself.sm.mp &&
  1792.           myself::Skill_GetConsumeHP( skill_id_2 ) < myself.sm.hp &&
  1793.           myself::Skill_InReuseDelay( skill_id_2 ) == 0 )
  1794.       {
  1795.         myself::AddUseSkillDesire( creature, skill_id_2, @ST_HEAL, @AMT_MOVE_TO_TARGET, @MAX_TIMER_ID );
  1796.         myself.i_ai0 = 1;
  1797.       }
  1798.      
  1799.       else if( myself::DistFromMe(creature) > 300 &&  
  1800.           myself::Skill_GetConsumeMP( skill_id_3 ) < myself.sm.mp &&
  1801.           myself::Skill_GetConsumeHP( skill_id_3 ) < myself.sm.hp &&
  1802.           myself::Skill_InReuseDelay( skill_id_3 ) == 0 )
  1803.       {
  1804.         myself::AddUseSkillDesire( creature, skill_id_3, @ST_HEAL, @AMT_MOVE_TO_TARGET, @MAX_TIMER_ID );
  1805.       }
  1806.  
  1807. }
  1808.  
  1809. EventHandler NO_DESIRE()
  1810. {
  1811. myself::AddMoveAroundDesire(5,5);
  1812. }
  1813.  
  1814. EventHandler SEE_SPELL(speller,skill_name_id,target,f0,i0)
  1815. {
  1816.       if( myself::DistFromMe(speller) > 150 &&
  1817.           myself::Skill_GetConsumeMP( skill_id_5 ) < myself.sm.mp &&
  1818.           myself::Skill_GetConsumeHP( skill_id_5 ) < myself.sm.hp &&
  1819.           myself::Skill_InReuseDelay( skill_id_5 ) == 0 )
  1820.       {
  1821.         myself::AddUseSkillDesire( speller, skill_id_5, @ST_HEAL, @AMT_MOVE_TO_TARGET, @MAX_TIMER_ID );
  1822.       }
  1823.  
  1824.       else if( myself::DistFromMe(speller) > 150 &&
  1825.           myself::Skill_GetConsumeMP( skill_id_5 ) < myself.sm.mp &&
  1826.           myself::Skill_GetConsumeHP( skill_id_5 ) < myself.sm.hp &&
  1827.           myself::Skill_InReuseDelay( skill_id_5 ) == 0 )
  1828.       {
  1829.         myself::AddUseSkillDesire( speller, skill_id_2, @ST_HEAL, @AMT_MOVE_TO_TARGET, @MAX_TIMER_ID );
  1830.         myself.i_ai0 = 1;
  1831.       }
  1832. }
  1833.  
  1834. EventHandler USE_SKILL_FINISHED(target,skill_name_id,i0)
  1835. {
  1836. if( myself.i_ai0 == 1)
  1837. {
  1838.  
  1839.       if( myself::Skill_GetConsumeMP( skill_id_3 ) < myself.sm.mp &&
  1840.           myself::Skill_GetConsumeHP( skill_id_3 ) < myself.sm.hp &&
  1841.           myself::Skill_InReuseDelay( skill_id_3 ) == 0 )
  1842.       {
  1843.         myself::AddUseSkillDesire( target, skill_id_3, @ST_HEAL, @AMT_MOVE_TO_TARGET, @MAX_TIMER_ID );
  1844.         myself.i_ai0 = 0;
  1845.         myself::RemoveAllAttackDesire();
  1846.       }  
  1847.  
  1848. }
  1849. }
  1850.  
  1851.   EventHandler MY_DYING( i1, talker )
  1852.   {
  1853.     for( i1 = 20; i1 < 100; i1 = i1 + 1 )
  1854.     {
  1855.       if( myself::GetGlobalMap( i1 ) != -1 )
  1856.       {
  1857.         talker = myself::GetCreatureFromIndex( myself::GetGlobalMap( i1 ) );
  1858.         if( myself::GetCookie( talker, "attacked_raid" ) == 1 )
  1859.         {
  1860.           myself::SetCookie( talker, "attacked_raid", 0 );
  1861.          // myself::Shout( "You killed me " );
  1862.          myself::GiveItem1( talker, item_reward_nice , 1* item_reward_nice_amount );
  1863.         }
  1864.         myself::UnregisterGlobalMap( i1 );
  1865.       }
  1866.     }
  1867.   }
  1868.  
  1869. }
  1870.  
  1871. class 1 giran_siege_town_attack_guard : bowman
  1872. {
  1873. parameter:
  1874.  
  1875. handler:
  1876.  
  1877. EventHandler CLAN_ATTACKED(attacker)
  1878. {
  1879. myself::AddAttackDesire(attacker,1,100000);
  1880. }
  1881. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement