xapaon123
Members-
Content Count
4 -
Joined
-
Last visited
Content Type
Profiles
Forums
Downloads
Staff Applications
Calendar
Everything posted by xapaon123
-
Aeromesi's Fast as the Wind Ragnarok Services
xapaon123 replied to Aeromesi's topic in Paid Services
@@Aeromesi service is fast,great and superb, his a really cool guy and usually answer back fast I bought mod package and no issue so far, and he even fixed a long ass script i had that didn't work and he made it work would recommend to anyone looking for a reliable scripter that really care for there costumer, keep the nice work! -
Rewrite this script to work with new InstanceDB
xapaon123 replied to xapaon123's question in Script Support
yeah i use rathena o.o -
Rewrite this script to work with new InstanceDB
xapaon123 replied to xapaon123's question in Script Support
Hello sir, thanks a lot for your help, but when i enter the instance, fallowing error occurs, i get to eneter and everything but no spawn -
Hello i want if possible someone who can help rewrite this instance to work with latest rev // ~~~~~ show time left in days, hours, minutes and seconds ~~~~~ function script timeleft__ { if ( ( .@left = getarg(0) ) <= 0 ) return getarg(0); .@day = .@left / 86400; .@hour = .@left % 86400 / 3600; .@min = .@left % 3600 / 60; .@[member=SEC] = .@left % 60; if ( .@day ) return .@day +" day "+ .@hour +" hour"; else if ( .@hour ) return .@hour +" hour "+ .@min +" min"; else if ( .@min ) return .@min +" min "+ .@[member=SEC] +" sec"; else return .@[member=SEC] +" sec"; } prontera,152,178,3 script szfjkii 406,{ mes "- each difficulty have 10 levels", "- each difficulty have given time to finish the instance", "- for Normal: 30 minutes", "- for Hard: 45 minutes", "- for Nightmare: 60 minutes", "- for Hardcore: 90 minutes"; next; // can re-enter if already generated if( instance_id(1) && getcharid(1) ) { if ( select( "Enter", "Cancel" ) -1 ) { mes "See ya."; close; } if ( has_instance( .map_inst$ ) == "" ) { mes "Your group is already registered at an other instance."; close; } getpartymember getcharid(1), 1; if ( $@partymembercount > .max_players ) { mes "Maximum of "+ .max_players +" members in the party"; close; } // check job if a player is invited if( .same_job ) { .@self = getcharid(3); for( .@i = 0; .@i < $@partymembercount; .@i++ ) { if( isloggedin( $@partymemberaid[ .@i ], $@partymembercid[ .@i ] ) ) { attachrid( $@partymemberaid[ .@i ] ); .@job_name$ = .@job_name$ + jobname(Class) +"|"; } } attachrid( .@self ); if( countstr( .@job_name$, jobname(Class) ) > 1 ) { mes "sorry there is 2 same job in the party, you can't enter."; close; } } // check delay if a player is invited for( .@i = 0; .@i < getarraysize( getd( ".char_id"+ getcharid(1) ) ); .@i++ ) if( getd( ".char_id"+ getcharid(1) +"["+ .@i +"]" ) == getcharid(0) ) { .@pass = 1; break; } if( !.@pass ) { if( gettimetick(2) < Delay_instance ) { mes "sorry you must wait "+ callfunc( "timeleft__", Delay_instance - gettimetick(2) ) +" before enter"; close; } .@size = getarraysize( getd( ".char_id"+ getcharid(1) ) ); setd( ".char_id"+ getcharid(1) +"[ "+ .@size +" ]", getcharid(0) ); Delay_instance = gettimetick(2) + 3600 * 3; } instance_announce instance_id(1), strcharinfo(0)+" of the party "+ getpartyname( getcharid(1) ) +" is entering in the instance.",bc_map; warp has_instance( .map_inst$ ),50,50; end; } if ( select ( "Normal", "Hard", "Hardcore", "Nightmare", "Leave" ) == 5 ) {// using @menu for instancing mes "See ya."; close; } else if( !getcharid(1) ) { mes "You need to be in party ( Maximum of "+ .max_players +" members )."; close; } // check delay of players in the party getpartymember getcharid(1), 1; getpartymember getcharid(1), 2; .@self = getcharid(3); for( .@i = 0; .@i < $@partymembercount; .@i++ ) { if( isloggedin( $@partymemberaid[ .@i ], $@partymembercid[ .@i ] ) ) { attachrid( $@partymemberaid[ .@i ] ); if( gettimetick(2) < Delay_instance ) { .@name$ = strcharinfo(0); .@time = Delay_instance - gettimetick(2); attachrid( .@self ); mes "sorry "+ .@name$ +" must wait "+ callfunc( "timeleft__", .@time ) +" before enter"; close; } else if( compare( .@job_name$, jobname(Class) ) && .same_job ) { .@name$ = strcharinfo(0); .@job$ = jobname(Class); attachrid( .@self ); mes "sorry, "+ .@name$ +" is "+ .@job$ +" and there is already a "+ .@job$ +" in the party"; close; } .@job_name$ = .@job_name$ + jobname(Class) +"|"; } } attachrid( .@self ); if ( $@partymembercount > .max_players ) { mes "Maximum of "+ .max_players +" members in the party"; close; } else if( getpartyleader( getcharid(1),2 ) != getcharid(0) ) { mes "I only talk to your leader."; close; } mes "If the instance is successfully generated all your party will be warp inside. Get ready"; next; .@inst_id = instance_create( .name_inst$,getcharid(1) ); if( .@inst_id < 0 ){ mes "Failed. Contact a GM."; close; } instance_attachmap( .map_inst$,.@inst_id ); instance_set_timeout .timelimit[ @menu ], .timeidle, .@inst_id; instance_init .@inst_id; instance_attach .@inst_id; 'diff$ = .diff$[ @menu ]; 'party_id = getcharid(1); 'time_inst = gettimetick(2) + .timelimit[ @menu ]; 'inst_id = .@inst_id; 'max_players = .max_players; donpcevent instance_npcname( "Inst_cust" ) +"::Oninstancing"; sleep2 50; getpartymember getcharid(1), 1; getpartymember getcharid(1), 2; .@self = getcharid(3); if( .same_job ) { .@job_name$ = ""; for( .@i = 0; .@i < $@partymembercount; .@i++ ) { if( isloggedin( $@partymemberaid[ .@i ], $@partymembercid[ .@i ] ) ) { attachrid( $@partymemberaid[ .@i ] ); .@job_name$ = .@job_name$ + jobname(Class) +"|"; } } } // dispbottom .@job_name$; for( .@i = 0; .@i < $@partymembercount; .@i++ ) { if( isloggedin( $@partymemberaid[ .@i ], $@partymembercid[ .@i ] ) ) { attachrid( $@partymemberaid[ .@i ] ); if( gettimetick(2) >= Delay_instance && countstr( .@job_name$, jobname(Class) ) <= 1 ) { Delay_instance = gettimetick(2) + 3600 * 3; .@size = getarraysize( getd( ".char_id"+ getcharid(1) ) ); setd( ".char_id"+ getcharid(1) +"[ "+ .@size +" ]", getcharid(0) ); warp has_instance( .map_inst$ ),50,50; } } } // warpparty has_instance( .map_inst$ ),50,50, getcharid(1); close; OnDelete: deletearray getd( ".char_id"+ getvariableofnpc( .party_id, "Inst_cust") ); end; OnInit: .same_job = 1; // DON'T allow 2 same job to enter in the instance .map_inst$ = "1@guild"; // instance map's name .name_inst$ = "Custom instance"; // instance name display .timeidle = 300; // time (sec) to re-enter in the instance when all players outside .max_players = 4; // max players in the party // time limit (sec) of the instance per level - Normal, Hard, Hardcore, Nightmare setarray .timelimit[ 1 ], 1800, 2700, 3600, 4500; // Difficulty's names - Don't touch setarray .diff$[ 1 ], "Normal", "Hard", "Hardcore", "Nightmare"; end; } 1@guild,0,0,0 script Inst_cust -1,{ function Countpartyonline; function Reward; OnInit: .npc_enter$ = "szfjkii"; // name of the NPC to enter in the instance // Number ( monsters / round / difficulty ) initialized setarray .mob_init_Normal[ 1 ], 1, 2, 3, 4, 5, 6, 7, 8, 9, 10; setarray .mob_init_Hard[ 1 ], 2, 3, 4, 5, 6, 7, 8, 9, 10, 12; setarray .mob_init_Hardcore[ 1 ], 3, 4, 5, 6, 7, 8, 9, 10, 11, 13; setarray .mob_init_Nightmare[ 1 ], 5, 6, 7, 8, 9, 10, 12, 14, 16, 20; // Hero ( points / round / difficulty ) - using #hero_points variable setarray .hero_points_Normal[ 1 ], 100,110,120,130,140,150,160,170,180,200; setarray .hero_points_Hard[ 1 ], 120,140,160,180,200,220,240,260,280,300; setarray .hero_points_Hardcore[ 1 ], 150,180,210,240,270,300,330,360,390,420; setarray .hero_points_Nightmare[ 1 ], 200,250,300,350,400,450,500,550,600,700; // Time (min) / round / difficulty setarray .time_Normal[ 1 ], 1,2,3,4,5,6,7,8,9,10; setarray .time_Hard[ 1 ], 2,4,6,8,10,12,14,16,18,20; setarray .time_Hardcore[ 1 ], 3,6,9,12,15,18,21,24,27,30; setarray .time_Nightmare[ 1 ], 4,8,12,16,20,24,28,32,36,40; // Mob ID / round // Level : Normal setarray .mob_ID_Normal_round1[ 0 ], 1002,1005,1004;// poring, hornet, familiar setarray .mob_ID_Normal_round2[ 0 ], 1002,1005; setarray .mob_ID_Normal_round3[ 0 ], 1002,1005,1004; setarray .mob_ID_Normal_round4[ 0 ], 1002,1005,1004; setarray .mob_ID_Normal_round5[ 0 ], 1002,1005,1004,1005; setarray .mob_ID_Normal_round6[ 0 ], 1002,1005,1004; setarray .mob_ID_Normal_round7[ 0 ], 1002,1005,1004; setarray .mob_ID_Normal_round8[ 0 ], 1002,1005,1004; setarray .mob_ID_Normal_round9[ 0 ], 1002,1005,1004; setarray .mob_ID_Normal_round10[ 0 ], 1002,1005,1004; // Level : Hard setarray .mob_ID_Hard_round1[ 0 ], 1002,1005,1004; setarray .mob_ID_Hard_round2[ 0 ], 1002,1005,1004; setarray .mob_ID_Hard_round3[ 0 ], 1002,1005,1004; setarray .mob_ID_Hard_round4[ 0 ], 1002,1005,1004; setarray .mob_ID_Hard_round5[ 0 ], 1002,1005,1004; setarray .mob_ID_Hard_round6[ 0 ], 1002,1005,1004; setarray .mob_ID_Hard_round7[ 0 ], 1002,1005,1004; setarray .mob_ID_Hard_round8[ 0 ], 1002,1005,1004; setarray .mob_ID_Hard_round9[ 0 ], 1002,1005,1004; setarray .mob_ID_Hard_round10[ 0 ], 1002,1005,1004; // Level : Hardcore setarray .mob_ID_Hardcore_round1[ 0 ], 1002,1005,1004; setarray .mob_ID_Hardcore_round2[ 0 ], 1002,1005,1004; setarray .mob_ID_Hardcore_round3[ 0 ], 1002,1005,1004; setarray .mob_ID_Hardcore_round4[ 0 ], 1002,1005,1004; setarray .mob_ID_Hardcore_round5[ 0 ], 1002,1005,1004; setarray .mob_ID_Hardcore_round6[ 0 ], 1002,1005,1004; setarray .mob_ID_Hardcore_round7[ 0 ], 1002,1005,1004; setarray .mob_ID_Hardcore_round8[ 0 ], 1002,1005,1004; setarray .mob_ID_Hardcore_round9[ 0 ], 1002,1005,1004; setarray .mob_ID_Hardcore_round10[ 0 ], 1002,1005,1004; // Level : Nightmare setarray .mob_ID_Nightmare_round1[ 0 ], 1002,1005,1004; setarray .mob_ID_Nightmare_round2[ 0 ], 1002,1005,1004; setarray .mob_ID_Nightmare_round3[ 0 ], 1002,1005,1004; setarray .mob_ID_Nightmare_round4[ 0 ], 1002,1005,1004; setarray .mob_ID_Nightmare_round5[ 0 ], 1002,1005,1004; setarray .mob_ID_Nightmare_round6[ 0 ], 1002,1005,1004; setarray .mob_ID_Nightmare_round7[ 0 ], 1002,1005,1004; setarray .mob_ID_Nightmare_round8[ 0 ], 1002,1005,1004; setarray .mob_ID_Nightmare_round9[ 0 ], 1002,1005,1004; setarray .mob_ID_Nightmare_round10[ 0 ], 1002,1005,1004; .round_max = 10; // round max end; // Instance start // -------------- Oninstancing: sleep 10000; // New round // --------- LStart: 'round++; instance_announce 'inst_id, 'round + ( 'round % 10 == 1 ? "st" : ( 'round % 10 == 2 ? "nd" : ( 'round % 10 == 3 ? "rd" : "th" ) ) ) +" round in :", bc_map; for( .@i = 5; .@i > 0; .@i-- ) { instance_announce 'inst_id, .@i +"" ,bc_map; sleep 1000; } donpcevent instance_npcname( "Inst_cust" ) +"::OnTimevent";// initialize time limit for the round goto OnRound; // Monster is dead : check player on map + reward if 0 mob // ------------------------------------------------------- OnMobDead: if( instance_check_party( 'party_id,'max_players +1 ) ) {// check if there are more than 4 players in the party instance instance_announce 'inst_id, "To much players. End of instance.", bc_map; 'round = .round_max + 1; goto L_pr; } 'count = mobcount( strnpcinfo(4), instance_npcname( "Inst_cust", 'inst_id ) +"::OnMobDead" ); instance_announce instance_id(0), 'count +" monsters left" ,bc_map; if( !'count ) { instance_announce 'inst_id, "All monsters on the "+ 'round + ( 'round % 10 == 1 ? "st" : ( 'round % 10 == 2 ? "nd" : ( 'round % 10 == 3 ? "rd" : "th" ) ) ) +" level have been defeated.", bc_map; Reward();// hero points / round / difficulty if( 'round == .round_max ) { 'round = .round_max + 1; goto L_end; } goto LStart; } end; // Random (spawn / round / difficulty) // ----------------------------------- OnRound: .@spawn = 'count = Countpartyonline() + getd( ".mob_init_"+ 'diff$ +"[ "+ 'round +" ]" );// spawn count = ( monster initialized / round / difficulty ) + number players online in party instance_announce 'inst_id, "you have "+ getd( ".time_"+ 'diff$ +"[ "+ 'round +" ]" ) +" min to finish this round in "+ 'diff$ +" mode. "+ .@spawn +" mobs are spawned",bc_map; while( .@spawn ) {// spawned ( monster / round / difficulty ) randomly .@[member=Rand] = rand( 1,.@spawn );// number mobs .@spawn = .@spawn - .@[member=Rand]; .@i = rand( getarraysize( getd( ".mob_ID_"+ 'diff$ +"_round"+ 'round ) ) );// ID mob monster "1@guild",0,0,"--ja--", getd( ".mob_ID_"+ 'diff$ +"_round"+ 'round +"[ "+ .@i +" ]" ), .@[member=Rand], instance_npcname( strnpcinfo(0),'inst_id )+"::OnMobDead"; } end; // End of instance // --------------- L_end: instance_announce 'inst_id, "Congratulation you have finished the instance in "+ callfunc( "timeleft__", 'time_inst - gettimetick(2) ), bc_map; OnTimevent:// time limit / round / difficulty awake instance_npcname( "Inst_cust" ); if( 'round <= .round_max ) { sleep 1; 'tmp = 'round; sleep 1000 * 60 * getd( ".time_"+ 'diff$ +"[ "+ 'round +" ]" ); if( 'round != 'tmp ) end; instance_announce 'inst_id, "you take to much time.", bc_map; } L_pr: instance_warpall "prontera", 152,178, 'inst_id; .party_id = 'party_id; donpcevent .npc_enter$ +"::OnDelete"; sleep 500; instance_destroy 'inst_id; end; // Functions // --------- function Countpartyonline { getpartymember 'party_id, 1; getpartymember 'party_id, 2; for( .@i = 0; .@i < $@partymembercount; .@i++ ) { if( isloggedin( $@partymemberaid[ .@i ], $@partymembercid[ .@i ] ) && getarg( 0,1 ) ) .@j++; // else if( isloggedin( $@partymemberaid[ .@i ], $@partymembercid[ .@i ] ) && !getarg( 0,1 ) ) { // attachrid( $@partymemberaid[ .@i ] ); // Delay_instance = gettimetick(2) + 3600 * 3; // } } return .@j; } function Reward { getpartymember 'party_id, 1; getpartymember 'party_id, 2; .@tmp$ = strcharinfo(3); for( .@i = 0; .@i < $@partymembercount; .@i++ ) if( isloggedin( $@partymemberaid[ .@i ], $@partymembercid[ .@i ] ) ) { attachrid( $@partymemberaid[ .@i ] ); if( strcharinfo(3) == .@tmp$ ) { #hero_points = #hero_points + getd( ".hero_points_"+ 'diff$ +"[ "+ 'round +" ]" ); dispbottom "Gained : "+ getd( ".hero_points_"+ 'diff$ +"[ "+ 'round +" ]" ) +" Hero Points. Total : "+ #hero_points; } } return; } // function Delayparty { // Countpartyonline( 0 ); // return; // } } 1@guild mapflag nowarp 1@guild mapflag partylock 1@guild mapflag nowarpto 1@guild mapflag noteleport 1@guild mapflag nosave SavePoint 1@guild mapflag nomemo 1@guild mapflag nobranch 1@guild mapflag monster_noteleport