Jump to content
  • 0

KoE Emp Bug


Question

Posted

How to prevent from the owner of the KoE to attack their own emp? 

-	script	KoE	-1,{
OnInit:
	disablenpc "The King#KoE";
	disablenpc "Exit#KoE";
	bindatcmd "koe", strnpcinfo(0)+"::OnCommand", 99,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;
OnClock2250: // everyday 10:50pm starts
L_start:
	if ( .start ) end;
	gvgon "guild_vs1";
	announce "The King of Emperium Hill has begun!", bc_all;
	.start = 1;
	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;
OnClock2300: // everyday 1100pm ends
L_end:
	gvgoff "guild_vs1";
	announce "The King of Emperium Hill is over!", bc_all;
	.start = 0;
	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 Entrance
prontera,155,170,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;
	}
    mes "Hello.";
    mes "Would you like to participate in the ^FF0000King of Emperium Hill Tournament^000000?";
	if ( select ( "Yes", "No" ) == 2 ) 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 Exit
guild_vs1,49,56,5	script	Exit#KoE	51,{
	mes "[Exit]";
	mes "See ya.";
	if ( getcharid(2) == $koegid )
		getitem 7730, 5; // configure prize here
	close2;
	warp "Save",0,0;
	end;
}
 
// Flags
guild_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	722
guild_vs1,38,49,2	duplicate(koe_flag)	King of Emperium Hill#3	722
guild_vs1,49,61,0	duplicate(koe_flag)	King of Emperium Hill#4	722

guild_vs1	mapflag	nobranch
guild_vs1	mapflag	nomemo
guild_vs1	mapflag	nopenalty
guild_vs1	mapflag	noreturn
guild_vs1	mapflag	nosave	SavePoint
guild_vs1	mapflag	noteleport
guild_vs1	mapflag	gvg_noparty
guild_vs1	mapflag	nowarp
guild_vs1	mapflag	nowarpto
guild_vs1	mapflag	guildlock

3 answers to this question

Recommended Posts

Posted

try this.

 

on your battle.c

	if( (s_bl = battle_get_master(src)) == NULL )
		s_bl = src;
	
+	if ( s_bl->type == BL_PC && t_bl->type == BL_MOB ) {
+		struct map_session_data *sd = BL_CAST(BL_PC, s_bl);
+		if ( ( ((TBL_MOB*)target)->mob_id == 1288 && !strcmp( mapindex_id2name(sd->mapindex), "guild_vs1" ) ) &&
+			( sd->status.guild_id == mapreg_readreg(add_str("$KOEGUILD") ) || battle_getcurrentskill(src) > 0 ) )
+		return 0;
+	}

	if ( s_bl->type == BL_PC ) {

and also for battle.h

#include "../config/core.h"
+#include "mapreg.h"
#include "map.h" //ELE_MAX
Posted

 

try this.

 

on your battle.c

	if( (s_bl = battle_get_master(src)) == NULL )
		s_bl = src;
	
+	if ( s_bl->type == BL_PC && t_bl->type == BL_MOB ) {
+		struct map_session_data *sd = BL_CAST(BL_PC, s_bl);
+		if ( ( ((TBL_MOB*)target)->mob_id == 1288 && !strcmp( mapindex_id2name(sd->mapindex), "guild_vs1" ) ) &&
+			( sd->status.guild_id == mapreg_readreg(add_str("$KOEGUILD") ) || battle_getcurrentskill(src) > 0 ) )
+		return 0;
+	}

	if ( s_bl->type == BL_PC ) {

and also for battle.h

#include "../config/core.h"
+#include "mapreg.h"
#include "map.h" //ELE_MAX

How is this?

 

try this.

 

on your battle.c

	if( (s_bl = battle_get_master(src)) == NULL )
		s_bl = src;
	
+	if ( s_bl->type == BL_PC && t_bl->type == BL_MOB ) {
+		struct map_session_data *sd = BL_CAST(BL_PC, s_bl);
+		if ( ( ((TBL_MOB*)target)->mob_id == 1288 && !strcmp( mapindex_id2name(sd->mapindex), "guild_vs1" ) ) &&
+			( sd->status.guild_id == mapreg_readreg(add_str("$KOEGUILD") ) || battle_getcurrentskill(src) > 0 ) )
+		return 0;
+	}

	if ( s_bl->type == BL_PC ) {

and also for battle.h

#include "../config/core.h"
+#include "mapreg.h"
#include "map.h" //ELE_MAX

not working, still the owner of the guild can hit the emp..

bump*

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.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...