Advertisement
johnlol

Party 3vs3 Party

Aug 9th, 2023
994
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VeriLog 4.33 KB | Gaming | 0 0
  1. /*
  2. partida de party contra party
  3. digamos 3 contra 3
  4. se um membro morrer, ele permanecerá morto
  5. e depois de (n) segundos, ele será ressuscitado automaticamente cheio de hp/sp
  6.  
  7. para ganhar:
  8. a equipe adversária deve matar
  9. toda a festa antes de serem ressuscitados novamente
  10.  
  11. todo o grupo da equipe vencedora receberá
  12. prêmios aleatórios
  13. */
  14.  
  15. prontera,152,239,5  script  Party vs. Party 56,{
  16. function isreq;
  17.  
  18.     callsub L_check;
  19.     if( select( "Register?", "Informations" ) == 2 ) {
  20.         mes "Party vs. Party Match:";
  21.         mes "Say 3 Against 3";
  22.         mes "If a Member Dies he Will Remain Dead";
  23.         mes "And After 20 Seconds he Will be Resurrected Automatically Full of HP/SP";
  24.         next;
  25.         mes "To Win:";
  26.         mes "The Opposing Team Must Kill";
  27.         mes "The Whole Party Before they are Resurrected Again";
  28.         mes "The Entire Group of the Winning Team will Receive";
  29.         mes "Random Prizes";
  30.         next;
  31.         mes "NOTE: 5 Min Then End of Event";
  32.         close;
  33.     }
  34.  
  35.     if( !getcharid(1) ) {
  36.         mes "You're Not in a Party";
  37.         close;
  38.     }
  39.     else if( .party1 == getcharid(1) || .party2 == getcharid(1) ) {
  40.         mes "You're Already on My List";
  41.         close;
  42.     }
  43.     getpartymember getcharid(1);
  44.     if( $@partymembercount != .count_req || !instance_check_party( getcharid(1),.count_req ) ) {
  45.         mes "You Need "+ .count_req +" Players Online in Your Party";
  46.         close;
  47.     }
  48.     callsub L_check;
  49.     if( !.party2 )
  50.         .party2 = getcharid(1);
  51.     else
  52.         .party1 = getcharid(1);
  53.     dispbottom "Your Party is Now on My List";
  54.     if( !.party1 || !.party2 ) end;
  55.  
  56.     .start = 1;
  57.     warpparty .map_event$, 6,50, .party1;
  58.     warpparty .map_event$, 93,49, .party2;
  59.     initnpctimer;
  60.     end;
  61.  
  62. OnPCKillEvent:
  63.     .@self = getcharid(3);
  64.     .@killed = killedrid;
  65.     .@is_reg = isreq();
  66.     attachrid( .@killed );
  67.     if( !isreq() ) end;
  68.     getpartymember getcharid(1),1;
  69.     getpartymember getcharid(1),2;
  70.     for( .@i = 0; .@i < $@partymembercount; .@i++ ) {
  71.         if( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) {
  72.             attachrid( $@partymemberaid[.@i] );
  73.             sleep2 1;
  74.             if( strcharinfo(3) == .map_event$ ) {
  75.                 .@is_online += 1;
  76.                 if( Hp < 1 )
  77.                     .@count += 1;
  78.             }
  79.         }
  80.     }
  81.     if( .@is_online != .@count ) {
  82.         attachrid( .@killed );
  83.         sleep2( .wait * 1000 );
  84.         atcommand "@alive";
  85.         end;
  86.     }
  87.     else if( !.@is_reg ) end;
  88.  
  89.     attachrid( .@self );
  90.     sleep2 2;
  91.     announce "Team "+ getpartyname( getcharid(1) ) +" Win The Event !", 0;
  92.     getpartymember getcharid(1);
  93.     getpartymember getcharid(1),1;
  94.     getpartymember getcharid(1),2;
  95.     for( .@i = 0; .@i < $@partymembercount; .@i++ )
  96.         if( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) {
  97.             getmapxy .@map$, .@x, .@y, 0, $@partymembername$[.@i];
  98.             if( .@map$ == .map_event$ ) {
  99.                 for( .@j = 0; .@j < .size_reward; .@j++ )
  100.                     getitem .item_id[.@j], .item_count[.@j], $@partymemberaid[.@i];
  101.             }
  102.         }
  103.     stopnpctimer;
  104.     sleep 3000;
  105.  
  106. OnTimer300000:  // 5 min then end of event
  107.     .start = .party1 = .party2 = 0;
  108.     mapwarp .map_event$,"prontera",0,0;
  109.     end;
  110.  
  111. L_check:
  112.     if( .start ) end;
  113.     else if( getpartyname( .party1 ) == "null" )
  114.         .party1 = 0;
  115.     else if( getpartyname( .party2 ) == "null" )
  116.         .party2 = 0;
  117.     else if( getpartyname( .party1 ) != "null" ) {
  118.         getpartymember .party1;
  119.         if( $@partymembercount != .count_req || !instance_check_party( .party1,.count_req ) )
  120.             .party1 = 0;
  121.     }
  122.     else if( getpartyname( .party2 ) != "null" ) {
  123.         getpartymember .party2;
  124.         if( $@partymembercount != .count_req || !instance_check_party( .party2,.count_req ) )
  125.             .party2 = 0;
  126.     }
  127.     return;
  128.  
  129. function isreq {
  130.     if( strcharinfo(3) == .map_event$ && .start && ( getcharid(1) == .party1 || getcharid(1) == .party2 ) ) return 1;
  131.     return 0;
  132. }
  133. OnInit:
  134. waitingroom "3vs3 Party",0;
  135. end;
  136.     .map_event$ = "guild_vs2";  // seu mapa de eventos
  137.     .count_req = 3; // contagem necessária na party para iniciar o evento
  138.     .wait = 20;     // tempo em segundos para ser ressuscitar
  139.     setarray .item_id, 501,502;     // item id array gained
  140.     setarray .item_count, 1,3;  // item count array gained - must be same size of .item_id array
  141.  
  142. // Don't touch this part
  143. // ---------------------
  144.     .size_reward = getarraysize( .item_id );
  145.     setmapflag .map_event$,mf_noteleport;
  146.     setmapflag .map_event$,mf_nowarp;
  147.     setmapflag .map_event$,mf_nowarpto;
  148.     setmapflag .map_event$,mf_nomemo;
  149.     setmapflagnosave .map_event$,"prontera",0,0;
  150.     setmapflag .map_event$,mf_partylock;
  151.     setmapflag .map_event$,mf_pvp;
  152.     end;
  153.    
  154. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement