Jump to content
  • 0

Dispell all buffs on entering pvp room


miyakee

Question


  • Group:  Members
  • Topic Count:  7
  • Topics Per Day:  0.00
  • Content Count:  25
  • Reputation:   0
  • Joined:  05/18/12
  • Last Seen:  

Hi guys,

Is there a code to remove all buffs on a character while entering the pvp room?

THanks!

Link to comment
Share on other sites

16 answers to this question

Recommended Posts

  • 1

  • Group:  Members
  • Topic Count:  3
  • Topics Per Day:  0.00
  • Content Count:  224
  • Reputation:   22
  • Joined:  03/23/12
  • Last Seen:  

  	 SC_end    SC_ALL;

Link to comment
Share on other sites


  • Group:  Forum Moderator
  • Topic Count:  93
  • Topics Per Day:  0.02
  • Content Count:  10013
  • Reputation:   2348
  • Joined:  10/28/11
  • Last Seen:  

sc_end sc_all;
warp "mapname",x,y;

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  72
  • Topics Per Day:  0.02
  • Content Count:  2997
  • Reputation:   1130
  • Joined:  05/27/12
  • Last Seen:  

Note that the command will also end statuses like "Falcon Rental", etc. which you probably wouldn't want it to. In that case, you'll have to put together an "sc_end" list yourself: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk/db/const.txt

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  7
  • Topics Per Day:  0.00
  • Content Count:  25
  • Reputation:   0
  • Joined:  05/18/12
  • Last Seen:  

Thanks Guys, ill try it.

It worked! Thanks Euphy!

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  29
  • Topics Per Day:  0.01
  • Content Count:  375
  • Reputation:   88
  • Joined:  12/30/11
  • Last Seen:  

you will have problem when you use @mute command at an user. he may remove mute command using sc_end sc_all

pvp2:    callfunc("dispell");    warp    "pvp_n_1-3",0,0;    close;

make another npc:

function    script    dispell    {
   while ( .@STATUS < 297 ) {
       if (
           .@STATUS != SC_WEIGHT50 &&
           .@STATUS != SC_WEIGHT90 &&
           .@STATUS != SC_NOCHAT &&
           .@STATUS != SC_XMAS &&
           .@STATUS != SC_SUMMER &&
           .@STATUS != SC_JAILED
       )
           sc_end .@STATUS;
       set .@STATUS, .@STATUS+1;
   }
   return;
}

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  7
  • Topics Per Day:  0.00
  • Content Count:  25
  • Reputation:   0
  • Joined:  05/18/12
  • Last Seen:  

ohh thanks Alexandia! That was awesome!

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  43
  • Topics Per Day:  0.01
  • Content Count:  815
  • Reputation:   86
  • Joined:  10/26/12
  • Last Seen:  

you will have problem when you use @mute command at an user. he may remove mute command using sc_end sc_all

pvp2:	callfunc("dispell");	warp	"pvp_n_1-3",0,0;	close;

make another npc:

function	script	dispell	{
while ( .@STATUS < 297 ) {
	if (
		.@STATUS != SC_WEIGHT50 &&
		.@STATUS != SC_WEIGHT90 &&
		.@STATUS != SC_NOCHAT &&
		.@STATUS != SC_XMAS &&
		.@STATUS != SC_SUMMER &&
		.@STATUS != SC_JAILED
	)
		sc_end .@STATUS;
	set .@STATUS, .@STATUS+1;
}
return;
}

is this function will work on my script?

zhakastia,104,68,3    script    PvP Warper    413,{

   mes "[PvP Warper]";
   mes "Which arena do you want to go to?";
   next;
   switch(select("Normal PvP ["+getmapusers("guild_vs5")+"/100]:Dispel PvP ["+getmapusers("guild_vs3")+"/100]:No Healing Potions PvP ["+getmapusers("guild_vs2")+"/100]")) {
   case 1:    // Normal PvP
       if (getmapusers("prt_are01") > 99) callsub S_full;
       warp "guild_vs5",0,0;
       end;

   Case 2: // Dispel PvP
       if (getmapusers("guild_vs3") > 99) callsub S_full;
       warp "guild_vs3",0,0;
       end;

   Case 3: // No Healing Potions PvP
       if (getmapusers("guild_vs2") > 99) callsub S_full;
       warp "guild_vs2",0,0;
       end;


   }

S_full:
   mes " ";
   mes "I'm sorry, this arena is full.  Please try again later...";
   close;


}

prt_are01,150,130,4    script    PvP Exit    868,{
   warp "prontera",0,0;
   end;

}


//============= MAP FLAG ===============
// Player
guild_vs3    mapflag    nosave
guild_vs3    mapflag    noteleport
guild_vs3    mapflag    nowarpto
guild_vs3    mapflag    nowarp
guild_vs3    mapflag    nomemo
guild_vs3    mapflag    nopenalty
guild_vs3    mapflag    nobranch
guild_vs3    mapflag    noicewall
guild_vs3    mapflag    noreturn
guild_vs3    mapflag    pvp_noguild
guild_vs5    mapflag    noteleport
guild_vs5    mapflag    nowarp
guild_vs5    mapflag    nosave
guild_vs5    mapflag    nopenalty
guild_vs5    mapflag    nobranch
guild_vs5    mapflag    noicewall
guild_vs5    mapflag    pvp_noguild
guild_vs2    mapflag    nopenalty
guild_vs2    mapflag    nosave    SavePoint
guild_vs2    mapflag    nowarp
guild_vs2    mapflag    noteleport
guild_vs2    mapflag    nomemo
guild_vs2    mapflag    loadevent
guild_vs2    mapflag    noreturn
guild_vs2    mapflag    nobranch
guild_vs2    mapflag    pvp_noguild

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  0
  • Topics Per Day:  0
  • Content Count:  205
  • Reputation:   19
  • Joined:  10/12/12
  • Last Seen:  

EDIT:

Updated at Post #11

Edited by Ryokem
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  43
  • Topics Per Day:  0.01
  • Content Count:  815
  • Reputation:   86
  • Joined:  10/26/12
  • Last Seen:  

Try this

zhakastia,104,68,3	script	PvP Warper	413,{

mes "[PvP Warper]";
mes "Which arena do you want to go to?";
next;
switch(select("Normal PvP ["+getmapusers("guild_vs5")+"/100]:Dispel PvP ["+getmapusers("guild_vs3")+"/100]:No Healing Potions PvP ["+getmapusers("guild_vs2")+"/100]")) {
case 1:	// Normal PvP
	if (getmapusers("prt_are01") > 99) callsub S_full;
	set .@map$, "guild_vs5";
	break;

Case 2: // Dispel PvP
	if (getmapusers("guild_vs3") > 99) callsub S_full;
	set .@map$, "guild_vs3";
	break;

Case 3: // No Healing Potions PvP
	if (getmapusers("guild_vs2") > 99) callsub S_full;
	set .@map$, "guild_vs2";
	break;
}

for( .@i = 0; .@i < 308; .@i++ )
	if( (.@i != 53) && (.@i != 54) && (.@i != 249) ) //Do not dispell SC_WEIGHT50, SC_WEIGHT90, SC_JAILED
		 sc_end .@i;

warp .@map$, 0, 0;
end;

S_full:
mes " ";
mes "I'm sorry, this arena is full.  Please try again later...";
close;


}

prt_are01,150,130,4	script	PvP Exit	868,{
warp "prontera",0,0;
end;

}


//============= MAP FLAG ===============
// Player
guild_vs3	mapflag	nosave
guild_vs3	mapflag	noteleport
guild_vs3	mapflag	nowarpto
guild_vs3	mapflag	nowarp
guild_vs3	mapflag	nomemo
guild_vs3	mapflag	nopenalty
guild_vs3	mapflag	nobranch
guild_vs3	mapflag	noicewall
guild_vs3	mapflag	noreturn
guild_vs3	mapflag	pvp_noguild
guild_vs5	mapflag	noteleport
guild_vs5	mapflag	nowarp
guild_vs5	mapflag	nosave
guild_vs5	mapflag	nopenalty
guild_vs5	mapflag	nobranch
guild_vs5	mapflag	noicewall
guild_vs5	mapflag	pvp_noguild
guild_vs2	mapflag	nopenalty
guild_vs2	mapflag	nosave	SavePoint
guild_vs2	mapflag	nowarp
guild_vs2	mapflag	noteleport
guild_vs2	mapflag	nomemo
guild_vs2	mapflag	loadevent
guild_vs2	mapflag	noreturn
guild_vs2	mapflag	nobranch
guild_vs2	mapflag	pvp_noguild

All room turn to dispell i want only 1 room that what listed on the rooms

   Case 2: // Dispel PvP
    if (getmapusers("guild_vs3") > 99) callsub S_full;
    set .@map$, "guild_vs3";
    break;

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  0
  • Topics Per Day:  0
  • Content Count:  205
  • Reputation:   19
  • Joined:  10/12/12
  • Last Seen:  

All room turn to dispell i want only 1 room that what listed on the rooms

My bad.

zhakastia,104,68,3	script	PvP Warper	413,{

function dispell__;

mes "[PvP Warper]";
mes "Which arena do you want to go to?";
next;
switch(select("Normal PvP ["+getmapusers("guild_vs5")+"/100]:Dispel PvP ["+getmapusers("guild_vs3")+"/100]:No Healing Potions PvP ["+getmapusers("guild_vs2")+"/100]")) {
case 1:	// Normal PvP
	if (getmapusers("prt_are01") > 99) callsub S_full;
	set .@map$, "guild_vs5";
	break;

Case 2: // Dispel PvP
	if (getmapusers("guild_vs3") > 99) callsub S_full;
	set .@map$, "guild_vs3";

	dispell__();

	break;

Case 3: // No Healing Potions PvP
	if (getmapusers("guild_vs2") > 99) callsub S_full;
	set .@map$, "guild_vs2";
	break;
}

warp .@map$, 0, 0;
end;

S_full:
mes " ";
mes "I'm sorry, this arena is full.  Please try again later...";
close;

function	dispell__	{

for( .@i = 0; .@i < 308; .@i++ )
if( (.@i != 53) && (.@i != 54) && (.@i != 249) && (.@i != 103)  ) //Do not dispell SC_WEIGHT50, SC_WEIGHT90, SC_JAILED, SC_NOCHAT
	 sc_end .@i;
return;
}


}

prt_are01,150,130,4	script	PvP Exit	868,{
warp "prontera",0,0;
end;

}


//============= MAP FLAG ===============
// Player
guild_vs3	mapflag	nosave
guild_vs3	mapflag	noteleport
guild_vs3	mapflag	nowarpto
guild_vs3	mapflag	nowarp
guild_vs3	mapflag	nomemo
guild_vs3	mapflag	nopenalty
guild_vs3	mapflag	nobranch
guild_vs3	mapflag	noicewall
guild_vs3	mapflag	noreturn
guild_vs3	mapflag	pvp_noguild
guild_vs5	mapflag	noteleport
guild_vs5	mapflag	nowarp
guild_vs5	mapflag	nosave
guild_vs5	mapflag	nopenalty
guild_vs5	mapflag	nobranch
guild_vs5	mapflag	noicewall
guild_vs5	mapflag	pvp_noguild
guild_vs2	mapflag	nopenalty
guild_vs2	mapflag	nosave	SavePoint
guild_vs2	mapflag	nowarp
guild_vs2	mapflag	noteleport
guild_vs2	mapflag	nomemo
guild_vs2	mapflag	loadevent
guild_vs2	mapflag	noreturn
guild_vs2	mapflag	nobranch
guild_vs2	mapflag	pvp_noguild

Edited by Ryokem
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  43
  • Topics Per Day:  0.01
  • Content Count:  815
  • Reputation:   86
  • Joined:  10/26/12
  • Last Seen:  

All room turn to dispell i want only 1 room that what listed on the rooms

My bad.

zhakastia,104,68,3	script	PvP Warper	413,{

mes "[PvP Warper]";
mes "Which arena do you want to go to?";
next;
switch(select("Normal PvP ["+getmapusers("guild_vs5")+"/100]:Dispel PvP ["+getmapusers("guild_vs3")+"/100]:No Healing Potions PvP ["+getmapusers("guild_vs2")+"/100]")) {
case 1:	// Normal PvP
	if (getmapusers("prt_are01") > 99) callsub S_full;
	set .@map$, "guild_vs5";
	break;

Case 2: // Dispel PvP
	if (getmapusers("guild_vs3") > 99) callsub S_full;
	set .@map$, "guild_vs3";

	dispell__();

	break;

Case 3: // No Healing Potions PvP
	if (getmapusers("guild_vs2") > 99) callsub S_full;
	set .@map$, "guild_vs2";
	break;
}

warp .@map$, 0, 0;
end;

S_full:
mes " ";
mes "I'm sorry, this arena is full.  Please try again later...";
close;

function	dispell__	{

for( .@i = 0; .@i < 308; .@i++ )
if( (.@i != 53) && (.@i != 54) && (.@i != 249) && (.@i != 103)  ) //Do not dispell SC_WEIGHT50, SC_WEIGHT90, SC_JAILED, SC_NOCHAT
	 sc_end .@i;
return;
}


}

prt_are01,150,130,4	script	PvP Exit	868,{
warp "prontera",0,0;
end;

}


//============= MAP FLAG ===============
// Player
guild_vs3	mapflag	nosave
guild_vs3	mapflag	noteleport
guild_vs3	mapflag	nowarpto
guild_vs3	mapflag	nowarp
guild_vs3	mapflag	nomemo
guild_vs3	mapflag	nopenalty
guild_vs3	mapflag	nobranch
guild_vs3	mapflag	noicewall
guild_vs3	mapflag	noreturn
guild_vs3	mapflag	pvp_noguild
guild_vs5	mapflag	noteleport
guild_vs5	mapflag	nowarp
guild_vs5	mapflag	nosave
guild_vs5	mapflag	nopenalty
guild_vs5	mapflag	nobranch
guild_vs5	mapflag	noicewall
guild_vs5	mapflag	pvp_noguild
guild_vs2	mapflag	nopenalty
guild_vs2	mapflag	nosave	SavePoint
guild_vs2	mapflag	nowarp
guild_vs2	mapflag	noteleport
guild_vs2	mapflag	nomemo
guild_vs2	mapflag	loadevent
guild_vs2	mapflag	noreturn
guild_vs2	mapflag	nobranch
guild_vs2	mapflag	pvp_noguild

cant talk to the npc o.o because of this lol

dispell__();

Edited by Mootie
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  0
  • Topics Per Day:  0
  • Content Count:  205
  • Reputation:   19
  • Joined:  10/12/12
  • Last Seen:  

Show errors O.o

Are you using rA btw?

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  43
  • Topics Per Day:  0.01
  • Content Count:  815
  • Reputation:   86
  • Joined:  10/26/12
  • Last Seen:  

yeah i am using a rA 1 moment let me go to my dedicated and check for the error

here

post-9398-0-89672300-1353322293_thumb.png

i guess i fixed it using this

callfunc("dispell");

Edited by Mootie
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  9
  • Topics Per Day:  0.00
  • Content Count:  379
  • Reputation:   304
  • Joined:  11/10/11
  • Last Seen:  

Add at the beginning of your script:

function dispell__;

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  0
  • Topics Per Day:  0
  • Content Count:  205
  • Reputation:   19
  • Joined:  10/12/12
  • Last Seen:  

Oh yeah, I forgot to initialize the function :<

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  4
  • Topics Per Day:  0.00
  • Content Count:  44
  • Reputation:   48
  • Joined:  11/19/11
  • Last Seen:  

Hmm...haven't done this for a while so lets see how it goes. (forgive any syntax errors, still setting up my server so I can't test =P)

This one is abit different. During dispell only needs to loop as many times as needed without having to do any comparisons. Buff list was taken from the dispell skill inside source.

- script dispeller -1,{
function DispellBuff;
OnInit:
 freeloop(1);
 DispellBuff(SC_WEIGHT50);
 DispellBuff(SC_WEIGHT90);
 DispellBuff(SC_HALLUCINATION);
 DispellBuff(SC_STRIPWEAPON);
 DispellBuff(SC_STRIPSHIELD);
 DispellBuff(SC_STRIPARMOR);
 DispellBuff(SC_STRIPHELM);
 DispellBuff(SC_CP_WEAPON);
 DispellBuff(SC_CP_SHIELD);
 DispellBuff(SC_CP_ARMOR);
 DispellBuff(SC_CP_HELM);
 DispellBuff(SC_COMBO);
 DispellBuff(SC_STRFOOD);
 DispellBuff(SC_AGIFOOD);
 DispellBuff(SC_VITFOOD);
 DispellBuff(SC_INTFOOD);
 DispellBuff(SC_DEXFOOD);
 DispellBuff(SC_LUKFOOD);
 DispellBuff(SC_HITFOOD);
 DispellBuff(SC_FLEEFOOD);
 DispellBuff(SC_BATKFOOD);
 DispellBuff(SC_WATKFOOD);
 DispellBuff(SC_MATKFOOD);
 DispellBuff(SC_DANCING);
 DispellBuff(SC_EDP);
 DispellBuff(SC_AUTOBERSERK);
 DispellBuff(SC_CARTBOOST);
 DispellBuff(SC_MELTDOWN);
 DispellBuff(SC_SAFETYWALL);
 DispellBuff(SC_SMA);
 DispellBuff(SC_SPEEDUP0);
 DispellBuff(SC_NOCHAT);
 DispellBuff(SC_ANKLE);
 DispellBuff(SC_SPIDERWEB);
 DispellBuff(SC_JAILED);
 DispellBuff(SC_ITEMBOOST);
 DispellBuff(SC_EXPBOOST);
 DispellBuff(SC_LIFEINSURANCE);
 DispellBuff(SC_BOSSMAPINFO);
 DispellBuff(SC_PNEUMA);
 DispellBuff(SC_AUTOSPELL);
 DispellBuff(SC_INCHITRATE);
 DispellBuff(SC_INCATKRATE);
 DispellBuff(SC_NEN);
 DispellBuff(SC_READYSTORM);
 DispellBuff(SC_READYDOWN);
 DispellBuff(SC_READYTURN);
 DispellBuff(SC_READYCOUNTER);
 DispellBuff(SC_DODGE);
 DispellBuff(SC_WARM);
 DispellBuff(SC_SPEEDUP1);
 DispellBuff(SC_AUTOTRADE);
 DispellBuff(SC_CRITICALWOUND);
 DispellBuff(SC_JEXPBOOST);
 DispellBuff(SC_INVINCIBLE);
 DispellBuff(SC_INVINCIBLEOFF);
 DispellBuff(SC_HELLPOWER);
 DispellBuff(SC_MANU_ATK);
 DispellBuff(SC_MANU_DEF);
 DispellBuff(SC_SPL_ATK);
 DispellBuff(SC_SPL_DEF);
 DispellBuff(SC_MANU_MATK);
 DispellBuff(SC_SPL_MATK);
 DispellBuff(SC_RICHMANKIM);
 DispellBuff(SC_ETERNALCHAOS);
 DispellBuff(SC_DRUMBATTLE);
 DispellBuff(SC_NIBELUNGEN);
 DispellBuff(SC_ROKISWEIL);
 DispellBuff(SC_INTOABYSS);
 DispellBuff(SC_SIEGFRIED);
 DispellBuff(SC_FOOD_STR_CASH);
 DispellBuff(SC_FOOD_AGI_CASH);
 DispellBuff(SC_FOOD_VIT_CASH);
 DispellBuff(SC_FOOD_DEX_CASH);
 DispellBuff(SC_FOOD_INT_CASH);
 DispellBuff(SC_FOOD_LUK_CASH);
 DispellBuff(SC_SEVENWIND);
 DispellBuff(SC_MIRACLE);
 DispellBuff(SC_S_LIFEPOTION);
 DispellBuff(SC_L_LIFEPOTION);
 DispellBuff(SC_INCHEALRATE);
 DispellBuff(SC_ELECTRICSHOCKER);
 DispellBuff(SC__STRIPACCESSORY);
 DispellBuff(SC_COCKTAIL_WARG_BLOOD);
 DispellBuff(SC_MINOR_BBQ);
 DispellBuff(SC_DROCERA_HERB_STEAMED);
 DispellBuff(SC_PUTTI_TAILS_NOODLES);
 DispellBuff(SC_NEUTRALBARRIER_MASTER);
 DispellBuff(SC_NEUTRALBARRIER);
 DispellBuff(SC_STEALTHFIELD_MASTER);
 DispellBuff(SC_STEALTHFIELD);
 DispellBuff(SC_GIANTGROWTH);
 DispellBuff(SC_MILLENNIUMSHIELD);
 DispellBuff(SC_REFRESH);
 DispellBuff(SC_STONEHARDSKIN);
 DispellBuff(SC_VITALITYACTIVATION);
 DispellBuff(SC_FIGHTINGSPIRIT);
 DispellBuff(SC_ABUNDANCE);
 DispellBuff(SC__SHADOWFORM);
 DispellBuff(SC_LEADERSHIP);
 DispellBuff(SC_GLORYWOUNDS);
 DispellBuff(SC_SOULCOLD);
 DispellBuff(SC_HAWKEYES);
 DispellBuff(SC_GUILDAURA);
 DispellBuff(SC_PUSH_CART);
 DispellBuff(SC_RAISINGDRAGON);
 DispellBuff(SC_GT_ENERGYGAIN);
 DispellBuff(SC_GT_CHANGE);
 DispellBuff(SC_GT_REVITALIZE);
 DispellBuff(SC_REFLECTDAMAGE);
 DispellBuff(SC_INSPIRATION);
 DispellBuff(SC_EXEEDBREAK);
 DispellBuff(SC_FORCEOFVANGUARD);
 DispellBuff(SC_BANDING);
 DispellBuff(SC_DUPLELIGHT);
 DispellBuff(SC_EXPIATIO);
 DispellBuff(SC_LAUDAAGNUS);
 DispellBuff(SC_LAUDARAMUS);
 DispellBuff(SC_GATLINGFEVER);
 DispellBuff(SC_INCREASING);
 DispellBuff(SC_ADJUSTMENT);
 DispellBuff(SC_MADNESSCANCEL);
 DispellBuff(SC_ASSUMPTIO);
 DispellBuff(SC_BERSERK);
 DispellBuff(SC_SATURDAYNIGHTFEVER);
 freeloop(0);
 end;

OnDispell:
 while(.@i < .buffCount) {
  sc_end getd(".buff_" + .@i);
  .@i += 1;
 }
 end;

function DispellBuff { //<buff_id>
 setd(".buff_" + .buffCount, getarg(0));
 .buffCount += 1;
 return;
}
}

Run using

doevent "dispeller::OnDispell";

  • Upvote 2
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...