KohakuSan
-
Content Count
62 -
Joined
-
Last visited
Reputation Activity
-
KohakuSan reacted to Ind in Hercules Ultimate Localization Design
Hercules Ultimate Localization Design
Hello~! - What?!
Servers are now able to run under any number of languages, without having any of the default files modified Designed by Haruna and Ind
Translating NPCs without editing them
By launching map server with the --generate-translations param a .pot (.po template) file will be created with all of the servers translate-able strings (including all npc dialogue), this file can be edited in text mode or by utilising any .po editor (there are many out there; for a high range of OSes) A .po file does not need to be fully translated to be used, map server will know when loading the file, and will fallback to the hardcoded string in the npc files as necessary Users are able to change their language with the new @lang command, @lang controls what language users see in @commands (msg_txt stuff) as well as over npc dialogues map-server.conf has a new setting called default_language where server owners may specify which language should be used as a base When you have a new .po file you want map server to use, add it to db/translations.conf Easy to Maintain
Since .po is a widely used format there are many tools that can help with merging for example Poedit, which easily consolidates a translated .po file with a newly generated .pot. For example when you have a translated .po and since it was created npc dialogs were added or modified all you have to do is launch map server to generate a new .pot, open your old .po in Poedit, go "Catalog -> Update from POT file" and it will insert the new translatable strings without touching your existing translations, it will also notify you of any "obsolete" strings that are in your .po file but that are no longer in use Script Command Macro
Besides messages.conf, all the dialogue utilised by 'mes' and 'select' is included in the .pot automatically, this patch also introduces a mechanism for utilising strings outside of these commands, the script macro _() which can be employed just as if it were a script function, for example set .@status$,_("Available"); tells map server to export "Available" as a translate-able string when it is run with --generate-translations (when running map server normally the macro has no overhead during runtime) Special Thanks to
Raizen and Roberto from Cronus, we would not have worked on this if it weren't for them Links~!
Commit Editing Example
-
KohakuSan reacted to Dastgir in Ultimate Guild Ranker
File Name: Ultimate Guild Ranker
File Submitter: Dastgir
File Submitted: 17 Mar 2014
File Category: PvP, WoE, GvG, & Battleground
Script By Request : http://herc.ws/board/topic/4756-ultimate-guild-ranking
Percentage Changes:AgitCount= 20%Emp Break = 50%Active Participants = 20%KDR = 10%
Features:
Guild Ranking
Previous Month Guild Ranking
Rewards based on previous month
Edits to made after installing the Script:
Open npc/guild/agit_main.txt
Add Following Line
doevent "UltimateRanker#00::OnEmpBreak";
Before
// Adjust Economy Invest Level for Castle set .@Economy,getcastledata(strnpcinfo(2),2) - 5;
Have a Custom WoE? And its not triggering the Script??
Solution: add the following line on EmperiumBreaking Label.
doevent "UltimateRanker#00::OnEmpBreak";
Please report any bugs/suggestions.
Click here to download this file
-
KohakuSan reacted to Dastgir in Ultimate Guild Ranker
Not yet, (rather I forgot to), will add in upcoming days -
KohakuSan got a reaction from dhaisuke in How edit to increase the Heal, Potion Pitcher in SRC
Open the skill.c file in the emulatorsrcmap folder and look for this section:
It's pretty self-explanatory, just change a few of the numbers in the formulas on the Renewal/Not-Renewal part on which your server uses. Then recompile.
#ifdef RENEWAL /** * Renewal Heal Formula * Formula: ( [(Base Level + INT) / 5] ? 30 ) ? (Heal Level / 10) ? (Modifiers) + MATK **/ hp = (status->get_lv(src) + status_get_int(src)) / 5 * 30 * skill_lv / 10;#else // not RENEWAL hp = ( status->get_lv(src) + status_get_int(src) ) / 8 * (4 + ( skill_id == AB_HIGHNESSHEAL ? ( sd ? pc->checkskill(sd,AL_HEAL) : 10 ) : skill_lv ) * 8);#endif // RENEWAL if( sd && ((skill2_lv = pc->checkskill(sd, HP_MEDITATIO)) > 0) ) hp += hp * skill2_lv * 2 / 100; else if( src->type == BL_HOM && (skill2_lv = homun->checkskill(((TBL_HOM*)src), HLIF_BRAIN)) > 0 ) hp += hp * skill2_lv * 2 / 100; break; } -
KohakuSan reacted to Tokeiburu in Change sprite layer colors on ActOR
Yes, this can be done with ActOR.
Script(S) > Edit... >
for AID = 0, GetNumAct() - 1 do for FID = 0, GetNumFrame(AID) - 1 do for PID = 0, GetNumPat(AID, FID) - 1 do SetA(AID, FID, PID, 0x80); SetB(AID, FID, PID, 0xff); SetG(AID, FID, PID, 0xff); SetR(AID, FID, PID, 0xff); end; end;end; > Run.
With Act Editor :
Scripts > Script Runner >
act.SetColor("0x80ffffff"); > Run.