Advertisement
h3x3r0

Untitled

Jul 26th, 2024 (edited)
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.25 KB | None | 0 0
  1. @LabelIndex 139309
  2. @StringIndex 17165
  3. class 0 ai_boss04_heart_of_warding : default_npc {
  4. parameter:
  5.     string  fnHi = "heart_of_warding001.htm";
  6.     string  fnBattle = "heart_of_warding003.htm";
  7.     string  fnNotRespawn = "heart_of_warding002.htm";
  8.     string  fnNoTicket = "heart_of_warding004.htm";
  9.     string  fnNoMoreTicket = "heart_of_warding005.htm";
  10.     string  fnNotAllianceLeader = "heart_of_warding006.htm";
  11.     int ticket_no = 200;
  12.  
  13. handler:
  14.     EventHandler CREATED(reply) {
  15.         if( reply == 0 ) {
  16.             myself.i_ai0 = 0;
  17.             myself.i_ai1 = 0;
  18.             myself::SetDBValue(myself.sm,0);
  19.         } else {
  20.             myself.i_ai0 = myself.sm.db_value;
  21.         }
  22.         myself::AddTimerEx(2002,( 60 * 1000 ));
  23.     }
  24.  
  25.     EventHandler TALKED(talker) {
  26.         myself::ShowPage(talker,fnHi);
  27.     }
  28.  
  29.     EventHandler MPCC_TELEPORTED(talker,reply,c0,c1,i0,i1,i5,i6,i7,c2,c3,c4) {
  30.         i7 = myself::GetGlobalMap(10);
  31.         if( i7 != -1 ) {
  32.             c4 = gg::GetCreatureFromIndex(i7);
  33.             i1 = myself::MPCC_GetMPCCId(talker);
  34.             if( talker == myself::MPCC_GetMaster(i1) && myself::IsNullCreature(c4) == 0 ) {
  35.                 if( reply >= 99 ) {
  36.                     gg::SendScriptEvent(c4,99999999,i1);
  37.                     myself.i_ai1 = i1;
  38.                     myself::AddLogByNpc2(127,myself.sm,"antaras_test","MPCC_TELEPORTED: asking loot permission for alliance",i1,0,0,0,0,1);
  39.                 }
  40.                 if( reply > 0 ) {
  41.                     myself.i_ai0 = ( myself.i_ai0 + reply );
  42.                     myself::SetDBValue(myself.sm,myself.i_ai0);
  43.                     myself::AddLogByNpc2(127,myself.sm,"antaras_test","MPCC_TELEPORTED: entering alliance detected",reply,myself.i_ai0,myself.sm.db_value,0,0,1);
  44.                 }
  45.             }
  46.         }
  47.     }
  48.  
  49.     EventHandler TELEPORT_REQUESTED(talker,i0,c0,c1,c2,i1,i2,c3,c4,c5,c6,i3,i4,i5,i6,i7) {
  50.         i0 = myself::GetGlobalMap(10);
  51.         if( i0 != -1 ) {
  52.             c0 = gg::GetCreatureFromIndex(i0);
  53.             if( myself::IsNullCreature(c0) == 0 && c0.alive ) {
  54.                 if( c0.db_value == 0 || c0.db_value == 1 ) {
  55.                     if( myself.i_ai0 >= ticket_no ) {
  56.                         myself::ShowPage(talker,fnNoMoreTicket);
  57.                     } else {
  58.                         i3 = myself::MPCC_GetMPCCId(talker);
  59.                         c3 = myself::MPCC_GetMaster(i3);
  60.                         if( i3 != 0 && talker != c3 ) {
  61.                             myself::ShowPage(talker,fnNotAllianceLeader);
  62.                         } else if( i3 != 0 && talker == c3 ) {
  63.                             if( gg::OwnItemCount(talker,3865) > 0 ) {
  64.                                 if( myself::MPCC_GetMemberCount(i3) > ( ticket_no - myself.i_ai0 ) ) {
  65.                                     myself::ShowPage(talker,fnNoMoreTicket);
  66.                                 } else {
  67.                                     myself::InstantTeleportMPCC(talker,179700,113800,-7709,1000,200,500,3865,0);
  68.                                     myself::AddLogByNpc2(127,myself.sm,"antaras_test","TELEPORT_REQUESTED: entering alliance members are detected",myself::MPCC_GetMemberCount(i3),myself.i_ai0,myself.sm.db_value,0,0,1);
  69.                                     if( c0.db_value == 0 ) {
  70.                                         myself::MPCC_SetMasterPartyRouting(myself.i_ai1,c0,0);
  71.                                         gg::SendScriptEvent(c0,78010088,0);
  72.                                     }
  73.                                 }
  74.                             } else {
  75.                                 myself::ShowPage(talker,fnNoTicket);
  76.                             }
  77.                         } else if( gg::OwnItemCount(talker,3865) > 0 ) {
  78.                             i1 = ( 179700 + gg::Rand(700) );
  79.                             i2 = ( 113800 + gg::Rand(2100) );
  80.                             myself::InstantTeleport(talker,i1,i2,-7709);
  81.                             myself.i_ai0 = ( myself.i_ai0 + 1 );
  82.                             myself::SetDBValue(myself.sm,myself.i_ai0);
  83.                             myself::AddLogByNpc2(127,myself.sm,"antaras_test","TELEPORT_REQUESTED: entering individual is detected",1,myself.i_ai0,myself.sm.db_value,0,0,1);
  84.                             if( c0.db_value == 0 ) {
  85.                                 myself::MPCC_SetMasterPartyRouting(myself.i_ai1,c0,0);
  86.                                 gg::SendScriptEvent(c0,78010088,0);
  87.                             }
  88.                         } else {
  89.                             myself::ShowPage(talker,fnNoTicket);
  90.                         }
  91.                     }
  92.                 } else {
  93.                     myself::ShowPage(talker,fnBattle);
  94.                 }
  95.             } else {
  96.                 myself::ShowPage(talker,fnNotRespawn);
  97.             }
  98.         } else {
  99.             myself::ShowPage(talker,fnNotRespawn);
  100.         }
  101.     }
  102.  
  103.     EventHandler TIMER_FIRED_EX(timer_id,i0,c0) {
  104.         if( timer_id == 2002 ) {
  105.             i0 = myself::GetGlobalMap(10);
  106.             c0 = gg::GetCreatureFromIndex(i0);
  107.             if( ( i0 == -1 || ( myself::IsNullCreature(c0) == 0 && c0.alive && c0.db_value == 0 ) ) && ( myself.i_ai0 != 0 || myself.sm.db_value != 0 ) ) {
  108.                 myself::SetDBValue(myself.sm,0);
  109.                 myself.i_ai0 = 0;
  110.                 myself.i_ai1 = 0;
  111.                 myself::AddLogByNpc2(127,myself.sm,"antaras_test","TIMER_FIRED_EX: member counter initialized",myself.i_ai0,myself.sm.db_value,0,0,0,1);
  112.             }
  113.             myself::AddTimerEx(2002,( 60 * 1000 ));
  114.         }
  115.     }
  116.  
  117. }
  118.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement