Advertisement
Guest User

Pt vs Pt Help

a guest
Oct 31st, 2012
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.16 KB | None | 0 0
  1. //===== eAthena Script =======================================//
  2. //= Party vs Party Npc //
  3. //===== Originally By: =======================================//
  4. //= icabit69 //
  5. //===== Credits for help goes to: ============================//
  6. //= Rahuldev345 //
  7. //= Emistry //
  8. //===== Edited by: ===========================================//
  9. //= MrVandalBus //
  10. //==============================================================//
  11. //Warning! Dont edit unless you know what you are doing!
  12. //Updates:
  13. //* Fix the prize after the battle (Map 'valkyrie' instead of 'bat_b01')
  14. //* Easier to edit
  15. //* If the team loses, the players will be ressurected (If dead of course)
  16. //* Bug Exploit Thingy (only Lvl 60 GM can warp to there)
  17. valkyrie,49,49,0 script teamwarprize -1,2,2,{
  18. OnTouch:
  19. getitem 20078,15; //edit the prize <item>,<amount>
  20. warp "prontera",156,191;
  21. close;
  22. }
  23. prontera,155,166,4 script Party vs Party (5v5)::teamwar 796,{
  24. if (getgmlevel() >= 99){
  25. menu "standard menu",standard,"reset",lend1;
  26. }
  27. standard:
  28. set $@members,5; // number of party members change this to your party size you want
  29. set $@start,0;
  30. getpartymember(getcharid(1));
  31. set @partymembercount,$@partymembercount;
  32. if ( $@start==1) {
  33. mes "The Sign Ups are currently unavailable because a match is in progress. Don't hesitate to try again in a few minutes!";
  34. close;
  35. }
  36. if ( @partymembercount==$@members) {
  37. mes "Hello "+strcharinfo(0)+" what do you want?";
  38. if (($@TeamID1!=0) && ($@TeamID2!=0))
  39. {
  40. mes "The Sign Ups are currently unavailable because a match is in progress. Don't hesitate to try again in a few minutes!";
  41. close;
  42. }
  43. if ( getpartyleader(getcharid(1),2) != getcharid(0) )
  44. {
  45. mes "Only party leader have the right to sign up / out from the game with me..";
  46. close;
  47. }
  48. mes "Choose your team to register.";
  49. switch(select("Red Team - [" + GetPartyName($@TeamID1) + "] :Blue Team - [" + GetPartyName($@TeamID2) + "]"))
  50. {
  51. case 1: mes "[ Team War ]";
  52. if ($@TeamID1==0 || getpartyname($@TeamID1)=="null")
  53. {
  54. getpartymember(getcharid(1)),1;
  55. getpartymember(getcharid(1)),2;
  56. copyarray $@partymembercidt1[0],$@partymembercid[0],$@members;
  57. copyarray $@partymemberaid1[0],$@partymemberaid[0],$@members;
  58. for (set .@i,0; .@i<$@members; set .@i,.@i+1) {
  59. if(isloggedin($@partymemberaid1[.@i],$@partymembercidt1[.@i])) set .@count,.@count+1;
  60. }
  61. if(.@count < $@members) {
  62. mes "You need all your party members to be online to Register";
  63. close;
  64. }
  65. set $@TeamID1, getcharid(1);
  66. initnpctimer;
  67. mes "Your Party is now subscribed, good luck!";
  68. announce "Team 1 : [ " +getpartyname($@TeamID1)+ " ] has sign up For the Team War!",bc_blue|bc_map;
  69. doevent "teamwar::OnSubscriptionTeam";
  70. close;
  71. } else {
  72. mes "I'm sorry! Another Team has sign up before you...";
  73. close;
  74. }
  75. case 2: mes "[ Team War ]";
  76. if ($@TeamID2==0 || getpartyname($@TeamID2)=="null")
  77. {
  78. getpartymember(getcharid(1)),1;
  79. getpartymember(getcharid(1)),2;
  80. copyarray $@partymembercidt2[0],$@partymembercid[0],$@members;
  81. copyarray $@partymemberaid2[0],$@partymemberaid[0],$@members;
  82. for (set .@i,0; .@i<$@members; set .@i,.@i+1) {
  83. if(isloggedin($@partymemberaid2[.@i],$@partymembercidt2[.@i])) set .@count,.@count+1;
  84. }
  85. if(.@count < $@members) {
  86. mes "You need all your party members to be online to Register";
  87. close;
  88. }
  89. set $@TeamID2, getcharid(1);
  90. initnpctimer;
  91. mes "Your Party is now subscribed, good luck!";
  92. announce "Team 2 : [ " +getpartyname($@TeamID2)+ " ] has sign up For the Team War!",bc_blue|bc_map;
  93. doevent "teamwar::OnSubscriptionTeam";
  94. close;
  95. }
  96. else
  97. {
  98. mes "I'm sorry! Another Team has sign up before you...";
  99. close;
  100. }
  101. }
  102. } else {
  103. mes "[Event Handler]";
  104. mes "Please contact your party leader.";
  105. mes "Your team must have a party consisting of "+$@members+" members.";
  106. close;
  107. }
  108. OnSubscriptionTeam:
  109. getpartymember($@TeamID2),1;
  110. getpartymember($@TeamID2),2;
  111. copyarray $@partymembercidtc2[0],$@partymembercid[0],$@members;
  112. copyarray $@partymemberaidc2[0],$@partymemberaid[0],$@members;
  113. for (set .@i,0; .@i<$@members; set .@i,.@i+1) {
  114. if(isloggedin($@partymemberaidc2[.@i],$@partymembercidtc2[.@i])) set .@countx,.@countx+1;
  115. }
  116. if(.@countx < $@members) {
  117. announce "Team War : "+getpartyname($@TeamID2)+"are not all online the match has been canceled",0;
  118. announce "Team War : registration for 2 new teams are now available",0;
  119. goto lend;
  120. close;
  121. }
  122. for ( .@i, 0; .@i < $@members; .@i++ ) {
  123. if ( isloggedin( $@partymemberaidc2[.@i], $@partymembercidtc2[.@i] ) ) {
  124. attachrid $@partymemberaidc2[.@i];
  125. set pvp3vs3_ori_look, getlook(7);
  126. setlook 7, 521;
  127. }
  128. }
  129. getpartymember($@TeamID1),1;
  130. getpartymember($@TeamID1),2;
  131. copyarray $@partymembercidtc1[0],$@partymembercid[0],$@members;
  132. copyarray $@partymemberaidc1[0],$@partymemberaid[0],$@members;
  133. for (set .@i,0; .@i<$@members; set .@i,.@i+1) {
  134. if(isloggedin($@partymemberaidc1[.@i],$@partymembercidtc1[.@i])) set .@countz,.@countz+1;
  135. }
  136. if(.@countz < $@members) {
  137. announce "Team War : "+getpartyname($@TeamID1)+"are not all online the match has been canceled",0;
  138. announce "Team War : registration for 2 new teams are now available",0;
  139. goto lend;
  140. close;
  141. }
  142. for ( .@i, 0; .@i < $@members; .@i++ ) {
  143. if ( isloggedin( $@partymemberaidc1[.@i], $@partymembercidtc1[.@i] ) ) {
  144. attachrid $@partymemberaidc1[.@i];
  145. set pvp3vs3_ori_look, getlook(7);
  146. setlook 7, 520;
  147. }
  148. }
  149. if($@TeamID1!=0 && $@TeamID2!=0){
  150. announce "Team War : We have 2 Teams signed up now : "+getpartyname($@TeamID1)+" and "+getpartyname($@TeamID2)+".",bc_blue|bc_map;
  151. set @win1, 0;
  152. set @win2, 0;
  153. goto onstart;
  154. }
  155. end;
  156. OnTimer50000:
  157. if (($@TeamID1!=0) && ($@TeamID2!=0)) {
  158. end;
  159. }
  160. stopnpctimer;
  161. set $@TeamID1, 0;
  162. set $@TeamID1, 0;
  163. announce "Team War : we lack teams to start registration for two teams are now available",0;
  164. end;
  165.  
  166. onstart:
  167. warpparty "guild_vs4",7,49,$@TeamID1;
  168. warpparty "guild_vs4",92,49,$@TeamID2;
  169. set $@start,1;
  170. end;
  171. lend:
  172. stopnpctimer;
  173. set $@TeamID1,0;
  174. set $@TeamID2,0;
  175. set $@start,0;
  176. set @win1,0;
  177. set @win2,0;
  178. set @partymembercount,$@members;
  179. end;
  180. lend1:
  181. stopnpctimer;
  182. set $@TeamID1,0;
  183. set $@TeamID2,0;
  184. set $@start,0;
  185. set @win1,0;
  186. set @win2,0;
  187. set @partymembercount,$@members;
  188. announce "Team War has been reset, you may register your team now",0;
  189. close;
  190. end;
  191. OnTimer250000:
  192. Announce "Team War : No Party won due to time limit!",0;
  193. mapwarp "guild_vs4","prontera",156,203;
  194. goto lend;
  195. end;
  196.  
  197. OnPCDieEvent:
  198. OnPCLogoutEvent:
  199. if(strcharinfo(3) != "guild_vs4") end;
  200. setlook 7, pvp3vs3_ori_look;
  201. pvp3vs3_ori_look = 0;
  202. warp "prontera",156,203;
  203. for(set .@i, 0; .@i < $@members; set .@i, .@i + 1) {
  204. if ( $@partymembercidt1[.@i] == getcharid(0)) {
  205. deletearray $@partymembercidt1[.@i], 1;
  206. if( getarraysize($@partymembercidt1) == 0 ) {
  207. set @win2,$@partymembercount;
  208. goto onwin;
  209. }
  210. }
  211. if ( $@partymembercidt2[.@i] == getcharid(0) ) {
  212. deletearray $@partymembercidt2[.@i], 1;
  213. if( getarraysize($@partymembercidt2) == 0 ) {
  214. set @win1,$@partymembercount;
  215. goto onwin;
  216. }
  217. }
  218. }
  219. end;
  220.  
  221. onwin:
  222. if (@win1==0)
  223. {
  224. warpparty "valkyrie",49,49,$@TeamID2;
  225. warpparty "valkyrie",45,45,$@TeamID1;
  226. Announce "Team War :"+GetPartyName($@TeamID2)+" won againts "+GetPartyName($@TeamID1)+"",0;
  227. goto lend;
  228. end;
  229. }
  230. if (@win2==0)
  231. {
  232. warpparty "valkyrie",49,49,$@TeamID1;
  233. warpparty "valkyrie",45,45,$@TeamID2;
  234. Announce "Team War :"+GetPartyName($@TeamID1)+" won againts "+GetPartyName($@TeamID2)+"",0;
  235. goto lend;
  236. end;
  237. }
  238. end;
  239. }
  240. guild_vs4 mapflag nosave
  241. guild_vs4 mapflag nomemo
  242. guild_vs4 mapflag nobranch
  243. guild_vs4 mapflag pvp_noguild
  244. guild_vs4 mapflag nocommand 60
  245. guild_vs4 mapflag noicewall
  246. guild_vs4 mapflag pvp
  247. valkyrie mapflag nosave
  248. valkyrie mapflag nomemo
  249. valkyrie mapflag nobranch
  250. valkyrie mapflag nocommand 60
  251. valkyrie mapflag pvp_noparty
  252. valkyrie mapflag nowarpto 99 //Change the GM level if you desire to
  253. valkyrie mapflag nowarp 99 //Change the GM level if you desire to
  254. valkyrie,45,45,0 script alive -1,2,2,{
  255. OnTouch:
  256. atcommand "@alive";
  257. warp "prontera",156,191;
  258. close;
  259. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement