![](http://board.herc.ws/uploads/set_resources_4/84c1e40ea0e759e3f1505eb1788ddf3c_pattern.png)
Dastgir
Script Developers-
Content Count
3803 -
Joined
-
Last visited
-
Days Won
249
Content Type
Profiles
Forums
Downloads
Staff Applications
Calendar
Everything posted by Dastgir
-
Old school/eA Style job_db1.conf values
Dastgir replied to FilamHost's question in Database Requests
HP SP Generator link works fine for me -
hashield block me from change ragexe to newer
Dastgir replied to minx123's question in Client-Side Support
And it's very easily bypassable -
Seems like you are missing db/constants.confOr you updated the source but haven't recompiled. And we were talking of applying SQL upgrade(as per topmost warning in the 1st post, 2nd pic)
-
Just to mention, XenForo and IPB are paid forums...
-
hashield block me from change ragexe to newer
Dastgir replied to minx123's question in Client-Side Support
If I remember well, you need to put your client somewhere on HaShield Server too, -
A bug I've never seen: Character Vanishes in Login Screen
Dastgir replied to ZelosAvalon's question in Source Support
Maybe you have wrong client date in SRC/common/mmo.h -
Tell host to install the pcre pcre has been made necessary for hercules.
-
You need to install pcre on the machine CentOS: yum install pcre-devel Debian Based System: apt-get install libpcre3-dev Tip: Don't go with host which can't even give you ssh access
-
See the errors, you are missing several upgrades file (2nd pic) import those files (Located at sql-files/upgrades/ ), and try again
-
Is that someone me? xDNice, thanks for it
-
Gepard Shield invalid file has been detected? cps.dll
Dastgir replied to Catastrophe's question in General Server Support
Gepard looks for all files in RO for, and if it finds the file unwanted for RO, it tells you to delete it, so removing all files mentioned by gepard will do the work -
It's not an overall protection, its just a no delay protection
-
Don't patch with hklm to hkcu, and about the error, you don't have System/Font folder inside RO
-
chmod a+x configure Then ./configure Or yum install dos2unix dos2unix configure
-
Change .third_classes = 1; // Enable third classes/Extended Classes? (1: yes / 0: no) To .third_classes = 0; // Enable third classes/Extended Classes? (1: yes / 0: no)
-
Requesting E-Inquiry for leaving a msg on GM's
Dastgir replied to butasro's question in Script Requests
Try it, it should work on Hercules too -
New features get added to newer ragexe's I would recommend 2014-02-05 if you want to use it in production server, if its just for you, then use 2015-05-15
-
The summoner skill is too unbalanced.. I am waiting for some PR to get merged before making PR of this... This PR will only include few skills as mentioned above.
-
Updated Timeline till 16.1 (Still few more to go)
-
For 1st link i think its not work anymore. 2nd link u gv i already have it.. Not i not sure if its still work or not.. Because got player report it still can bypass.. AFAIK, 2nd one is server sided (wondering how player bypass it)
-
Beta testing will be starting from 20th, and after we thoroughly test it, there would be launch(also I am just planning simple website for guides)
-
Script: <" bonus2 bSubRace,RC_Player,10; if(BaseClass==Job_Merchant){ bonus2 bSkillAtk,485,10; bonus bAspdRate,5; } else if(BaseClass==Job_Thief) { bonus2 bAddEle,Ele_Holy,10; bonus bAspdRate,5; } else if(BaseJob==Job_Rogue) { bonus bDex,8; bonus bInt,12; } else if(BaseJob==Job_Ninja) { bonus bDex,12; bonus bInt,12; } "> You forgot bracketsif works for one statement only, if you want more than one, then use curly brackets
-
@is it way possible? let me know i want this source mod also just PM ME.The answer is no, unless you find a way to modify the client
-
Use NEMO They have Patch called "Extended NPC Box/ Extend NPC Box" that might help you
-
Rewrite this script to work with new InstanceDB
Dastgir replied to xapaon123's question in Script Support
// ~~~~~ 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( getcharid(1) && instance_mapname(.map_inst$) != "" ) { 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 has_instance2(.map_inst$), 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; } if ( instance_attachmap( .map_inst$, .@inst_id ) == "") { mes "^0000ff"+ .name_inst$ +" ^000000- Reservation Failed!"; instance_destroy(.@inst_id); close; } 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 (Haven't looked into other parts except the instance commands)