Jump to content
  • 0

PVP Arena script help


Budots

Question


  • Group:  Members
  • Topic Count:  69
  • Topics Per Day:  0.02
  • Content Count:  200
  • Reputation:   1
  • Joined:  09/25/13
  • Last Seen:  

guys i have my new private server ragnarok im having hard time scripting my pvp arena

 

i want that my arena would announce if a player enters and also announce if the player kill someone

 

if you can add dota like announcements i would be very happy

 

here's the script that i use,

 


// Made by iTouch
// ----------------------------------------------------------------------------
// Ultimate PvP Warper ver. 1
// Features:
// Baby PvP Room
// PvP Square(Every 2 days Random PvP Room)
// PvP Nightmare
// PvP Lowlvl( Supports 1 - 150 Lvl)
// PvP No Potion (Berrys , Ygg seed , Any potions , etc. are restricted)
// PvP Non Donator (Got Items are restricted here)
// -----------------------------------------------------------------------------
// ver. 2 update idea:
// Adding a PvP Room that removes the buffs of the player when entering the room
// Adding a PvP Room for GM's Only so GM's will have fun
// -----------------------------------------------------------------------------
// Special thanks to:
// icescope of eAthena for helping me configuring the error at PvP Square
// -----------------------------------------------------------------------------

prontera,155,188,6 script Ultimate PvP Warper 753,{
if (.pvp_square$=="") donpcevent "Ultimate PVP warper::OnClock0000";

mes "[PvP Warper]";
mes "Which arena do you want to go to?";
switch(select("PVP Square ["+getmapusers(.pvp_square$)+"/100]:PVP Nightmare ["+getmapusers("guild_vs3")+"/100]:PVP LowLevel ["+getmapusers("guild_vs1")+"/100]:PVP NoPotion ["+getmapusers("pvp_y_8-2")+"/100]:Non Donator PVP ["+getmapusers("1@orcs")+"/100]:Baby PvP Room ["+getmapusers("pvp_y_1-2")+"/100]")) {
case 1: // PVP Square
if (getmapusers(.pvp_square$) > 99) callsub S_full;
callsub S_payment;
warp .pvp_square$,0,0;
end;

case 2: // PVP Nightmare
if (getmapusers("guild_vs3") > 99) callsub S_full;
callsub S_payment;
warp "guild_vs3",0,0;
end;

case 3: // PVP LowLevel
if (getmapusers("guild_vs1") > 99) callsub S_full;
if (BaseLevel > 150) { // Edit 150 to any maximum Lvl of a player can enter this room
mes "only Base Level 1 - 150 may enter.";
close;
}
callsub S_payment;
warp "guild_vs1",0,0;
end;

case 4: // PVP NoPotion
if (getmapusers("pvp_y_8-2") > 99) callsub S_full;
for( set .@i,0; .@i<getarraysize(.NoPotion_ids); set .@i,.@i+1 ) {
if (countitem(.NoPotion_ids[.@i])) {
mes "You can not bring potions in this pvp.";
close;
}
}
callsub S_payment;
warp "pvp_y_8-2",0,0;
end;

case 5: // Non Donator PVP
if (getmapusers("1@orcs") > 99) callsub S_full;
for( set .@i,0; .@i<getarraysize(.NoDonator_ids); set .@i,.@i+1 ) {
if (countitem(.NoDonator_ids[.@i])) {
mes "You can not bring God items in this pvp.";
close;
}
}
callsub S_payment;
warp "1@orcs",0,0;
end;
Case 6: // Baby PvP Room
if (getmapusers("pvp_y_1-2") > 99) callsub S_full;
if (class < 4023 || class > 4045) goto L_NotBaby;
callsub S_payment;
warp "pvp_y_1-2",0,0;
end;
L_NotBaby:
mes "Only baby can enter this room";
close;

}

S_full:
mes " ";
mes "I'm sorry, this arena is full. Please try again later...";
close;
S_payment:
if (Zeny < (200*BaseLevel + 800)) {
mes "You don't have enough zeny.";
mes "It costs "+(200*BaseLevel + 800)+" zeny for you to enter.";
close;
}
set Zeny, Zeny - (200*BaseLevel + 800);
return;

OnInit:
waitingroom "PvP Warper",0;
end;
OnClock0000:
// set the "PVP Square" map, based on day of the weeek
switch(gettime(4)) {
case 0: // Sunday
case 1: // Monday
set .pvp_square$, "guild_vs2";
break;
case 2: // Tuesday
case 3: // Wednesday
set .pvp_square$, "guild_vs5";
break;
case 4: // Thursday
case 5: // Friday
set .pvp_square$, "guild_vs4";
break;
case 6: // Saturday
set .pvp_square$, "guild_vs1-2";
break;
}

// items not allowed in PVP NoPotion
setarray .NoPotion_ids[0], 607, 608;

// items not allowed in Non Donator PVP
setarray .NoDonator_ids[0], 2410, 1530;
end;
}

moscovia.gat,226,198,4 duplicate(Ultimate PvP Warper) Ultimate PvP Warper#1 871
//askydun.gat,96,113,3 duplicate(Ultimate PvP Warper) Ultimate PvP Warper#2 871 // Kliwa
alberta.gat,110,140,3 duplicate(Ultimate PvP Warper) Ultimate PvP Warper#3 871 // Kliwa
aldebaran.gat,147,115,1 duplicate(Ultimate PvP Warper) Ultimate PvP Warper#4 871 // Kliwa
amatsu.gat,207,86,3 duplicate(Ultimate PvP Warper) Ultimate PvP Warper#5 871 // Kliwa
ayothaya.gat,155,117,2 duplicate(Ultimate PvP Warper) Ultimate PvP Warper#6 871 // Kliwa
comodo.gat,206,80,4 duplicate(Ultimate PvP Warper) Ultimate PvP Warper#7 871 // Kliwa
einbech.gat,198,83,4 duplicate(Ultimate PvP Warper) Ultimate PvP Warper#8 871 // Taas Kaliwa
einbroch.gat,174,172,5 duplicate(Ultimate PvP Warper) Ultimate PvP Warper#9 871 // Taas Kaliwa
geffen.gat,125,71,4 duplicate(Ultimate PvP Warper) Ultimate PvP Warper#10 871
gonryun.gat,162,120,4 duplicate(Ultimate PvP Warper) Ultimate PvP Warper#11 871
hugel.gat,89,151,5 duplicate(Ultimate PvP Warper) Ultimate PvP Warper#12 871
izlude.gat,134,90,4 duplicate(Ultimate PvP Warper) Ultimate PvP Warper#13 871
lighthalzen.gat,166,101,4 duplicate(Ultimate PvP Warper) Ultimate PvP Warper#14 871
louyang.gat,214,120,5 duplicate(Ultimate PvP Warper) Ultimate PvP Warper#15 871
xmas.gat,154,136,4 duplicate(Ultimate PvP Warper) Ultimate PvP Warper#16 871
morocc.gat,160,97,4 duplicate(Ultimate PvP Warper) Ultimate PvP Warper#17 871
payon.gat,148,226,4 duplicate(Ultimate PvP Warper) Ultimate PvP Warper#18 871
rachel.gat,135,115,4 duplicate(Ultimate PvP Warper) Ultimate PvP Warper#19 871
veins.gat,219,127,4 duplicate(Ultimate PvP Warper) Ultimate PvP Warper#20 871
yuno.gat,163,170,4 duplicate(Ultimate PvP Warper) Ultimate PvP Warper#21 871
umbala.gat,106,159,3 duplicate(Ultimate PvP Warper) Ultimate PvP Warper#22 871
poring_c02,139,81,4 duplicate(Ultimate PvP Warper) Ultimate PvP Warper#23 871

// Mapflags (No commands)
pvp_y_1-2 mapflag nocommand 99
guild_vs2 mapflag nocommand 99
guild_vs3 mapflag nocommand 99

// Will disable players using @go
pvp_y_1-2 mapflag nowarpto
guild_vs2 mapflag nowarpto
guild_vs3 mapflag nowarpto

// Will disable players using @go
pvp_y_1-2 mapflag nowarp
guild_vs2 mapflag nowarp
guild_vs3 mapflag nowarp

// Will disable players using @go
pvp_y_1-2 mapflag pvp_noparty
guild_vs2 mapflag pvp_noparty
guild_vs3 mapflag pvp_noparty

// Will disable players using @go
pvp_y_1-2 mapflag nobranch
guild_vs2 mapflag nobranch
guild_vs3 mapflag nobranch

// Will disable players using @go
pvp_y_1-2 mapflag nomemo
guild_vs2 mapflag nomemo
guild_vs3 mapflag nomemo

// Will disable players using @go
pvp_y_1-2 mapflag pvp
guild_vs2 mapflag pvp
guild_vs3 mapflag pvp

Edited by gmmontoy
change to code bbcode. Do not use FULL CAPS.
Link to comment
Share on other sites

5 answers to this question

Recommended Posts


  • Group:  Members
  • Topic Count:  50
  • Topics Per Day:  0.01
  • Content Count:  1702
  • Reputation:   238
  • Joined:  09/05/12
  • Last Seen:  

Change the case part by this :

    case 1:    // PVP Square
        if (getmapusers(.pvp_square$) > 99) callsub S_full;
        callsub S_payment;
        warp .pvp_square$,0,0;
        announce strcharinfo(0)+ " enter " +.pvp_square$+ "",0;
        end;
    case 2:    // PVP Nightmare
        if (getmapusers("guild_vs3") > 99) callsub S_full;
        callsub S_payment;
        warp "guild_vs3",0,0;
        announce strcharinfo(0)+ " enter guild_vs3",0;
        end;
    case 3:    // PVP LowLevel
        if (getmapusers("guild_vs1") > 99) callsub S_full;
        if (BaseLevel > 150) { // Edit 150 to any maximum Lvl of a player can enter this room
            mes "only Base Level 1 - 150 may enter.";
            close;
        }
        callsub S_payment;
        warp "guild_vs1",0,0;
        announce strcharinfo(0)+ " enter guild_vs1",0;
        end;
    case 4:    // PVP NoPotion
        if (getmapusers("pvp_y_8-2") > 99) callsub S_full;
        for( set .@i,0; .@i<getarraysize(.NoPotion_ids); set .@i,.@i+1 ) {
            if (countitem(.NoPotion_ids[.@i])) {
                mes "You can not bring potions in this pvp.";
                close;
            }
        }
        callsub S_payment;
        warp "pvp_y_8-2",0,0;
        announce strcharinfo(0)+ " enter pvp_y_8-2",0;
        end;
    case 5:    // Non Donator PVP
        if (getmapusers("1@orcs") > 99) callsub S_full;
        for( set .@i,0; .@i<getarraysize(.NoDonator_ids); set .@i,.@i+1 ) {
            if (countitem(.NoDonator_ids[.@i])) {
                mes "You can not bring God items in this pvp.";
                close;
            }
        }
        callsub S_payment;
        warp "1@orcs",0,0;
        announce strcharinfo(0)+ " enter 1@orcs",0;
        end;
    Case 6: // Baby PvP Room
        if (getmapusers("pvp_y_1-2") > 99) callsub S_full;
        if (class < 4023 || class > 4045) goto L_NotBaby;
        callsub S_payment;
        warp "pvp_y_1-2",0,0;
        announce strcharinfo(0)+ " enter pvp_y_1-2",0;
        end;
also announce if the player kill someone

Put this :

OnPCKillEvent:
    if ( strcharinfo(3) == "your_pvp_map" )
        announce strcharinfo(0)+ " killed " +rid2name(killedrid);
    end;
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  69
  • Topics Per Day:  0.02
  • Content Count:  200
  • Reputation:   1
  • Joined:  09/25/13
  • Last Seen:  

Change the case part by this :

    case 1:    // PVP Square
        if (getmapusers(.pvp_square$) > 99) callsub S_full;
        callsub S_payment;
        warp .pvp_square$,0,0;
        announce strcharinfo(0)+ " enter " +.pvp_square "",0;
        end;
    case 2:    // PVP Nightmare
        if (getmapusers("guild_vs3") > 99) callsub S_full;
        callsub S_payment;
        warp "guild_vs3",0,0;
        announce strcharinfo(0)+ " enter guild_vs3",0;
        end;
    case 3:    // PVP LowLevel
        if (getmapusers("guild_vs1") > 99) callsub S_full;
        if (BaseLevel > 150) { // Edit 150 to any maximum Lvl of a player can enter this room
            mes "only Base Level 1 - 150 may enter.";
            close;
        }
        callsub S_payment;
        warp "guild_vs1",0,0;
        announce strcharinfo(0)+ " enter guild_vs1",0;
        end;
    case 4:    // PVP NoPotion
        if (getmapusers("pvp_y_8-2") > 99) callsub S_full;
        for( set .@i,0; .@i<getarraysize(.NoPotion_ids); set .@i,.@i+1 ) {
            if (countitem(.NoPotion_ids[.@i])) {
                mes "You can not bring potions in this pvp.";
                close;
            }
        }
        callsub S_payment;
        warp "pvp_y_8-2",0,0;
        announce strcharinfo(0)+ " enter pvp_y_8-2",0;
        end;
    case 5:    // Non Donator PVP
        if (getmapusers("1@orcs") > 99) callsub S_full;
        for( set .@i,0; .@i<getarraysize(.NoDonator_ids); set .@i,.@i+1 ) {
            if (countitem(.NoDonator_ids[.@i])) {
                mes "You can not bring God items in this pvp.";
                close;
            }
        }
        callsub S_payment;
        warp "1@orcs",0,0;
        announce strcharinfo(0)+ " enter 1@orcs",0;
        end;
    Case 6: // Baby PvP Room
        if (getmapusers("pvp_y_1-2") > 99) callsub S_full;
        if (class < 4023 || class > 4045) goto L_NotBaby;
        callsub S_payment;
        warp "pvp_y_1-2",0,0;
        announce strcharinfo(0)+ " enter pvp_y_1-2",0;
        end;

 

also announce if the player kill someone

Put this :

OnPCKillEvent:
    if ( strcharinfo(3) == "your_pvp_map" )
        announce strcharinfo(0)+ " killed " +rid2name(killedrid);
    end;

Thanks a lot sir now it is working but then i dunno how or where should i place the OnPCKillEvent for it to work properly, can you please make it for me sir?

I place it somewhere on the script but it is now working well :(

THANKS IN ADVANCE :)

Edited by gmmontoy
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  50
  • Topics Per Day:  0.01
  • Content Count:  1702
  • Reputation:   238
  • Joined:  09/05/12
  • Last Seen:  

Put it anywhere on your script

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  69
  • Topics Per Day:  0.02
  • Content Count:  200
  • Reputation:   1
  • Joined:  09/25/13
  • Last Seen:  

Put it anywhere on your script

THANKS A LOT SIR. ITS WORKING NOW!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...