miyakee Posted July 2, 2012 Posted July 2, 2012 Hi guys, Is there a code to remove all buffs on a character while entering the pvp room? THanks! Quote
Euphy Posted July 2, 2012 Posted July 2, 2012 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 Quote
miyakee Posted July 3, 2012 Author Posted July 3, 2012 Thanks Guys, ill try it. It worked! Thanks Euphy! Quote
Fluffle Puff Posted July 3, 2012 Posted July 3, 2012 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; } Quote
Mootie Posted November 19, 2012 Posted November 19, 2012 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 Quote
Ryokem Posted November 19, 2012 Posted November 19, 2012 (edited) EDIT: Updated at Post #11 Edited November 19, 2012 by Ryokem Quote
Mootie Posted November 19, 2012 Posted November 19, 2012 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; Quote
Ryokem Posted November 19, 2012 Posted November 19, 2012 (edited) 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 November 19, 2012 by Ryokem Quote
Mootie Posted November 19, 2012 Posted November 19, 2012 (edited) 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 November 19, 2012 by Mootie Quote
Mootie Posted November 19, 2012 Posted November 19, 2012 (edited) yeah i am using a rA 1 moment let me go to my dedicated and check for the error here i guess i fixed it using this callfunc("dispell"); Edited November 19, 2012 by Mootie Quote
KeyWorld Posted November 19, 2012 Posted November 19, 2012 Add at the beginning of your script: function dispell__; Quote
Ryokem Posted November 19, 2012 Posted November 19, 2012 Oh yeah, I forgot to initialize the function :< Quote
ToastOfDoom Posted November 19, 2012 Posted November 19, 2012 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"; 2 Quote
Question
miyakee
Hi guys,
Is there a code to remove all buffs on a character while entering the pvp room?
THanks!
16 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.