Help Learning Instance and how it works. <3

Atomik

New member
Messages
23
Points
0
Age
29
Location
CyberSpace
Emulator
Hello there, Can any one help me with a Simple instance script so i can read it and learn how instance works .1) A npc that teleport you to an instance.2) few monsters in that instance3) Npcs inside the instance that destroys Instance once done. Please help &lt;#.---Atomik.

 
similar topic appear in rathena forum

Code:
prontera,155,180,0	script	Test Instance	1_F_MARIA,{
	if ( has_instance2("guild_vs2") &gt;= 0 ) {
//		dispbottom has_instance2("guild_vs2") +" destroy";
		instance_destroy has_instance2("guild_vs2");
	}
	if ( ( .@ins = instance_create( "Test Instance", getcharid(CHAR_ID_ACCOUNT), IOT_CHAR ) ) &lt; 0 ) {
		mes "error : "+ .@ins;
		close;
	}
	if ( !getstrlen( instance_attachmap( "guild_vs2", .@ins, true, ( getcharid(CHAR_ID_ACCOUNT) )+"INST" ) ) ) {
		mes "error : 5";
		instance_destroy .@ins;
		close;
	}
	instance_set_timeout 3600, 15, .@ins;
	instance_init .@ins;
	warp has_instance("guild_vs2"), 49,49;
	end;
}
guild_vs2,49,49,5	script	test dialog	1_F_MARIA,{
	dispbottom strnpcinfo(NPC_MAP);
	mesf "%d monsters on this map", 'amount;
	next;
	select "Destroy";
	instance_destroy;
	end;
OnInstanceInit:
	monster has_instance("guild_vs2"), 49,49, "--ja--", PORING, 10, instance_npcname( strnpcinfo(NPC_NAME) )+"::OnMobDead";
	'amount = 10;
	end;
OnMobDead:
	--'amount;
	if ( !'amount )
		instance_announce -1, "all monster killed", bc_map;
	end;
}
few things noted for hercules ones

1. hercules has more instance related script commands, but also make this more flexible to write once you learn them all
a. hercules has *instance_attach script command, make sure this script command is added before trying do anything instance related in the register npc
b. hercules has to emulate the map name with *instance_attachmap if the map name doesn't follow the syntax &lt;number&gt;@&lt;5 string limit&gt;

2. hercules instance ID start from 0, rathena instance ID start from 1
a. make sure the instance_announce is set to -1

3. hercules seems cannot *instance_destroy inside the instance map itself ... has to rely on *instance_set_timeout of the timeout value

 
Last edited by a moderator:
similar topic appear in rathena forum

Code:
prontera,155,180,0	script	Test Instance	1_F_MARIA,{
	if ( has_instance2("guild_vs2") &gt;= 0 ) {
//		dispbottom has_instance2("guild_vs2") +" destroy";
		instance_destroy has_instance2("guild_vs2");
	}
	if ( ( .@ins = instance_create( "Test Instance", getcharid(CHAR_ID_ACCOUNT), IOT_CHAR ) ) &lt; 0 ) {
		mes "error : "+ .@ins;
		close;
	}
	if ( !getstrlen( instance_attachmap( "guild_vs2", .@ins, true, ( getcharid(CHAR_ID_ACCOUNT) )+"INST" ) ) ) {
		mes "error : 5";
		instance_destroy .@ins;
		close;
	}
	instance_set_timeout 3600, 15, .@ins;
	instance_init .@ins;
	warp has_instance("guild_vs2"), 49,49;
	end;
}
guild_vs2,49,49,5	script	test dialog	1_F_MARIA,{
	dispbottom strnpcinfo(NPC_MAP);
	mesf "%d monsters on this map", 'amount;
	next;
	select "Destroy";
	instance_destroy;
	end;
OnInstanceInit:
	monster has_instance("guild_vs2"), 49,49, "--ja--", PORING, 10, instance_npcname( strnpcinfo(NPC_NAME) )+"::OnMobDead";
	'amount = 10;
	end;
OnMobDead:
	--'amount;
	if ( !'amount )
		instance_announce -1, "all monster killed", bc_map;
	end;
}
few things noted for hercules ones

1. hercules has more instance related script commands, but also make this more flexible to write once you learn them all
a. hercules has *instance_attach script command, make sure this script command is added before trying do anything instance related in the register npc
b. hercules has to emulate the map name with *instance_attachmap if the map name doesn't follow the syntax &lt;number&gt;@&lt;5 string limit&gt;

2. hercules instance ID start from 0, rathena instance ID start from 1
a. make sure the instance_announce is set to -1

3. hercules seems cannot *instance_destroy inside the instance map itself ... has to rely on *instance_set_timeout of the timeout value
Thanks alot &lt;3

 
Back
Top