function script funMenuCreateInstance { .@instance_name$ = getarg(0); .@party_id = getarg(1); callfunc("funConfig_" + .@instance_name$, .@md_name$, ".md_name$"); callfunc("funConfig_" + .@instance_name$, .@quest_timeout, ".quest_timeout"); callfunc("funConfig_" + .@instance_name$, .@max_number_floor, ".number_floors"); callfunc("funConfig_" + .@instance_name$, .@map_zone$, ".@map_zone$"); .@p_name = getpartyname(.@party_id); .@party_leader$ = strcharinfo(PC_NAME, getpartyleader(.@party_id, 2)); .@instance_map_name$ = funInstanceMapName(.@instance_name$); .@instance_id = instance_create(.@md_name$, .@party_id); mesf("funMenuCreateInstance: The instance name is %s and %s.", .@md_name$, .@instance_name$); mesf("The party ID is: %d.", .@party_id); mesf("funMenuCreateInstance: The instance ID is %d.", .@instance_id); next(); if (.@instance_id >= 0) { funMapSelector(.@instance_name$, .@maps_this_run$); mesf("The instance for maps this run is %s.", .@which_instance_for_maps$); mesf("The max number of floors is: %d.", .@max_number_floor); mesf("The maps are %s %s.", .@maps_this_run$[0], .@maps_this_run$[1]); next(); for (.@floor = 0; .@floor <= .@max_number_floor; ++.@floor) { .@virtual_name$ = .@floor + .@instance_map_name$; .@real_name$ = .@maps_this_run$[.@floor]; //consolemes(CONSOLEMES_DEBUG, "VirtualName %s ; RealMap %s", .@virtual_name$, .@real_name$); if (!getstrlen( instance_attachmap(.@real_name$, .@instance_id, true, .@virtual_name$) ) ) { mesf("Party id: %s", .@party_id); mesf("Party Name: %s", .@p_name$); mesf("Party Leader: %s", strcharinfo(PC_NAME)); mesf("^0000ff%s ^000000 - Reservation Failed.", .@md_name$); instance_destroy(); close(); } /* Doesn't work. Had to edit the gvg.txt file and comment out the entries. if("guild_vs2" == .@real_name$) setmapflag(.@virtual_name$, MF_ZONE, "All"); */ // Provide map zone flag here. MF_ZONE = 36 setmapflag(.@virtual_name$, MF_ZONE, .@map_zone$); funSetRates(.@instance_name$, .@party_id, .@floor, .@virtual_name$); } instance_attach(.@instance_id); // how to attach instance to a npc script? instance_set_timeout(.@quest_timeout, 60, .@instance_id); // out-of-instance timeout can be tweaked instance_init(.@instance_id); } mesf("^0000ff%s^000000- Attempting to book an entrance", .@md_name$); mesf("After making a reservation, you have to select 'Enter the Dungeon' from the menu if you wish to enter the %s.", .@md_name$); close(); return .@instance_id; }