Help in KOTH Bug

dhaisuke

New member
Messages
99
Points
0
Hi Guys i need help regarding my KOTH script, after the the KOTH the winning guild can ecall inside the guild_vs1 what i want is to enable the skill when the koth is start then skill off when it end

here is my script

Code:
-	script	KoE	-1,{OnInit:	disablenpc "The King#KoE";	disablenpc "Exit#KoE";	bindatcmd "koe", strnpcinfo(0)+"::Oncommand", 99,99;	//bindatcmd "skillon","atcmd_pvp::OnAtcommand",60,99;	//bindatcmd "skilloff","atcmd_pvp::OnAtcommand2",60,99;	end;Oncommand:	if ( compare( .@atcmd_parameters$, "on" ) ) goto L_start;	else if ( compare( .@atcmd_parameters$, "off" ) ) goto L_end;	else {		dispbottom "type - '@koe on' to start the event";		dispbottom "type - '@koe off' to end the event";	}	end;L_start:	OnMinute35:	gvgon "guild_vs1";	announce "The King of Emperium Hill has begun!", bc_all;	.start = 1;	//OnAtcommand:	//atcommand "@skillon";	enablenpc "The King#KoE";	disablenpc "Exit#KoE";	$koegid = 0;	donpcevent "::OnRevKoE";	maprespawnguildid "guild_vs1", $koegid, 7;	monster "guild_vs1",49,49,"EMPERIUM",1288,1,"KoE::OnEmpDead";	end;		L_end:	OnMinute55:	gvgoff "guild_vs1";	announce "The King of Emperium Hill is over!", bc_all;	.start = 0;	//OnAtcommand2:	//atcommand "@skilloff";	enablenpc "Exit#KoE";	disablenpc "The King#KoE";	killmonsterall "guild_vs1";	maprespawnguildid "guild_vs1", $koegid, 6;	end;OnEmpDead:	$koegid = getcharid(2);	announce "The current King of Emperium Hill is the ["+ strcharinfo(2) +"] guild.", bc_all;	donpcevent "::OnRevKoE";	maprespawnguildid "guild_vs1", $koegid, 6;	sleep 500;	if ( .start )		monster "guild_vs1",49,49,"EMPERIUM",1288,1,"KoE::OnEmpDead";	end;}// KoE Entrancemellina,85,60,4	script	The King#KoE	58,{    mes "[The King]";	if ( !getcharid(2) ) {		mes "You must have a guild to participate in the ^FF0000King of Emperium Hill Tournament^000000.";		close;	}    switch( rand(1,4) ){        case 1:	warp "guild_vs1", 50, 88; end;        case 2:	warp "guild_vs1", 88, 50; end;        case 3:	warp "guild_vs1", 50, 11; end;        case 4:	warp "guild_vs1", 11, 50; end;	}}// KoE Exitguild_vs1,49,56,5	script	Exit#KoE	51,{	mes "[Exit]";	mes "Thank you for Joining";	mes "You Won PVP Tokens and Cash Points";	if ( getcharid(2) == $koegid )	close2;	getitem 8039,150;	set #CASHPOINTS,#CASHPOINTS + 50;	dispbottom "You got "+#CASHPOINTS+" cash points.";	warp "Save",0,0;	end;}// Flagsguild_vs1,49,38,4	script	King of Emperium Hill#1::koe_flag	722,{	if ( !$koegid ) end;	mes "[King of Emperium Hill]";	mes "The Current King of Emperium Hill is the ["+ getguildname($koegid) +"] guild.";	close;OnRevKoE:	flagemblem $koegid;	end;}guild_vs1,61,49,6	duplicate(koe_flag)	King of Emperium Hill#2	722guild_vs1,38,49,2	duplicate(koe_flag)	King of Emperium Hill#3	722guild_vs1,49,61,0	duplicate(koe_flag)	King of Emperium Hill#4	722guild_vs1	mapflag	nobranchguild_vs1	mapflag	nomemoguild_vs1	mapflag	nopenaltyguild_vs1	mapflag	noreturnguild_vs1	mapflag	nosave	SavePointguild_vs1	mapflag	noteleportguild_vs1	mapflag	gvg_nopartyguild_vs1	mapflag	nowarpguild_vs1	mapflag	nowarptoguild_vs1	mapflag	guildlockguild_vs1	mapflag	zone	GvG2
 
in my original koe script, I did

mes "[Exit]"; mes "See ya."; if ( getcharid(2) == $koegid ) getitem 501, 1; // configure prize here close2; warp "Save",0,0; end;so yeah, members can talk to this npc (claim the prize), don't press the close buttonand wait for guild master recall them, and talk to this npc (claim the prize), don't press the close button

repeat

so yeah, that's how they abuse the prize

I just figured it out 2 days ago when I read bug report section about someone posting about guild aura bug

to fix it, simply move the condition of giving the prize into after the close2; button

mes "[Exit]"; mes "See ya."; close2; if ( getcharid(2) == $koegid ) getitem 501, 1; // configure prize here warp "Save",0,0; end;like this

so in your modified script, it should be

Code:
// KoE Exitguild_vs1,49,56,5	script	Exit#KoE	51,{	mes "[Exit]";	mes "Thank you for Joining";	mes "You Won PVP Tokens and Cash Points";	close2;	if ( getcharid(2) == $koegid ) {		getitem 8039,150;		set #CASHPOINTS,#CASHPOINTS + 50;		dispbottom "You got "+#CASHPOINTS+" cash points.";	}	warp "Save",0,0;	end;}
 
Last edited by a moderator:
^ Did your post answered TS question?
default_smile.png


what i want is to enable the skill when the koth is start then skill off when it end
 
^ Did your post answered TS question?
default_smile.png


what i want is to enable the skill when the koth is start then skill off when it end
definitely require source modification
in scripting the syntax is

if ( strcharinfo(3) == "guild_vs1" && gettime(3) != 21 )

so to do this in source code correctly is

src/map/skill.c | 9 +++++++++ 1 file changed, 9 insertions(+)diff --git a/src/map/skill.c b/src/map/skill.cindex b0c6d7a..53b6380 100644--- a/src/map/skill.c+++ b/src/map/skill.c@@ -535,6 +535,15 @@ int skillnotok (uint16 skill_id, struct map_session_data *sd) clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); return 1; }+ else if ( !strcmp( mapindex_id2name(sd->mapindex), "guild_vs1" ) ) {+ time_t clock;+ struct tm *t;+ time( &clock );+ t = localtime( &clock );+ if ( t->tm_hour != 21 ) // assuming KoE runs at 9pm to 10pm+ clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);+ return 1;+ } break; case BS_GREED: case WS_CARTBOOST:..

seriously there is no need to do like that

I have received several reports about this prize abused

http://rathena.org/board/topic/81302-im-using-annie-koe-script-but-need-some-modifications/?p=192946

but only figured out recently due to reading skill.conf

// Emergency Recall Guild Skill setting (add as appropriate).

// Note that for the skill to be usable at all,

// you need at least one of 1/2 and 4/8

// 1: Skill is usable outside of woe.

// 2: Skill is usable during woe.

// 4: Skill is usable outside of GvG grounds

// 8: Skill is usable on GvG grounds

//16: Disable skill from "nowarpto" maps

// (it will work on GVG castles even if they are set to nowarpto, though)

emergency_call: 11
emergency recall allow to use in gvg mapflag,and with default setting, it can also be use in nowarpto mapflag, that's the reason it can be abused

... or can just change 11 into 27 ... but that will disallow to use in this map totally

 
Back
Top