Angelmelody
-
Content Count
772 -
Joined
-
Last visited
-
Days Won
23
Reputation Activity
-
Angelmelody reacted to AnnieRuru in dispbottomcolor
since our developers are ... not implementing dispbottom and message with colors
http://herc.ws/board/topic/3899-suggestion-displaybottom-message-colors/?p=28345
I think I just make a release for this
Download: 1.2
Plugin
tested with
prontera,162,180,5 script asdf 100,{ dispbottomcolor "test color", 0xFF0000; dispbottomcolor "test color", 0x00FF00; dispbottomcolor "test color", 0x0000FF; dispbottomcolor "test color", 0xFFFFFF, 2000000; end;}PS: there is a reason that this couldn't be in the officialbecause hercules' clif->colormes is ... badly coded ...
changing that function also means change a lot of lines having clif->colormes, which is all over the places
-
Angelmelody reacted to AnnieRuru in Instance System
yes, official hercules instance script doesn't change much
prontera,155,180,0 script Party Room 123,{ if ( has_instance2( "1@cata" ) >= 0 ) { warp has_instance( "1@cata" ), 0,0; end; } mes "renting a room for party"; next; if ( ( .@ins = instance_create( "Rent a Room", getcharid(1) ) ) < 0 ) { mes "error : "+ .@ins; close; } if ( instance_attachmap( "1@cata", .@ins ) == "" ) { mes "error : 5"; instance_destroy .@ins; close; } instance_set_timeout 30, 0, .@ins; instance_init .@ins; instance_attach .@ins; warp has_instance( "1@cata" ), 0,0; end;}I'm sure you'll feel familiar with the old system
but look at this ... instance guild room ... yummy ~
prontera,158,180,0 script Guild Room 123,{ if ( has_instance2( "guild_vs2" ) >= 0 ) { warp has_instance( "guild_vs2" ), 0,0; end; } mes "renting a room for guild"; next; if ( ( .@ins = instance_create( "Rent a Room", getcharid(2), IOT_GUILD ) ) < 0 ) { mes "error : "+ .@ins; close; } if ( instance_attachmap( "guild_vs2", .@ins, 1, getcharid(2)+"room" ) == "" ) { mes "error : 5"; instance_destroy .@ins; close; } instance_set_timeout 30, 0, .@ins; instance_init .@ins; instance_attach .@ins; warp has_instance( "guild_vs2" ), 0,0; end;} unfortunately, many src edit from rathena are not compatible with herculesif you can read the source code, hercules source code parse faster than rathena
example like
rathena : clif_message
hercules : clif->message
so all your source edit has to be rewritten
fortunately, we have plugin system ...
http://herc.ws/board/topic/549-
so you just need to code it once, and can forget about it
-
Angelmelody reacted to AnnieRuru in warp portal causes map server crash
prontera,155,185,5 script abcde#1 100,{Onaaa: mes "testing ..."; next; mes "let's go !"; close2; getmapxy .@map$, .@x, .@y, 1; warpportal .@x+2, .@y+2, "yuno",157,51; end;}geffen,119,59,5 script abcde#2 100,{ doevent "abcde#1::Onaaa"; end;}change into- script abcde -1,{ mes "testing ..."; next; mes "let's go !"; close2; getmapxy .@map$, .@x, .@y, 1; warpportal .@x+2, .@y+2, "yuno",157,51; end;}prontera,155,185,5 duplicate(abcde) abcde#1 100geffen,119,59,5 duplicate(abcde) abcde#2 100..
I hope you get what I mean
-
Angelmelody reacted to kisuka in Massive RE Monster DB Update
https://github.com/HerculesWS/Hercules/commit/0fadf384a80a25f1af712232d14a664848dbff88
This has been a long time coming ^^; renewal's mob_db now matches official. Thanks for both Michi and I, we present to you a Hercules where your monsters now match official renewal stats, drops, exp, etc
This update changes many values (stats, exp, hp, lv, etc) on many monsters. These changes are on par with the latest official servers.
Enjoy.
Be sure to report any issues you may find
-
Angelmelody got a reaction from AnnieRuru in Display Input Amount to format
so....
getstrlen( .@str$ = getarg(0) ) -->pass an int type param won't show warning
getstrlen( getarg(0) ) --->pass an int type param will show warning
Assigning to a varaible is so amazing
-
Angelmelody got a reaction from AnnieRuru in Display Input Amount to format
Thanks ,but I test this script with passing an int variable as param,my map console show warning
function script int__ {.@i = getstrlen(getarg(0)) -3; //----> without assigning.@is_negative = charat( .@str$, 0 ) == "-";while ( .@i > .@is_negative ) {.@str$ = insertchar( .@str$, ",", .@i );.@i -= 3;}return .@str$;}prontera,153,180,5 script aaaa 100,{mes callfunc("int__",Zeny);close;}
[Warning]: Unexpected type for argument 1. Expected stri[Debug]: Data: param name='Zeny' type=20[Debug]: Function: getstrlen[Debug]: Source (NPC): aaaa at prontera (153,180)
-
Angelmelody got a reaction from Hadeszeus in Warper of Toasty need help
StartNode("Nameless Island", "function", "f_questnameless");
AddMap("Nameless Island", "nameless_n", 256, 215);
EndNode();
function script f_questnameless {
return (checkquest(xxxx) == 2);
}
-
-
Angelmelody got a reaction from Zirius in @recallall includes vendors @autotrade
just insert this line into for loop
if(pl_sd->state.autotrade) continue;
-
Angelmelody got a reaction from Zirius in @recallall includes vendors @autotrade
you can use addrid script command to recall all players who isn't with a vendor
through binding @recallall command to overwrite original recall command
http://herc.ws/board/topic/3285-script-command-addrid/
-
Angelmelody got a reaction from eKoh in Problem with collection.bmps
identifiedResourceName = "Helm of Darkness",
unidentifiedResourceName = "Helm of Darkness",
these are incorrect and should same as sprite name
-
Angelmelody got a reaction from Zirius in Example of an NPC that checks if a player has already learned a skill?
if( getskilllv(SM_FATALBLOW) ){ ....................................}if( getskilllv(MC_CHANGECART) ){ ....................................} -
Angelmelody got a reaction from JulioCF in Gerando seu próprio itemInfo.lua em português!
NumClass field was not working properly
sorry, my native language is Chinese and Here is my covert result:
[1112] = {
unidentifiedDisplayName = "擊刺長劍",
unidentifiedResourceName = "溯檜橫",
unidentifiedDescriptionName = {
"有著細長刃的劍,專門做刺穿用。",
"系列 : ^777777劍^000000 攻擊 : ^77777770^000000",
"重量 : ^77777750^000000",
"武器等級 : ^7777772^000000",
"要求等級 : ^77777714^000000",
"裝備 : ^777777初學者/劍士系列/商人系列/盜賊系列可以裝備 ^000000"
},
identifiedDisplayName = "擊刺長劍",
identifiedResourceName = "溯檜橫",
identifiedDescriptionName = {
"有著細長刃的劍,專門做刺穿用。",
"系列 : ^777777劍^000000 攻擊 : ^77777770^000000",
"重量 : ^77777750^000000",
"武器等級 : ^7777772^000000",
"要求等級 : ^77777714^000000",
"裝備 : ^777777初學者/劍士系列/商人系列/盜賊系列可以裝備 ^000000"
},
slotCount = 0,
ClassNum = 0 ----> this value should be 2
},
-
Angelmelody got a reaction from eKoh in How to detect that a player leaves a map?
OnPCLoadMapEvent: if(lastmap$!="" && strcharinfo(3)!=lastmap$) { player leaves a map } lastmap$ = strcharinfo(3); end; -
Angelmelody got a reaction from icabit in bonus_script by cydh
This script command is from rathena created by cydh ,I convert it to herc
*bonus_script "<script code>",<duration>{,<flag>{,<type>{,<status_icon>{,<char_id>}}}};This command will attach a script to a player for a given duration, in seconds.After that time, the script will automatically expire. The same bonus cannot bestacked. By default, this bonus will be stored on `bonus_script` table when playerlogs out.Note that the maximum number of 'bonus_script' commands that can run simultaneouslyfor a player is 20 (MAX_PC_BONUS_SCRIPT in 'src/common/mmo.h').Flags: (Default is 0) &1: Remove when dead. &2: Removable by Dispell. &4: Removable by Clearance. &8: Remove when player logs out.Types: This will be used to decide negative or positive buff for 'debuff_on_logout'. 0: Ignore the buff type and won't be removed if the flag is not &8 (Default) 1: Buff 2: DebuffStatus_icon: See "Status Icon" section in 'db/const.txt'. Default is SI_BLANK (-1).Example: // Apple gives you +5 Str bonus for 1 minute when it's consumed. 512,Apple,Apple,0,15,,20,,,,,0xFFFFFFFF,63,2,,,,,,{ bonus_script "{ bonus bStr,5; }",60; },{},{}
download: bonus script.patch
---- Table structure for table `bonus_script`--CREATE TABLE IF NOT EXISTS `bonus_script` ( `char_id` varchar(11) NOT NULL, `script` varchar(1024) NOT NULL, `tick` varchar(11) NOT NULL DEFAULT '0', `flag` varchar(3) NOT NULL DEFAULT '0', `type` char(1) NOT NULL DEFAULT '0', `icon` varchar(3) NOT NULL DEFAULT '-1') ENGINE=InnoDB; -
Angelmelody got a reaction from icabit in convert to hercules mod
Here yo go! ,I dont test shadow equipment ....good luck!
refine_bonus.patch
-
Angelmelody got a reaction from evilpuncker in bonus_script by cydh
This script command is from rathena created by cydh ,I convert it to herc
*bonus_script "<script code>",<duration>{,<flag>{,<type>{,<status_icon>{,<char_id>}}}};This command will attach a script to a player for a given duration, in seconds.After that time, the script will automatically expire. The same bonus cannot bestacked. By default, this bonus will be stored on `bonus_script` table when playerlogs out.Note that the maximum number of 'bonus_script' commands that can run simultaneouslyfor a player is 20 (MAX_PC_BONUS_SCRIPT in 'src/common/mmo.h').Flags: (Default is 0) &1: Remove when dead. &2: Removable by Dispell. &4: Removable by Clearance. &8: Remove when player logs out.Types: This will be used to decide negative or positive buff for 'debuff_on_logout'. 0: Ignore the buff type and won't be removed if the flag is not &8 (Default) 1: Buff 2: DebuffStatus_icon: See "Status Icon" section in 'db/const.txt'. Default is SI_BLANK (-1).Example: // Apple gives you +5 Str bonus for 1 minute when it's consumed. 512,Apple,Apple,0,15,,20,,,,,0xFFFFFFFF,63,2,,,,,,{ bonus_script "{ bonus bStr,5; }",60; },{},{}
download: bonus script.patch
---- Table structure for table `bonus_script`--CREATE TABLE IF NOT EXISTS `bonus_script` ( `char_id` varchar(11) NOT NULL, `script` varchar(1024) NOT NULL, `tick` varchar(11) NOT NULL DEFAULT '0', `flag` varchar(3) NOT NULL DEFAULT '0', `type` char(1) NOT NULL DEFAULT '0', `icon` varchar(3) NOT NULL DEFAULT '-1') ENGINE=InnoDB; -
Angelmelody reacted to evilpuncker in [GRF] ROTranslatedEN (just add to ini!)
what does it really does?
-
Angelmelody got a reaction from iZeal in [Script CMD] showscript
plz try example npc, I think nothing is better than first hand experience
-
Angelmelody got a reaction from evilpuncker in [Script CMD] showscript
idea from here: http://herc.ws/board/topic/3257-aegis-showscript-command/?p=21640
*showscrpt("<message>"{,<GID>}); This script will display the output message on top of the units Head
If an optional GID is specified, msg will be shown on specified units head.
if GID isn't specified or target not exist, msg will be shown on the invoking character
if GID isn't specified and there is no player attached, msg will be shown on npc's head
example:
prontera,120,120,2 script bla 120,{ showscript("plz input an online player's name!"); input .@name$; .@tgid = getcharid(3,.@name$); showscript("this is a test!",.@tgid); close;OnInit: showscript "I m npc bla";end;}
download:
showscript.c
-
Angelmelody got a reaction from Napster in [Script CMD] showscript
idea from here: http://herc.ws/board/topic/3257-aegis-showscript-command/?p=21640
*showscrpt("<message>"{,<GID>}); This script will display the output message on top of the units Head
If an optional GID is specified, msg will be shown on specified units head.
if GID isn't specified or target not exist, msg will be shown on the invoking character
if GID isn't specified and there is no player attached, msg will be shown on npc's head
example:
prontera,120,120,2 script bla 120,{ showscript("plz input an online player's name!"); input .@name$; .@tgid = getcharid(3,.@name$); showscript("this is a test!",.@tgid); close;OnInit: showscript "I m npc bla";end;}
download:
showscript.c
-
Angelmelody got a reaction from Jedzkie in [Script CMD] showscript
idea from here: http://herc.ws/board/topic/3257-aegis-showscript-command/?p=21640
*showscrpt("<message>"{,<GID>}); This script will display the output message on top of the units Head
If an optional GID is specified, msg will be shown on specified units head.
if GID isn't specified or target not exist, msg will be shown on the invoking character
if GID isn't specified and there is no player attached, msg will be shown on npc's head
example:
prontera,120,120,2 script bla 120,{ showscript("plz input an online player's name!"); input .@name$; .@tgid = getcharid(3,.@name$); showscript("this is a test!",.@tgid); close;OnInit: showscript "I m npc bla";end;}
download:
showscript.c
-
Angelmelody reacted to Mystery in July Digest 2014
July Digest 2014
The following digest covers the month of July 1st - July 31st 2014.
Development Highlights
[*]Update rAthena-main-upgrade.sql (f5de504) [*]Update rAthena-logs-upgrade.sql (9a36b78) [*]Fixed some skill checks considering Super Novices the same as Novices (92a249) [*]Updated SR_FLASHCOMBO behaviour (17e414) [*]Mado Behaviour Changes (da190e0) [*]Corrected list of skills that can be used while using mado [*]Corrected list of supportive skills that can't be cast in users with mado [*]Fixed *setmadogear behaviour, it would set mado to any character
[*]Updated warg skill check (cc4c87c) [*]Updated SQL-UPGRADE files (ef8700d) [*]Organized SQL-TOOLS (3213a3b) [*]SQL Reorganization (3ecf877) [*]Corrected some SC behaviour (9dd6ee) [*]Corrected compile errors in case DB_ENABLE_STATS is defined (222345) [*]Fixed an issue in the 'Invalid client hash' console message (8a1ad06) [*]Fixed issue with [AT]mount, it wasn't displaying the expected message (ec5117) [*]Fixed issue with mounts and jobchange, ranger and mechanic mounts (1eee0f) [*]Extracted method to obtain SYSTEM_INFO from functions in sysinfo.c (7cd967) [*]Minor script core fixes (2bbde24)
[*]Removed useless calls in script.c, Removed nullpo calls in script.c, scripts shouldn't crash the server [*]Added checks in several functions in order to prevent possible crashes [*]*resetstatus, *resetskill, *skillpointcount, *changesex, *successremovecards, *failedremovecards, *getequipcardid, *skilleffect, *atcommand, *cardscnt, *equip, *useatcmd [*]Corrected *specialeffect2 behaviour, when no player was attached and another player name was supplied it would stop script execution instead of displaying the effect
[*]Removed redundant data from guardian_data, saving up to 40 bytes per guardian (10240 bytes total) (d1d99a9) [*]Added support to show children of struct/union in Debug Help plugin (74c804) [*]Added sysinfo support to Debug Help plugin (23d696) [*]Fixed issue that when players used [at]fakename when disguised (1e492e3)
Scripting Highlights
[*]Removed duplicate code from the Cool Event NPCs (5955d8) [*]Moved common code to a function [*]Modified to use appropriate functions from function_kafras.txt [*]Modernized syntax/updated function documentation in both files [*]Fixed the Rachel NPC incorrectly stating it's warping you to Rachel, instead of Veins
Documentation Highlights
[*]Added documentation regarding hard coded constants (a10dd560)
July Statistics
[*]During the period there were 47 Commits. [*]Of these 47 commits, 11 included bug-fixes. [*]5 Commits from Pull Requests [*]In this month, there were 1,929 Additions and 1,905 Deletions.
-
Angelmelody got a reaction from Hadeszeus in About 1 Per Mac IP except vending or @AT
try the new one , after tested, it works for me- script Only1perMAC -1,{OnPCLoginEvent: if (getgmlevel() >= 99) end; if (query_sql("SELECT `char`.`name` FROM `char` LEFT JOIN login ON `char`.account_id=login.account_id WHERE login.last_mac=(SELECT last_mac FROM login WHERE account_id="+getcharid(3)+") AND `char`.online=1 AND `char`.char_id!="+getcharid(0), .@name$) >= 1) { for (set .@i,0; .@i<getarraysize(.@name$); set .@i,.@i+1) { if (!checkvending(.@name$[.@i])) set .@samemac, .@samemac +1; } if (.@samemac >= 1) { announce "Sorry, only 1 account per computer can be logged in at a time.", bc_self; sleep2 1000; atcommand "@kick "+strcharinfo(0); } } end;} -
Angelmelody got a reaction from Hadeszeus in Rental item problem with cards
try this
--- a/src/map/pc.c +++ b/src/map/pc.c @@ -496,6 +496,25 @@ void pc_rental_expire(struct map_session_data *sd, int i) { } clif->rental_expired(sd->fd, i, sd->status.inventory[i].nameid); + + { // expiration return card + int s,flag =0; + for (s = 0; s < MAX_SLOTS; s++) { + if( itemdb->exists(sd->status.inventory[i].card[s]) != NULL ){ + struct item card_it; + memset(&card_it,0,sizeof(card_it)); + card_it.nameid=sd->status.inventory[i].card[s]; + card_it.identify=itemdb->isidentified(card_it.nameid); + if ((flag = pc->additem(sd, &card_it, 1 ,LOG_TYPE_NONE))) + { + clif->additem(sd, 0, 0, flag); + storage->additem(sd,&card_it,1); + + } + } + } + } + pc->delitem(sd, i, sd->status.inventory[i].amount, 0, 0, LOG_TYPE_OTHER); } void pc_inventory_rentals(struct map_session_data *sd)