-
Content Count
596 -
Joined
-
Last visited
-
Days Won
24
Posts posted by Kuya Jeo
-
-
18 minutes ago, MikZ said:Hello,
May I know how to convert this script to hercules. Tried to google addrid in hercules but per this TOPIC it was already pulled/merged with Hercules get.
Also tried if was included in Deprecation. I can't find any idea how to fix it. please help. thanks!but has error in addrid
[Error]: script error in file '(DIRECT INPUT)' line 148 column 5 parse_line: expect command, missing function name or calling undeclared function 145: if( getcharid(2) == $App_Guilds[.@i] ){ 146: .count = 0; 147: .@origin = getcharid(3); * 148: addrid(3,0, getcharid(2)); ~~~~^ 149: if ( strcharinfo(3) == .checkmap$ ) 150: .count++; 151: if ( !.@origin ) end; [Error]: npc_parsesrcfile: Unknown syntax in file '(DIRECT INPUT)', line '169'. Stopping... * w1=- script kjdhfkjshf -1,{ * w2= * w3= * w4=
[Error]: script error in file '(DIRECT INPUT)' line 148 column 5 parse_line: expect command, missing function name or calling undeclared function 145: if( getcharid(2) == $App_Guilds[.@i] ){ 146: .count = 0; 147: .@origin = getcharid(3); * 148: addrid(3,0, getcharid(2)); ~~~~^ 149: if ( strcharinfo(3) == .checkmap$ ) 150: .count++; 151: if ( !.@origin ) end; [Error]: npc_parsesrcfile: Unknown syntax in file '(DIRECT INPUT)', line '169'. Stopping... * w1=- script kjdhfkjshf -1,{ * w2= * w3= * w4=
Script below.
//Modified by - PandaLovesHamster //Custom Guild Limiter //Credits to the owners of the individual makers of the script, I just tied them all together to create this script ayothaya,171,144,5 script Guild Limiter 4_M_JOB_KNIGHT2,{ // this part registers the guild function sf { function s; .@a = getarg(2); .@len = getarg(3); return ( sprintf( getarg(0), s(.@a, .@len, getarg(1)), s(.@a++, .@len, getarg(1)), s(.@a++, .@len, getarg(1)), s(.@a++, .@len, getarg(1)), s(.@a++, .@len, getarg(1)), s(.@a++, .@len, getarg(1)), s(.@a++, .@len, getarg(1)), s(.@a++, .@len, getarg(1)), s(.@a++, .@len, getarg(1)), s(.@a++, .@len, getarg(1)) ) +(( .@a+1 < .@len )?":Next":":") +(( .@a-11 > 0 )?":Back":":") +":Cancel" ); function s { if( getarg(0) >= getarg(1) ) return ""; else { .@name$ = getguildname(getelementofarray(getarg(2),getarg(0))); return .@name$=="null"?"":.@name$; } }; }; function nex { return((getarg(0)+10)<getarg(1)?getarg(0)+10:getarg(1)-(getarg(1)%10)); }; function bac { return((getarg(0)-10)>=0?getarg(0)-10:0); }; if(getgmlevel()>=80 ) { mes .Npc_Name$; mes "Hello Mr. GM what would you like to do?"; next; switch( select("Add/Remove Guilds:Clear Guild Data:Player Menu:Cancel") ) { case 1: mes .Npc_Name$; mes "Would you like to add or remove a guild?"; .@a_len = getarraysize($App_Guilds); .@format$ = "%s:%s:%s:%s:%s:%s:%s:%s:%s:%s"; next; if( select("Remove:Add") == 1 ) { while( .@a != 9999 ) { select( sf( .@format$, $App_Guilds, .@a, .@a_len ) ); switch( @menu ) { case 11: .@a = nex( .@a, .@a_len ); break; case 12: .@a = bac( .@a ); break; case 13: end; default: .@select = .@a+@menu-1; mes .Npc_Name$; mes "You've selected ^0000FF["+getguildname($App_Guilds[.@select])+"]^000000 guild. Would you like to remove them from the accepted guilds?"; next; if( select("Yes:No") == 1 ) { deletearray($App_Guilds[.@select],1); mes .Npc_Name$; mes "The guild has been removed!"; } close; } } } else { mes .Npc_Name$; mes "Please input guild name or masters name."; next; input(.@input$); .@len = query_sql( "Select `guild_id` from `guild` where `name` like '%"+escape_sql(.@input$)+"%' or `master` like '%"+escape_sql(.@input$)+"%';",.@guild_id ); while( .@a != 9999 ) { select( sf( .@format$, .@guild_id, .@a, .@len ) ); switch( @menu ) { case 11: .@a = nex( .@a, .@len ); break; case 12: .@a = bac( .@a ); break; case 13: end; default: .@select = .@a+@menu-1; .@a_len = getarraysize($App_Guilds); for(.@b=0;.@b<.@a_len;.@b++) if( $App_Guilds[.@b]==.@guild_id[.@select] ) { mes .Npc_Name$; mes "You've selected ^0000FF["+getguildname(.@guild_id[.@select])+"]^000000 guild. I'm sorry but that guild has already been added to the accepted list."; close; } mes .Npc_Name$; mes "You've selected ^0000FF["+getguildname(.@guild_id[.@select])+"]^000000 guild. Would you like to add them to the accepted guilds?"; next; if( select("Yes:No") == 1 ) { .@a_len = getarraysize($App_Guilds); if( .@a_len>=128 ) { mes .Npc_Name$; mes "I'm sorry but the accepted list is full please make some room and try again..."; } else { mes .Npc_Name$; mes "The guild was successfully added!"; $App_Guilds[.@a_len] = .@guild_id[.@select]; } } close; } } } case 2: mes .Npc_Name$; mes "Are you sure you want to clear the guild data?!"; next; if( select("Yes!:No!")==1 ) { mes .Npc_Name$; mes "This is you last chance. Are you surely sure as sure can be?"; next; if( select("Surly!:No, wait... Where am I?!!")==1 ) deletearray($App_Guilds); } if( @menu==1 ) { mes .Npc_Name$; mes "The deed is done..."; } else { mes .Npc_Name$; mes "Wow that was a close one... Have a nice day!"; } close; case 3: break; case 4: mes .Npc_Name$; mes "Alright, have a nice day!"; close; } } .@len = getarraysize($App_Guilds); for( .@i=0; .@i <= .@len; .@i++ ) { if( getcharid(2) == $App_Guilds[.@i] ) set .@Guild_Check, .@Guild_Check+1; } // This part ejects players when they are in the map OnPCLoadMapEvent: if( getcharid(2) == $App_Guilds[.@i] ){ .count = 0; .@origin = getcharid(3); addrid 3, 0, getcharid(2); if ( strcharinfo(3) == .checkmap$ ) .count++; if ( !.@origin ) end; if ( .count > 5 ) { // 5 means only 5 players per guild allowed in a map. message strcharinfo(0), "Your guild members are over the limit"; sleep2 2000; warp "SavePoint", 0,0; } } end; OnInit: setarray .@checkmap$, "arug_cas01", "arug_cas02", "arug_cas03", "arug_cas04", "arug_cas05", "schg_cas01", "schg_cas02", "schg_cas03", "schg_cas04", "schg_cas05"; .@len = getarraysize( .@checkmap$ ); for ( .@i = 0; .@i < .@size; .@i++ ) { setmapflag .@checkmap$[.@i], mf_loadevent; setd "."+ .@checkmap$[.@i], 1; } end; } - script kjdhfkjshf -1,{ OnPCLoadMapEvent: if ( getmapflag( strcharinfo(3), mf_gvg_castle ) && ( agitcheck() || agitcheck2() )) { .@len = getarraysize($App_Guilds); for( .@i=0; .@i <= .@len; .@i++ ) { if( getcharid(2) == $App_Guilds[.@i] ) set .@Guild_Check, .@Guild_Check+1; } if( .@Guild_Check < 1 ) { dispbottom "Your guild has not yet been approved, please contact the GMs"; sleep2 3000; warp "SavePoint",0,0; end; } if( !getcharid(2) ) { dispbottom "Sorry only members of a guild may enter a castle."; sleep2 3000; warp "SavePoint",0,0; end; } } end; OnInit: setarray .castles$[0], "prtg_cas01","prtg_cas02","prtg_cas03","prtg_cas04","prtg_cas05", "payg_cas01","payg_cas02","payg_cas03","payg_cas04","payg_cas05", "gefg_cas01","gefg_cas02","gefg_cas03","gefg_cas04","gefg_cas05", "aldeg_cas01","aldeg_cas02","aldeg_cas03","aldeg_cas04","aldeg_cas05", "arug_cas01","arug_cas02","arug_cas03","arug_cas04","arug_cas05", "schg_cas01","schg_cas02","schg_cas03","schg_cas04","schg_cas05"; for ( .@i = 0; .@i < 30; .@i++ ) setmapflag .castles$[.@i], mf_loadevent; end; }
//Modified by - PandaLovesHamster //Custom Guild Limiter //Credits to the owners of the individual makers of the script, I just tied them all together to create this script ayothaya,171,144,5 script Guild Limiter 4_M_JOB_KNIGHT2,{ // this part registers the guild function sf { function s; .@a = getarg(2); .@len = getarg(3); return ( sprintf( getarg(0), s(.@a, .@len, getarg(1)), s(.@a++, .@len, getarg(1)), s(.@a++, .@len, getarg(1)), s(.@a++, .@len, getarg(1)), s(.@a++, .@len, getarg(1)), s(.@a++, .@len, getarg(1)), s(.@a++, .@len, getarg(1)), s(.@a++, .@len, getarg(1)), s(.@a++, .@len, getarg(1)), s(.@a++, .@len, getarg(1)) ) +(( .@a+1 < .@len )?":Next":":") +(( .@a-11 > 0 )?":Back":":") +":Cancel" ); function s { if( getarg(0) >= getarg(1) ) return ""; else { .@name$ = getguildname(getelementofarray(getarg(2),getarg(0))); return .@name$=="null"?"":.@name$; } }; }; function nex { return((getarg(0)+10)<getarg(1)?getarg(0)+10:getarg(1)-(getarg(1)%10)); }; function bac { return((getarg(0)-10)>=0?getarg(0)-10:0); }; if(getgmlevel()>=80 ) { mes .Npc_Name$; mes "Hello Mr. GM what would you like to do?"; next; switch( select("Add/Remove Guilds:Clear Guild Data:Player Menu:Cancel") ) { case 1: mes .Npc_Name$; mes "Would you like to add or remove a guild?"; .@a_len = getarraysize($App_Guilds); .@format$ = "%s:%s:%s:%s:%s:%s:%s:%s:%s:%s"; next; if( select("Remove:Add") == 1 ) { while( .@a != 9999 ) { select( sf( .@format$, $App_Guilds, .@a, .@a_len ) ); switch( @menu ) { case 11: .@a = nex( .@a, .@a_len ); break; case 12: .@a = bac( .@a ); break; case 13: end; default: .@select = .@a+@menu-1; mes .Npc_Name$; mes "You've selected ^0000FF["+getguildname($App_Guilds[.@select])+"]^000000 guild. Would you like to remove them from the accepted guilds?"; next; if( select("Yes:No") == 1 ) { deletearray($App_Guilds[.@select],1); mes .Npc_Name$; mes "The guild has been removed!"; } close; } } } else { mes .Npc_Name$; mes "Please input guild name or masters name."; next; input(.@input$); .@len = query_sql( "Select `guild_id` from `guild` where `name` like '%"+escape_sql(.@input$)+"%' or `master` like '%"+escape_sql(.@input$)+"%';",.@guild_id ); while( .@a != 9999 ) { select( sf( .@format$, .@guild_id, .@a, .@len ) ); switch( @menu ) { case 11: .@a = nex( .@a, .@len ); break; case 12: .@a = bac( .@a ); break; case 13: end; default: .@select = .@a+@menu-1; .@a_len = getarraysize($App_Guilds); for(.@b=0;.@b<.@a_len;.@b++) if( $App_Guilds[.@b]==.@guild_id[.@select] ) { mes .Npc_Name$; mes "You've selected ^0000FF["+getguildname(.@guild_id[.@select])+"]^000000 guild. I'm sorry but that guild has already been added to the accepted list."; close; } mes .Npc_Name$; mes "You've selected ^0000FF["+getguildname(.@guild_id[.@select])+"]^000000 guild. Would you like to add them to the accepted guilds?"; next; if( select("Yes:No") == 1 ) { .@a_len = getarraysize($App_Guilds); if( .@a_len>=128 ) { mes .Npc_Name$; mes "I'm sorry but the accepted list is full please make some room and try again..."; } else { mes .Npc_Name$; mes "The guild was successfully added!"; $App_Guilds[.@a_len] = .@guild_id[.@select]; } } close; } } } case 2: mes .Npc_Name$; mes "Are you sure you want to clear the guild data?!"; next; if( select("Yes!:No!")==1 ) { mes .Npc_Name$; mes "This is you last chance. Are you surely sure as sure can be?"; next; if( select("Surly!:No, wait... Where am I?!!")==1 ) deletearray($App_Guilds); } if( @menu==1 ) { mes .Npc_Name$; mes "The deed is done..."; } else { mes .Npc_Name$; mes "Wow that was a close one... Have a nice day!"; } close; case 3: break; case 4: mes .Npc_Name$; mes "Alright, have a nice day!"; close; } } .@len = getarraysize($App_Guilds); for( .@i=0; .@i <= .@len; .@i++ ) { if( getcharid(2) == $App_Guilds[.@i] ) set .@Guild_Check, .@Guild_Check+1; } // This part ejects players when they are in the map OnPCLoadMapEvent: if( getcharid(2) == $App_Guilds[.@i] ){ .count = 0; .@origin = getcharid(3); addrid 3, 0, getcharid(2); if ( strcharinfo(3) == .checkmap$ ) .count++; if ( !.@origin ) end; if ( .count > 5 ) { // 5 means only 5 players per guild allowed in a map. message strcharinfo(0), "Your guild members are over the limit"; sleep2 2000; warp "SavePoint", 0,0; } } end; OnInit: setarray .@checkmap$, "arug_cas01", "arug_cas02", "arug_cas03", "arug_cas04", "arug_cas05", "schg_cas01", "schg_cas02", "schg_cas03", "schg_cas04", "schg_cas05"; .@len = getarraysize( .@checkmap$ ); for ( .@i = 0; .@i < .@size; .@i++ ) { setmapflag .@checkmap$[.@i], mf_loadevent; setd "."+ .@checkmap$[.@i], 1; } end; } - script kjdhfkjshf -1,{ OnPCLoadMapEvent: if ( getmapflag( strcharinfo(3), mf_gvg_castle ) && ( agitcheck() || agitcheck2() )) { .@len = getarraysize($App_Guilds); for( .@i=0; .@i <= .@len; .@i++ ) { if( getcharid(2) == $App_Guilds[.@i] ) set .@Guild_Check, .@Guild_Check+1; } if( .@Guild_Check < 1 ) { dispbottom "Your guild has not yet been approved, please contact the GMs"; sleep2 3000; warp "SavePoint",0,0; end; } if( !getcharid(2) ) { dispbottom "Sorry only members of a guild may enter a castle."; sleep2 3000; warp "SavePoint",0,0; end; } } end; OnInit: setarray .castles$[0], "prtg_cas01","prtg_cas02","prtg_cas03","prtg_cas04","prtg_cas05", "payg_cas01","payg_cas02","payg_cas03","payg_cas04","payg_cas05", "gefg_cas01","gefg_cas02","gefg_cas03","gefg_cas04","gefg_cas05", "aldeg_cas01","aldeg_cas02","aldeg_cas03","aldeg_cas04","aldeg_cas05", "arug_cas01","arug_cas02","arug_cas03","arug_cas04","arug_cas05", "schg_cas01","schg_cas02","schg_cas03","schg_cas04","schg_cas05"; for ( .@i = 0; .@i < 30; .@i++ ) setmapflag .castles$[.@i], mf_loadevent; end; }
Addrid is not supported by hercules...
-
8 minutes ago, Tio Akima said:guys, I remade the mapcache of my Prontera (new prontera) ... however, when I enter the game, the server is reading the cache of the old Prontera (it seems to me that the gat's are from the old Prontera) ... i remade mapcache several times and he keeps reading the old cache ... does anyone know the source of this problem? I can't think what I might be forgetting to do..
* The new prontera is in the data folder
* The Mapcache plugin is reading the maps perfectly in my folderI thought my sv was running on renewal and the mapcache was going to the pre-re folder ... but that's not it
~hahahaha... It must be something stupid that I'm forgetting ...
I always add custons maps and never had this problem with mapcache 😅Delete the old prontera.mcache on trunk/pre-re/maps then reload again your prontera map on putty, turn off first your server to make it sure
-
16 hours ago, Petey Pablo said:How to fix this error
[Error]: script error in file 'npc/custom/legendro/go.txt' line 63 column 61 script:add_word: invalid word. A word consists of undercores and/or alphanumeric characters, and valid variable prefixes/postfixes. 60: if (.deadlock && !Hp) { 61: message strcharinfo(0), "You may not use @go when you are dead."; 62: } else if (.town && !getmapflag(strcharinfo(3), mf_town)) { * 63: message strcharinfo(0), "You may only use @go in towns."; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 64: } else if (getmapflag(strcharinfo(3), mf_pvp)) { 65: message strcharinfo(0), "You cannot use @go in PvP Maps."; 66: } else if (.delay && @go_delay > gettimetick(2)) {
[Error]: script error in file 'npc/custom/legendro/go.txt' line 63 column 61 script:add_word: invalid word. A word consists of undercores and/or alphanumeric characters, and valid variable prefixes/postfixes. 60: if (.deadlock && !Hp) { 61: message strcharinfo(0), "You may not use @go when you are dead."; 62: } else if (.town && !getmapflag(strcharinfo(3), mf_town)) { * 63: message strcharinfo(0), "You may only use @go in towns."; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 64: } else if (getmapflag(strcharinfo(3), mf_pvp)) { 65: message strcharinfo(0), "You cannot use @go in PvP Maps."; 66: } else if (.delay && @go_delay > gettimetick(2)) {
 --> removed those.. probably because this is invalid script code
-
I having a problem with my new diff client with gepard shield, i tried to use it and no auto close encounter in my part but when other use the the new diff client they encounter auto close client after gepard logo..
another problem is when the player is dead, they cannot trade or deal, this is using normal character
thank you in advance
-
12 hours ago, MikZ said:Good day!
I am using this script for @go command for easy editing.
However script cannot trigger mapflag nowarp nowarpto and noteleport. how can I trigger the mapflag on this command
/*========================================================= @go command Original concept by jTynne Revised by Mumbles =========================================================== Description: Alternative @go command. Allows for unlimited aliasing, as well as level and group restrictions for each destination. Additional options to add a delay, prevent use when dead, and charge per use are available; default cost is defined with '.cost', but this parameter can be set manually with 'go()'. These extra features are disabled by default. Be mindful that the delay uses a temporary player variable, '@go_delay'; if the player logs out, this variable will be cleared. If you would like for a more secure delay, replace all instances of '@go_delay' with 'go_delay'. =========================================================== Compatibility: Optimised for Hercules emulators. =========================================================== Changelog: v1.0 - First version. [jTynne] v2.0 - Added additional parameters for locations. [jTynne] v3.0 - Optimised for Hercules emulators. [Mumbles] v3.0.1 - Introduced limitless aliasing. [Mumbles] v3.0.2 - Added go() function. [Mumbles] v3.1 - Added option to charge per use. [Mumbles] v3.1.1 - Added option to limit use when dead. [Mumbles] v3.1.2 - Added option to limit use to towns. [Mumbles] v3.1.3 - Added changelog. [Mumbles] =========================================================*/ - script at_go -1,{ /*----------------------------------------------------- Configuration -----------------------------------------------------*/ OnInit: .delay = 1; // Delay per use, in seconds (default: 0) .cost = 0; // Default cost to use command if '.charge' is enabled .charge = 0; // Charge to use command? 0 = no, 1 = yes (default: 0) .deadlock = 1; // Prevent usage when dead? 0 = no, 1 = yes (default: 0) .town = 0; // Require 'mf_town'? 0 = no, 1 = yes (default: 0) bindatcmd "go", strnpcinfo(3) +"::OnAtcommand", 0, 2; end; /*----------------------------------------------------- Function: go() ------------------------------------------------------- Description: Warps player and checks prerequisites. ------------------------------------------------------- Usage: go(<"map_name">, <x>, <y>, <level>, <group>, <cost>) -----------------------------------------------------*/ function go { if (.deadlock && !Hp) { message strcharinfo(0), "You may not use @go when you are dead."; } else if (.town && !getmapflag(strcharinfo(3), mf_town)) { message strcharinfo(0), "You may only use @go in towns."; } else if (.delay && @go_delay > gettimetick(2)) { message strcharinfo(0), "You must wait "+ (@go_delay - gettimetick(2)) +" seconds before warping again."; } else if (BaseLevel < getarg(3)) { message strcharinfo(0), "You must be at least level "+ getarg(3) +" to warp to this map."; } else if (getgroupid() < getarg(4) || getmapflag(getarg(0), mf_nowarp)) { message strcharinfo(0), "You are not authorised to warp to this map."; } else if (.charge && Zeny < getarg(5)) { message strcharinfo(0), "You must have at least "+ getarg(5) +" zeny to warp to this map."; } else { if (.delay) { @go_delay = gettimetick(2) + .delay; } if (.charge) { Zeny -= getarg(5); } warp getarg(0), getarg(1), getarg(2); end; } message strcharinfo(0), "@go failed."; end; } /*----------------------------------------------------- Function: alias() ------------------------------------------------------- Description: Determines if input matches alias. ------------------------------------------------------- Usage: alias(<"number">, <"name1">{, <"name2">, <...>}) -----------------------------------------------------*/ function alias { for (.@i = 0; .@i < getargcount(); .@i++) { if (@input$ == getarg(.@i)) { @input$ = ""; return true; } } return false; } /*----------------------------------------------------- Script -----------------------------------------------------*/ OnAtcommand: @input$ = .@atcmd_parameters$[0]; if (alias("0", "pro", "pront", "prontera")) { go("prontera",156, 184, 0, 0, .cost); } else if (alias("1", "moc", "mor", "morocc", "morroc")) { go("morocc", 160, 100, 0, 0, .cost); } else if (alias("2", "gef", "geffen")) { go("geffen", 120, 70, 0, 0, .cost); } else if (alias("3", "pay", "payo", "payon")) { go("payon", 174, 98, 0, 0, .cost); } else if (alias("4", "alb", "alberta")) { go("alberta", 192, 147, 0, 0, .cost); } else if (alias("5", "izl", "izlude")) { go("izlude", 127, 109, 0, 0, .cost); } else if (alias("6", "ald", "alde", "aldebaran")) { go("aldebaran", 140, 114, 0, 0, .cost); } else if (alias("7", "xmas", "lutie")) { go("xmas", 148, 132, 0, 0, .cost); } else if (alias("8", "com", "comodo")) { go("comodo",189, 151, 0, 0, .cost); } else if (alias("9", "juno", "yuno")) { go("yuno", 157, 182, 0, 0, .cost); } else if (alias("10", "ama", "amat", "amatsu")) { go("amatsu", 197, 84, 0, 0, .cost); } else if (alias("11", "gon", "gonr", "gonryun")) { go("gonryun", 159, 116, 0, 0, .cost); } else if (alias("12", "umb", "umbala", "umbrella")) { go("umbala", 90, 154, 0, 0, .cost); } else if (alias("13", "nif", "niflheim")) { go("niflheim", 195, 175, 0, 0, .cost); } else if (alias("14", "lou", "louyang")) { go("louyang", 218, 99, 0, 0, .cost); } else if (alias("15", "nov", "ng", "novice")) { go("new_1-1", 53, 111, 0, 10, .cost); } else if (alias("16", "jail", "prison")) { go("sec_pri", 23, 61, 0, 10, .cost); } else if (alias("17", "jaw", "jawaii")) { go("jawaii", 221, 221, 0, 0, .cost); } else if (alias("18", "ayo", "ayotaya", "ayothaya")) { go("ayothaya", 151, 165, 0, 0, .cost); } else if (alias("19", "ein", "einbroch")) { go("einbroch", 64, 200, 0, 0, .cost); } else if (alias("20", "lhz", "light", "lighthalzen")) { go("lighthalzen", 158, 92, 0, 0, .cost); } else if (alias("21", "einbe", "einbech")) { go("einbech", 176, 125, 0, 0, .cost); } else if (alias("22", "hug", "hugel")) { go("hugel", 96, 145, 0, 0, .cost); } else if (alias("23", "rach", "rachel")) { go("rachel", 130, 110, 0, 0, .cost); } else if (alias("24", "ve", "veins")) { go("veins", 216, 123, 0, 0, .cost); } else if (alias("25", "mosc", "mosk", "moscovia")) { go("moscovia", 223, 184, 0, 0, .cost); } else if (alias("26", "camp", "mid", "midgard")) { go("mid_camp", 180, 240, 0, 0, .cost); } else if (alias("27", "man", "manuk")) { go("manuk", 282, 138, 0, 0, .cost); } else if (alias("28", "spl", "splend", "splendide")) { go("splendide", 197, 176, 0, 0, .cost); } else if (alias("29", "br", "bra", "brasil", "brasilis")) { go("brasilis", 182, 239, 0, 0, .cost); } else if (alias("30", "el", "eldic", "dic", "dicastes")) { go("dicastes01", 198, 187, 0, 0, .cost); } else if (alias("31", "mora")) { go("mora", 44, 151, 0, 0, .cost); } else if (alias("32", "dew", "dewata")) { go("dewata", 200, 180, 0, 0, .cost); } else if (alias("33", "mal", "malang", "malangdo")) { go("malangdo", 140, 114, 0, 0, .cost); } else if (alias("34", "port", "malay", "malaya")) { go("malaya", 242, 211, 0, 0, .cost); } else if (alias("35", "ecl", "ecla", "eclag", "eclage")) { go("eclage", 110, 39, 0, 0, .cost); } else if (alias("36", "eve", "event")) { go("prontera", 190, 173, 0, 0, .cost); } else { message strcharinfo(0), "Invalid location number, or name."; message strcharinfo(0), "Params: <city name|number>"; message strcharinfo(0), "Warps you to a city."; message strcharinfo(0), "0: Prontera 1: Morroc 2: Geffen 3: Payon 4: Alberta"; message strcharinfo(0), "5: Izlude 6: Al De Baran 7: Lutie 8: Comodo 9: Yuno"; message strcharinfo(0), "10: Amatsu 11: Gonryun 12: Umbala 13: Niflheim 14: Louyang"; message strcharinfo(0), "15: Novice Grounds 16: Prison 17: Jawaii 18: Ayothaya 19: Einbroch"; message strcharinfo(0), "20: Lighthalzen 21: Einbech 22: Hugel 23: Rachel 24: Veins"; message strcharinfo(0), "25: Moscovia 26: Midgard Camp 27: Manuk 28: Splendide 29: Brasilis"; message strcharinfo(0), "30: El Dicastes 31: Mora 32: Dewata 33: Malangdo 34: Malaya"; message strcharinfo(0), "35: Eclage"; message strcharinfo(0), "@go failed."; } end; }
/*========================================================= @go command Original concept by jTynne Revised by Mumbles =========================================================== Description: Alternative @go command. Allows for unlimited aliasing, as well as level and group restrictions for each destination. Additional options to add a delay, prevent use when dead, and charge per use are available; default cost is defined with '.cost', but this parameter can be set manually with 'go()'. These extra features are disabled by default. Be mindful that the delay uses a temporary player variable, '@go_delay'; if the player logs out, this variable will be cleared. If you would like for a more secure delay, replace all instances of '@go_delay' with 'go_delay'. =========================================================== Compatibility: Optimised for Hercules emulators. =========================================================== Changelog: v1.0 - First version. [jTynne] v2.0 - Added additional parameters for locations. [jTynne] v3.0 - Optimised for Hercules emulators. [Mumbles] v3.0.1 - Introduced limitless aliasing. [Mumbles] v3.0.2 - Added go() function. [Mumbles] v3.1 - Added option to charge per use. [Mumbles] v3.1.1 - Added option to limit use when dead. [Mumbles] v3.1.2 - Added option to limit use to towns. [Mumbles] v3.1.3 - Added changelog. [Mumbles] =========================================================*/ - script at_go -1,{ /*----------------------------------------------------- Configuration -----------------------------------------------------*/ OnInit: .delay = 1; // Delay per use, in seconds (default: 0) .cost = 0; // Default cost to use command if '.charge' is enabled .charge = 0; // Charge to use command? 0 = no, 1 = yes (default: 0) .deadlock = 1; // Prevent usage when dead? 0 = no, 1 = yes (default: 0) .town = 0; // Require 'mf_town'? 0 = no, 1 = yes (default: 0) bindatcmd "go", strnpcinfo(3) +"::OnAtcommand", 0, 2; end; /*----------------------------------------------------- Function: go() ------------------------------------------------------- Description: Warps player and checks prerequisites. ------------------------------------------------------- Usage: go(<"map_name">, <x>, <y>, <level>, <group>, <cost>) -----------------------------------------------------*/ function go { if (.deadlock && !Hp) { message strcharinfo(0), "You may not use @go when you are dead."; } else if (.town && !getmapflag(strcharinfo(3), mf_town)) { message strcharinfo(0), "You may only use @go in towns."; } else if (.delay && @go_delay > gettimetick(2)) { message strcharinfo(0), "You must wait "+ (@go_delay - gettimetick(2)) +" seconds before warping again."; } else if (BaseLevel < getarg(3)) { message strcharinfo(0), "You must be at least level "+ getarg(3) +" to warp to this map."; } else if (getgroupid() < getarg(4) || getmapflag(getarg(0), mf_nowarp)) { message strcharinfo(0), "You are not authorised to warp to this map."; } else if (.charge && Zeny < getarg(5)) { message strcharinfo(0), "You must have at least "+ getarg(5) +" zeny to warp to this map."; } else { if (.delay) { @go_delay = gettimetick(2) + .delay; } if (.charge) { Zeny -= getarg(5); } warp getarg(0), getarg(1), getarg(2); end; } message strcharinfo(0), "@go failed."; end; } /*----------------------------------------------------- Function: alias() ------------------------------------------------------- Description: Determines if input matches alias. ------------------------------------------------------- Usage: alias(<"number">, <"name1">{, <"name2">, <...>}) -----------------------------------------------------*/ function alias { for (.@i = 0; .@i < getargcount(); .@i++) { if (@input$ == getarg(.@i)) { @input$ = ""; return true; } } return false; } /*----------------------------------------------------- Script -----------------------------------------------------*/ OnAtcommand: @input$ = .@atcmd_parameters$[0]; if (alias("0", "pro", "pront", "prontera")) { go("prontera",156, 184, 0, 0, .cost); } else if (alias("1", "moc", "mor", "morocc", "morroc")) { go("morocc", 160, 100, 0, 0, .cost); } else if (alias("2", "gef", "geffen")) { go("geffen", 120, 70, 0, 0, .cost); } else if (alias("3", "pay", "payo", "payon")) { go("payon", 174, 98, 0, 0, .cost); } else if (alias("4", "alb", "alberta")) { go("alberta", 192, 147, 0, 0, .cost); } else if (alias("5", "izl", "izlude")) { go("izlude", 127, 109, 0, 0, .cost); } else if (alias("6", "ald", "alde", "aldebaran")) { go("aldebaran", 140, 114, 0, 0, .cost); } else if (alias("7", "xmas", "lutie")) { go("xmas", 148, 132, 0, 0, .cost); } else if (alias("8", "com", "comodo")) { go("comodo",189, 151, 0, 0, .cost); } else if (alias("9", "juno", "yuno")) { go("yuno", 157, 182, 0, 0, .cost); } else if (alias("10", "ama", "amat", "amatsu")) { go("amatsu", 197, 84, 0, 0, .cost); } else if (alias("11", "gon", "gonr", "gonryun")) { go("gonryun", 159, 116, 0, 0, .cost); } else if (alias("12", "umb", "umbala", "umbrella")) { go("umbala", 90, 154, 0, 0, .cost); } else if (alias("13", "nif", "niflheim")) { go("niflheim", 195, 175, 0, 0, .cost); } else if (alias("14", "lou", "louyang")) { go("louyang", 218, 99, 0, 0, .cost); } else if (alias("15", "nov", "ng", "novice")) { go("new_1-1", 53, 111, 0, 10, .cost); } else if (alias("16", "jail", "prison")) { go("sec_pri", 23, 61, 0, 10, .cost); } else if (alias("17", "jaw", "jawaii")) { go("jawaii", 221, 221, 0, 0, .cost); } else if (alias("18", "ayo", "ayotaya", "ayothaya")) { go("ayothaya", 151, 165, 0, 0, .cost); } else if (alias("19", "ein", "einbroch")) { go("einbroch", 64, 200, 0, 0, .cost); } else if (alias("20", "lhz", "light", "lighthalzen")) { go("lighthalzen", 158, 92, 0, 0, .cost); } else if (alias("21", "einbe", "einbech")) { go("einbech", 176, 125, 0, 0, .cost); } else if (alias("22", "hug", "hugel")) { go("hugel", 96, 145, 0, 0, .cost); } else if (alias("23", "rach", "rachel")) { go("rachel", 130, 110, 0, 0, .cost); } else if (alias("24", "ve", "veins")) { go("veins", 216, 123, 0, 0, .cost); } else if (alias("25", "mosc", "mosk", "moscovia")) { go("moscovia", 223, 184, 0, 0, .cost); } else if (alias("26", "camp", "mid", "midgard")) { go("mid_camp", 180, 240, 0, 0, .cost); } else if (alias("27", "man", "manuk")) { go("manuk", 282, 138, 0, 0, .cost); } else if (alias("28", "spl", "splend", "splendide")) { go("splendide", 197, 176, 0, 0, .cost); } else if (alias("29", "br", "bra", "brasil", "brasilis")) { go("brasilis", 182, 239, 0, 0, .cost); } else if (alias("30", "el", "eldic", "dic", "dicastes")) { go("dicastes01", 198, 187, 0, 0, .cost); } else if (alias("31", "mora")) { go("mora", 44, 151, 0, 0, .cost); } else if (alias("32", "dew", "dewata")) { go("dewata", 200, 180, 0, 0, .cost); } else if (alias("33", "mal", "malang", "malangdo")) { go("malangdo", 140, 114, 0, 0, .cost); } else if (alias("34", "port", "malay", "malaya")) { go("malaya", 242, 211, 0, 0, .cost); } else if (alias("35", "ecl", "ecla", "eclag", "eclage")) { go("eclage", 110, 39, 0, 0, .cost); } else if (alias("36", "eve", "event")) { go("prontera", 190, 173, 0, 0, .cost); } else { message strcharinfo(0), "Invalid location number, or name."; message strcharinfo(0), "Params: <city name|number>"; message strcharinfo(0), "Warps you to a city."; message strcharinfo(0), "0: Prontera 1: Morroc 2: Geffen 3: Payon 4: Alberta"; message strcharinfo(0), "5: Izlude 6: Al De Baran 7: Lutie 8: Comodo 9: Yuno"; message strcharinfo(0), "10: Amatsu 11: Gonryun 12: Umbala 13: Niflheim 14: Louyang"; message strcharinfo(0), "15: Novice Grounds 16: Prison 17: Jawaii 18: Ayothaya 19: Einbroch"; message strcharinfo(0), "20: Lighthalzen 21: Einbech 22: Hugel 23: Rachel 24: Veins"; message strcharinfo(0), "25: Moscovia 26: Midgard Camp 27: Manuk 28: Splendide 29: Brasilis"; message strcharinfo(0), "30: El Dicastes 31: Mora 32: Dewata 33: Malangdo 34: Malaya"; message strcharinfo(0), "35: Eclage"; message strcharinfo(0), "@go failed."; } end; }
change this part of the code into this one
function go { if (.deadlock && !Hp) { message strcharinfo(0), "You may not use @go when you are dead."; } else if (.town && !getmapflag(strcharinfo(3), mf_town)) { message strcharinfo(0), "You may only use @go in towns."; } else if (getmapflag(strcharinfo(3), mf_pvp)) { message strcharinfo(0), "You cannot use @go in PvP Maps."; } else if (.delay && @go_delay > gettimetick(2)) { message strcharinfo(0), "You must wait "+ (@go_delay - gettimetick(2)) +" seconds before warping again."; } else if (BaseLevel < getarg(3)) { message strcharinfo(0), "You must be at least level "+ getarg(3) +" to warp to this map."; } else if (getgroupid() < getarg(4) || getmapflag(getarg(0), mf_nowarp)) { message strcharinfo(0), "You are not authorised to warp to this map."; } else if (.charge && Zeny < getarg(5)) { message strcharinfo(0), "You must have at least "+ getarg(5) +" zeny to warp to this map."; } else { if (.delay) { @go_delay = gettimetick(2) + .delay; } if (.charge) { Zeny -= getarg(5); } warp getarg(0), getarg(1), getarg(2); end; } message strcharinfo(0), "@go failed."; end; }
reload the script and try it
-
7 hours ago, ThyroDree said:Before this error, I can login normally, after I remove and changed my dll files from my client side. I get failed to connect to the server after character select, and then I restarted the server using ./athena-start restart then I cannot connect to my map server.. Its always [Fatal Error]: Connection to char-server failed 3. I have same userid passwd at my conf files and sql login
[Error]: Sent wrong packet id: 0x2711 [Error]: --- failed assertion -------------------------------------------- [Error]: socket.c:2112: '0' in function `socket_validateWfifo' [Error]: 0x556025745e15 nullpo_backtrace_print [Error]: /home/Thyro/Hercules/src/common/nullpo.c:77 [Error]: 0x556025745e15 assert_report [Error]: /home/Thyro/Hercules/src/common/nullpo.c:147 [Error]: 0x556025759c4b wfifoset [Error]: /home/Thyro/Hercules/src/common/socket.c:901 [Error]: [Status]: Done reading '255' entries in 'db/pre-re/statpoint.txt'. 0x556025738c7b login_parse_request_connection [Error]: /home/Thyro/Hercules/src/login/login.c:1473 [Error]: 0x556025734312 lclif_parse_CA_CHARSERVERCONNECT [Error]: /home/Thyro/Hercules/src/login/lclif.c:266 [Error]: 0x55602573474c lclif_parse_packet [Error]: /home/Thyro/Hercules/src/login/lclif.c:510 [Error]: 0x5560257343d1 lclif_parse [Error]: /home/Thyro/Hercules/src/login/lclif.c:419 [Error]: 0x556025758f05 do_sockets [Error]: /home/Thyro/Hercules/src/common/socket.c:1073 [Error]: 0x55602572ff61 main [Error]: /home/Thyro/Hercules/src/common/core.c:539 [Error]: 0x7f36b91412e0 ??? [Error]: ???:0 [Error]: 0x556025730149 ??? [Error]: ???:0 [Error]: 0xffffffffffffffff ??? [Error]: ???:0 [Error]: --- end failed assertion ---------------------------------------- [Error]: Can not connect to login-server. [Error]: The server communication passwords (default s1/p1) are probably invalid. [Error]: Also, please make sure your login db has the correct communication username/passwords and the gender of the account is S. [Error]: The communication passwords are set in /conf/map/map-server.conf and /conf/char/char-server.conf
[Error]: Sent wrong packet id: 0x2711 [Error]: --- failed assertion -------------------------------------------- [Error]: socket.c:2112: '0' in function `socket_validateWfifo' [Error]: 0x556025745e15 nullpo_backtrace_print [Error]: /home/Thyro/Hercules/src/common/nullpo.c:77 [Error]: 0x556025745e15 assert_report [Error]: /home/Thyro/Hercules/src/common/nullpo.c:147 [Error]: 0x556025759c4b wfifoset [Error]: /home/Thyro/Hercules/src/common/socket.c:901 [Error]: [Status]: Done reading '255' entries in 'db/pre-re/statpoint.txt'. 0x556025738c7b login_parse_request_connection [Error]: /home/Thyro/Hercules/src/login/login.c:1473 [Error]: 0x556025734312 lclif_parse_CA_CHARSERVERCONNECT [Error]: /home/Thyro/Hercules/src/login/lclif.c:266 [Error]: 0x55602573474c lclif_parse_packet [Error]: /home/Thyro/Hercules/src/login/lclif.c:510 [Error]: 0x5560257343d1 lclif_parse [Error]: /home/Thyro/Hercules/src/login/lclif.c:419 [Error]: 0x556025758f05 do_sockets [Error]: /home/Thyro/Hercules/src/common/socket.c:1073 [Error]: 0x55602572ff61 main [Error]: /home/Thyro/Hercules/src/common/core.c:539 [Error]: 0x7f36b91412e0 ??? [Error]: ???:0 [Error]: 0x556025730149 ??? [Error]: ???:0 [Error]: 0xffffffffffffffff ??? [Error]: ???:0 [Error]: --- end failed assertion ---------------------------------------- [Error]: Can not connect to login-server. [Error]: The server communication passwords (default s1/p1) are probably invalid. [Error]: Also, please make sure your login db has the correct communication username/passwords and the gender of the account is S. [Error]: The communication passwords are set in /conf/map/map-server.conf and /conf/char/char-server.conf
Try to reboot your VPS, maybe you start the server twice
-
Solved by myself
-
Is there any way to get the info of the player who get the MVP Icon/Animation when the MVP die? Using Killedrid == mvpname is not good because it will only get the last hitter of the mvp, thank you in advance
-
13 hours ago, ThyroDree said:Hello, anyone can help me.. Character is not getting any exp from mobs.. Even novice level 1/1
check you conf/map/battle/exp.conf
max_exp_gain_rate
-
On 3/26/2020 at 1:16 PM, Luffy said:kindly elaborate it so that i can make a simple script for you
-
1 hour ago, Pedroooo said:I'm configure my localhost emulator after long time without messing Hercules, and I realized that there is no way to maintain the log database separated from main database? I'm wrong? Because I dont see nothing about log database in sql_connection.conf?
Thanks for listening.
you cannot separate it like before, you need to put it on 1 database with the main tables
-
4 hours ago, WillzonePH said:Need help to fix this error on plugins! Btw, im using latest version of hercules emulator!
[Error]: Skip packet 0x00F3 with size 21, but must be size 65535 [Error]: --- failed assertion -------------------------------------------- [Error]: D:\Ragnarok\Hercules\src\common\socket.c:840: '0' in function `unknown' [Error]: --- end failed assertion ----------------------------------------
[Error]: Skip packet 0x00F3 with size 21, but must be size 65535 [Error]: --- failed assertion -------------------------------------------- [Error]: D:\Ragnarok\Hercules\src\common\socket.c:840: '0' in function `unknown' [Error]: --- end failed assertion ----------------------------------------
Indicate what plugin you used.
-
-
-
8 hours ago, ThyroDree said:Anyone can knows how can i make the 3rd job aura with be at trans job server?
Here's the link on what aura im talking about.
Just get the file of 3rd job aura then rename it, then replace the old default aura of 99 level into 3rd job
-
7 hours ago, Luffy said:can you explain how it work? we just need to change the day? ex. DATE_ADD(NOW(), INTERVAL 1 DAY) for 1 day and DATE_ADD(NOW(), INTERVAL 3DAY) for 3 days?
I rather used MYSQL Lines because im putting it on the database
If you want to add +3 Days it should be like this DATE_ADD(NOW(), INTERVAL 3 DAY)
-
Got a solution. thnx anyway
i use DATE_ADD(NOW(), INTERVAL 1 DAY)
instead of using gettimestr("%Y-%m-%d %H:%M:%S",21) -
I want to add +1 Day or +3 Days in this one.. gettimestr("%Y-%m-%d %H:%M:%S",21)
Can someone know how to add? Thank you guys
-
18 hours ago, Robert415 said:I think you mean about the TortoiseGit.
TortoiseGit 2.10.0.0 (D:\WIN7\Program Files\TortoiseGit\bin)
git version 2.25.1.windows.1 (d:\win7\Program Files\Git\bin; d:\win7\Program Files\Git\mingw64\; d:\win7\Program Files\Git\etc\gitconfig)I had tested with OpenKore xkore 3,
The coordinates of monsters shifted weirly. That is, monster's coordinates are not send to client correctly.
git version is the version of the hercules emulator you used.
-
52 minutes ago, ThyroDree said:Hi! Im confused with this
WEAPONTYPE_Custom_Weapon = 110
[Weapon_IDs.WEAPONTYPE_Banryu] = "_32000"
which one is the sprite name there?
If I have spritename like hellrevolver.spr/act
can you give me example using hellrevolver?
Change all the custom_weapon name int ohellrevolver
it must be like this
[Weapon_IDs.WEAPONTYPE_hellrevolver] = "_32000"WEAPONTYPE_hellrevolver = 110
the 32000 is the item ID number
-
11 hours ago, ThyroDree said:I have followed on how to add the custom weapon here
My problem here the weapon is not showing its sprite.
I put the sprite to data/sprite/¾ÆÀÌÅÛ/
then created iteminfo and item_dbs the weapon. The weapon works fines the dropped, when equipped.
Just when attack the weapon is the normal sprite view. How can I make the show its own custom sprite?
Adding Custom Weapon needs the Following..
data/luafiles514/lua files/datainfo/weapontable.lub
Something like this, check each code where to place itWEAPONTYPE_Custom_Weapon = 110 [Weapon_IDs.WEAPONTYPE_Banryu] = "_32000" [Weapon_IDs.WEAPONTYPE_Custom_Weapon] = Weapon_IDs.WEAPONTYPE_SWORD
Then in your item_db2.conf
{ Id: 32000 AegisName: "Custom_Weapon" Name: "Custom Weapon" Type: "IT_WEAPON" Buy: 20 Weight: 1000 Atk: 150 Range: 1 Loc: 2 Slots: 4 WeaponLv: 4 Subtype: "W_1HSWORD" Job: { Knight: true } Refine: true Script: <""> },
Then in iteminfo.lua
[32000] = { unidentifiedDisplayName = "Custom Weapon", unidentifiedResourceName = "Custom_Weapon", unidentifiedDescriptionName = { "Unidentified item, can be identified with [Magnifier].", }, identifiedDisplayName = "Custom Weapon", identifiedResourceName = "Custom_Weapon", identifiedDescriptionName = { "" }, slotCount = 4, ClassNum = 110 },
ofcourse your sprite should be same name with what you put in weapontable.lub
-
3 hours ago, Robert415 said:Here we encounter new error messages after ver.v2020.03.08+2.
please provide your git version so that we can find a solution
-
Try to change this in
src/map/unit.c and find this line of codes
if (unit->walk_toxy_sub(bl) == 0 && (flag & 2) != 0) { set_mobstate(bl); return 1; }
then change this into
if (unit->walk_toxy_sub(bl) == 0) { if ((flag & 2) != 0) set_mobstate(bl); return 1; }
then compile
-
Fixed..
Adding skillratio damage on cr_grandcross to boost it.. anyway it really annoyed me about this skill formula..
Auto Close Client and Deal Players when dead Problem
in Client-Side Support
Posted
I used clean hercules, im server is running now, i just wondering why my new diff not working on other players, i tried to use it on my test server without gepard and its working.. how about on the can deal players even if my char is dead... i just notice that something is blocking like im talking to npc so i cant deal players when my char is dead