-
Content Count
618 -
Joined
-
Last visited
-
Days Won
15
Posts posted by Mumbles
-
-
You could use something with query_sql/query_logsql like:
query_sql("IF COL_LENGTH('table_name','column_name') IS NOT NULL BEGIN /*insert update query here*/ END");
-
I was able to find a global function that Euphy wrote titled F_Navi in their trunk.
Paste this in a file somewhere, load it up, and your scripts that use this function should run without error:
function script F_Navi { // Uncomment to disable the navigation system. //set .@disabled,1; // This function takes 0 ~ 3 parameters. switch(getargcount()) { case 0: // Check if system is disabled. return .@disabled; case 1: // Display information message, if enabled. if (!.@disabled) { next; mes getarg(0); mes "When you click on the ^B9062F[location name]^000000, you'll receive the most advanced ^B9062FNavigation^000000 services!"; } return; default: // Display navigation link, if enabled; else set text color, if available. if (!.@disabled) return "<NAVI>[" + getarg(0) + "]<INFO>" + getarg(1) + ",0,000,0</INFO></NAVI>"; else if (getargcount() == 3) return getarg(2)+getarg(0)+"^000000"; else return getarg(0); }}
Note:
Untested.
-
If you're certain that logging is causing your server to crash, you could disable logging in conf/logs.conf. Also make sure your SQL settings are correct in conf/inter-server.conf.
-
O mesmo já se encontra assim, e mesmo assim não funciona.
What about your client_hash settings in conf/login_server.conf?
// Client MD5 hash check// If turned on, the login server will check if the client's hash matches// the value below, and will not connect tampered clients.// Note: see docmd5_hashcheck.txt for more details.client_hash_check: off// Client MD5 hashes// A player can login with a client hash at or below the account group_id.// Format: group_id, hashclient_hash: 0, 113e195e6c051bb1cfb12a644bb084c5client_hash: 99, cb1ea78023d337c38e8ba5124e2338ae
If Harmony is no longer a part of your emulator, then the only thing that comes to mind is a MD5 hash mismatch with the emulator's default settings.
Tradução em Português (via Google):
E sobre as configurações client_hash em conf/login_server.conf?
// Client MD5 hash check// If turned on, the login server will check if the client's hash matches// the value below, and will not connect tampered clients.// Note: see docmd5_hashcheck.txt for more details.client_hash_check: off// Client MD5 hashes// A player can login with a client hash at or below the account group_id.// Format: group_id, hashclient_hash: 0, 113e195e6c051bb1cfb12a644bb084c5client_hash: 99, cb1ea78023d337c38e8ba5124e2338ae
Se a Harmony não é mais uma parte do seu emulador, então a única coisa que vem à mente é uma incompatibilidade de hash MD5 com as configurações padrão do emulador.
-
Oh, I guess I overlooked that. Yeah, mine don't show up either. Perhaps running that query to adjust the item IDs to a compatible range for your client would be the best solution.
-
Have you tested it? That method hasn't been working for me. It works for custom items we have in 2000-9999 id range, however non of the ids above 10k it seems to work with.
If you've tested item ids in that range and it's working, then maybe I'm doing something wrong but it's only those upper ids that it's not working for.
When I wrote my reply, I did not test it first. I went ahead and tested on a 2012-04-10 client and was unable to reproduce the issue.
Tested on 2012-04-10 with custom gear Hercules Hat [1] (ID: 10001):
-
You're looking in the wrong place. Server-side slots don't appear client-side if the client files have not been updated to display the slts. If the slot exists in the database, you'll have to edit itemslottcounttable.txt in your client's data folder or custom GRF.
The format for this is:
ItemID#Slots#
If you wanted item IDs 10000-10012 to show their slots, you would add them to the file like this:
10000#4#10001#3#10002#1#10003#2#10004#3#10005#4#10006#3#10007#2#10008#1#10009#2#10010#3#10011#4#10012#3#
-
The server had Harmony protection, and likely uses their client checksum. This is an example of their checksum settings from conf/harmony_custom.conf:
////////////////////////////////////////////// CLIENT CHECKSUM /////////////////////////////////////////////// Harmony enforces the usage of unmodified client binaries.// However, you have to add your client checksum here to// allow only permitted exes. The checksum is a MD5 hash of// the exe.///// To get the checksum of your exe you can use this tool:// https://harmonize.it/customer/md5///// To reload this configuration while the server is running use @reloadharmony.////// GM level >= 0 requires this hashclient_checksum: 0, cd465a9c413648131b3cabe1dfd9e45d// GM level >= 20 requires this hash (level 0 hash works here, too)client_checksum: 20, cd465a9c413648131b3cabe1dfd9e45d// GM level 99 has no checksum limitationsclient_checksum: 99, off
To circumvent this, you can either turn Harmony's checksum off:
// GM level >= 0 requires this hashclient_checksum: 0, off// GM level >= 20 requires this hash (level 0 hash works here, too)client_checksum: 20, off// GM level 99 has no checksum limitationsclient_checksum: 99, off
Alternatively, you can upload your current client to Harmony's MD5 calculator and use the MD5 hash given to you there.
Disclaimer:
Hercules does not directly support Harmony; the file referenced in this post is based purely on personal experience. Although the MD5 calculator is available by direct link, Harmony's files and services are solely intended for their customers.
Tradução em Português (via Google):
O servidor tinha proteção Harmony, e provavelmente usa sua soma cliente. Este é um exemplo de suas configurações de checksum de conf/harmony_custom.conf:
////////////////////////////////////////////// CLIENT CHECKSUM /////////////////////////////////////////////// Harmony enforces the usage of unmodified client binaries.// However, you have to add your client checksum here to// allow only permitted exes. The checksum is a MD5 hash of// the exe.///// To get the checksum of your exe you can use this tool:// https://harmonize.it/customer/md5///// To reload this configuration while the server is running use @reloadharmony.////// GM level >= 0 requires this hashclient_checksum: 0, cd465a9c413648131b3cabe1dfd9e45d// GM level >= 20 requires this hash (level 0 hash works here, too)client_checksum: 20, cd465a9c413648131b3cabe1dfd9e45d// GM level 99 has no checksum limitationsclient_checksum: 99, off
Para contornar isso, você pode transformar verificação da Harmony off:
// GM level >= 0 requires this hashclient_checksum: 0, off// GM level >= 20 requires this hash (level 0 hash works here, too)client_checksum: 20, off// GM level 99 has no checksum limitationsclient_checksum: 99, off
Alternativamente, você pode carregar o seu cliente atual para calculadora MD5 da Harmony e usar o hash MD5 dado a você lá.
Disclaimer:
Hercules não suporta diretamente a Harmony, o arquivo referenciado neste post é baseado puramente na experiência pessoal. Embora a calculadora MD5 está disponível pelo link direto, arquivos e serviços de Harmony são exclusivamente destinados aos seus clientes. -
Hey YuukiRune! Do you have any works you would like to showcase? I'd love to see your recolours. c:
-
If it's of any interest to you, I was able to accomplish this without any source modifications.
I created a script function and named it groupid2name. For the sake of keeping things relevant, I used group names and IDs in correspondence to those in conf/groups.conf.
function script groupid2name { switch(getarg(0)) { case 0: return "Player"; case 1: return "Super Player"; case 2: return "Support"; case 3: return "Script Manager"; case 4: return "Event Manager"; case 10: return "Law Enforcement"; case 99: return "Admin"; default: return "Undefined Group"; }}
This function can now be called upon from any script with groupid2name(<parameter>). Whisper anything to npc:test_gid2name to test this script.
- script test_gid2name -1,{ OnWhisperGlobal: message strcharinfo(0), "Your group name is: "+ groupid2name(getgroupid()); end;}
The only limitation to this is that you will have to manually adjust the group names yourself. Despite that, the strength in this is that it eliminates the need to make source and conf modifications; in a way, it allows for dynamic group name changes without needing to directly modify conf/groups.conf. Updating is a snap too, as it's simply a matter of overwriting the old function.
Edits:
Added extra line-spacing because I'm tedious like that. c:Added default label in the switch, in the event someone has an undefined group ID.
evilpuncker reacted to this -
if(!isequipped(4172,4257,4230,4272)) bonus3 bAutoSpell,"RG_INTIMIDATE",1,20;
The expression reads: If the set (4172, 4257, 4230, and 4272) is NOT equipped...
The ! operator (a "logical not") at the very beginning of the expression essentially reverses the check and does exactly what you said it does; the script runs when the set of items is not equipped. If you would like for your that bonus to be applied when the set is equipped, simply remove the ! from the beginning of the expression.
-
oh thank you for the reply, but is it possible to incorporate that syntax inside the item script or maybe will use a function?
Yes, it is possible; give it a try. If you need a more elaborate script to run, you might wanna use a callfunc after the expression is found true.
-
-
Will pre-existing themes work with this release?
-
Could you post the code here in a codebox?
-
Update:
Forgot to add a label lol; if you already downloaded this, please refresh the page and download it again.
-
Event: Hercules Invasion
Description:
A completely revamped and optimized variation of the widely popular Poring Invasion event. Configuration settings are dynamic and easily modifiable. Customizable parameters include normal monsters, "prized" monsters, each respective monster amounts, monster tiers, invasion map,NPC name, and server name. NPC can be triggered by staff using the command @invasion.
Download:https://github.com/datmumbles/Scripts/raw/master/event/invasion.txt
-
Thanks. I will try this out.
Sure thing; be sure to adjust the success rates to your liking - the original request asked for particularly low rates. The .success array takes values in comparison to fractions (ex. 3, 4 is the same as 3 / 4 or 75%). Thanks for trying it out!
-
Update:
Revised the algorithm to randomize debris. Please re-download the file for the newest version.
-
if (select("Yes Please, No Thanks") == 2)
This should be:
if (select("Yes Please:No Thanks") == 2)
Edit:
Might wanna change end; to close; as well.
-
If you want a second list, just make a new array for your list and name it .monster2 or something more clever. You'll probably want to make a .min2 and .max2, then copy the for loop with the new variables.
If you wanted a zeny reward for all monsters in your database, just add this code without the for loop or if statement under the OnNPCKillEvent label:
.@mobzeny = rand(.min, .max); Zeny += .@mobzeny; message strcharinfo(0), "You received "+ .@mobzeny +" for killing "+ getmonsterinfo(.monster[.@i], 0) +"!";
-
is this .min = 1; // Minimum
.max = 100; // Maximum??
is that a percent or 1 to 100 z free ?
That sets the range of a random number from 1 to 100 to be rewarded in zeny.
-
In all truth, I know very little about how libconfig works, but it might be reading off as a double negative?
For example, if Law Enforcement inherits a permission group that can't trade, GM Chief inherits that can_trade: false setting. Here, you set GM Chief and Co-Admin to also have can_trade: false while inheriting permissions from other groups that already can't trade. Since they inherit a lower group's permissions, why would you need to define it again?
tl;dr:
Try removing any duplicate can_trade: false from groups that inherit or have that same permission setting.
-
Fill the array .monster with monster IDs that you would like to be affected by the zeny bonus; you can set the zeny range with .min and .max. If you load this script on a live server, whisper anything to npc:mobzeny to initialize the settings; you will have to do this every time you manually load the script into your server.
- script mobzeny -1,{ OnNPCKillEvent: // Get zeny if monster killed is listed for (.@i = 0; .@i < getarraysize(.monster); .@i++) { if(killedrid == .monster[.@i]) { .@mobzeny = rand(.min, .max); Zeny += .@mobzeny; message strcharinfo(0), "You received "+ .@mobzeny +" for killing "+ getmonsterinfo(.monster[.@i], 0) +"!"; } } end; OnWhisperGlobal: // Whisper anything to initialize settings message strcharinfo(0), strnpcinfo(1) +" : 'OnInit' label has been intialized."; OnInit: // List of monster IDs setarray .monster[0], 1001, 1002 , 1004, 1005; // Set zeny range .min = 1; // Minimum .max = 100; // Maximum end; }
Getting Hercules
in General Server Support
Posted
Just to reiterate, here's a guide on how to obtain Hercules on a Windows system with TortoiseGit: http://herc.ws/board/topic/152-obtaining-hercules/?p=845