Helena
-
Content Count
238 -
Joined
-
Last visited
Reputation Activity
-
Helena reacted to Dastgir in warpwaitingroompc not checking the required players.
Change
waitingroom "Waiting Room",3,"Guard::OnWarp",1;
To
waitingroom "Waiting Room",3,"Guard::OnWarp",3;
-
Helena reacted to Tokeiburu in Tracing wavs back to special effects?
Try waveffectvalentine.wav
Edit : the way you can find which sounds belong to which effects is by renmaing the waveffect folder to... waveffect.bak in your GRF and then play the effect ingame. It will throw you an error such as "resource missing: waveffectvalentine.wav" and then crash your client. When you're done you rename the folder back obviously.
-
Helena reacted to Ai4rei in The vending check box. How to hex out/disable?
Looks like a feature to prevent unintentional Zeny-overflow during vending.
-
Helena reacted to Neo-Mind in The vending check box. How to hex out/disable?
Haven't tested it but try this out
Find: 0F 85 96 00 00 00 68 D8
Replace: 90 E9 96 00 00 00 68 D8
-
Helena reacted to Angelmelody in Use item type 11 while sitting?
try this , hope it work
{
Id: 501
AegisName: "Red_Potion"
Name: "Red Potion"
Type: 0
Buy: 10
KeepAfterUse: true
Trade: {
override: 60
nodrop: true
notrade: true
noselltonpc: true
nomail: true
noauction: true
}
Script: <" itemheal rand(1000,200),0; ">
},
-
Helena reacted to Tokeiburu in How to decipher this string?
You won't find such a tool because it makes no sense to show a string like that. Also, gzip is not the same as zlib (they do share many similarities though!). Anyway, if you have .net 3.5 or more recent installed, you could use that (attached file), should be pretty straightforward to use :
Zlib Compression.zip
-
Helena reacted to GmOcean in How to not attach a timer to a character (using +x hours)
@1 - By default initnpctimer does not have a player attached so you can just use that if you choose to.
@2 -
TRUNCATE TABLE `table_name`
is used when you want to delete all the data from the given table, without deleting the table from the schema.
You shouldn't have any issues of table mix ups, since you can't have the same table name in the same schema.
So, if `votegoal` isn't the table you want to TRUNCATE, then perhaps a different table is what you need to do?
Additionally, if you're having issues, where `votegoal` is the name of a table inside 2 different schemas, and this is the problem, you should be able to specify which schema to truncate from:
query_sql("TRUNCATE database.schema `table_name`"); -
Helena reacted to Angelmelody in How to not attach a timer to a character (using +x hours)
try this- xxxxx xxx,{ ........................ ........................ announce "The server will now have the drop rates increased to 2x for the coming 24 hours!",bc_all; setbattleflag("item_rate_common", 200 ); dispbottom "Setting to 2x"; $ExpireTime = gettimetick(2)+86400;//--->24 hours = 60*60*24 = 86400 seconds end;OnInit: if($ExpireTime && gettimetick(2) < $ExpireTime) { setbattleflag("item_rate_common", 200 ); end; }OnMinute1: OnMinute2: OnMinute3: OnMinute4: OnMinute5: OnMinute6: OnMinute7: OnMinute8: OnMinute9: OnMinute10:OnMinute11: OnMinute12: OnMinute13: OnMinute14: OnMinute15: OnMinute16: OnMinute17: OnMinute18: OnMinute19: OnMinute20:OnMinute21: OnMinute22: OnMinute23: OnMinute24: OnMinute25: OnMinute26: OnMinute27: OnMinute28: OnMinute29: OnMinute30:OnMinute31: OnMinute32: OnMinute33: OnMinute34: OnMinute35: OnMinute36: OnMinute37: OnMinute38: OnMinute39: OnMinute40:OnMinute41: OnMinute42: OnMinute43: OnMinute44: OnMinute45: OnMinute46: OnMinute47: OnMinute48: OnMinute49: OnMinute50:OnMinute51: OnMinute52: OnMinute53: OnMinute54: OnMinute55: OnMinute56: OnMinute57: OnMinute58: OnMinute59: OnMinute0: if($ExpireTime && gettimetick(2) >= $ExpireTime) { //--->Judging if the time is expired or not per minute $ExpireTime = 0 ; setbattleflag("item_rate_common", 100 ); } end;} -
Helena reacted to evilpuncker in Spawn large monster through script, possible?
*monster "<map name>",<x>,<y>,"<name to show>",<mob id>,<amount>{,"<event label>"{,<size>{,<ai>}}};
-
Helena reacted to jaBote in Partymember unequal reward distribution
The script Dastgir made has a small mistake on the code:
if (attachrid($@partymemberaid[.@i]){ getitem 969,1; warp "prontera",156,184; end; } This means that when one gets the prizes, others won't since the execution of the script will get stopped there.
Try placing that end; at the end of the script, like this:
OnMobKilled3: if(!mobcount("que_qaru01",strnpcinfo(0)+"::OnMobKilled3")) { sleep2 2000; mapannounce "que_qaru01","Boss-Monster is now dead!",0; sleep2 2000; announce "Your party finished this monster battle, good job!",0; sleep2 2000; getpartymember getcharid(1),2; for(.@i = 0; .@i<$@partymembercount; .@i++){ if (attachrid($@partymemberaid[.@i]){ getitem 969,1; warp "prontera",156,184; } } } end;
Test and comment please
-
Helena reacted to AnnieRuru in How to do this? Don't allow @load to this town for non-castle owners
that was the least complex method in writing an instance script o.o
anyway
prontera,158,180,0 script Guild Town 123,{ if ( !getcharid(2) ) { mes "need a guild"; close; } if ( agitcheck() || agitcheck2() ) { mes "woe in progress"; close; } if ( getcastledata( "prtg_cas01", 1 ) != getcharid(2) && getcastledata( "payg_cas01", 1 ) != getcharid(2) && getcastledata( "aldeg_cas04", 1 ) != getcharid(2) && getcastledata( "gefg_cas04", 1 ) != getcharid(2) ) { mes "you need to hold a castle to gain access to guild town map"; close; } warp "guild_vs2",49,49; end;OnAgitStart: mapwarp "guild_vs2", "prontera",150,180; end;}guild_vs2 mapflag nowarptoguild_vs2 mapflag nomemoguild_vs2 mapflag nosave SavePoint -
Helena reacted to AnnieRuru in How to do this? Don't allow @load to this town for non-castle owners
GmOcean gonna drool over this
prontera,158,180,0 script Guild Town 123,{ if ( has_instance2( "guild_vs2" ) >= 0 ) { warp has_instance( "guild_vs2" ), 0,0; end; } if ( !getcharid(2) ) { mes "need a guild"; close; } if ( agitcheck() || agitcheck2() ) { mes "woe in progress"; close; } if ( getcastledata( "prtg_cas01", 1 ) != getcharid(2) && getcastledata( "payg_cas01", 1 ) != getcharid(2) && getcastledata( "aldeg_cas04", 1 ) != getcharid(2) && getcastledata( "gefg_cas04", 1 ) != getcharid(2) ) { mes "you need to hold a castle to gain access to guild town map"; close; } if ( ( .@ins = instance_create( "Guild Town", getcharid(2), IOT_GUILD ) ) < 0 ) { mes "error : "+ .@ins; close; } if ( instance_attachmap( "guild_vs2", .@ins, 1, getcharid(2)+"gtown" ) == "" ) { mes "error : 5"; instance_destroy .@ins; close; } instance_set_timeout 0, 0, .@ins; instance_init .@ins; instance_attach .@ins; .guild_town_id[.count] = .@ins; .count++; warp has_instance( "guild_vs2" ), 0,0; end;OnAgitStart: for ( .@i = 0; .@i < .count; .@i++ ) instance_destroy .guild_town_id[.@i]; deletearray .guild_town_id; .count = 0; end;}guild_vs2 mapflag nowarptoguild_vs2 mapflag nomemoguild_vs2 mapflag nosave SavePointchange guild_vs2 into guild_town -
Helena reacted to Garr in in-game item_db function. Is this possible to add?
Yeah, my bad, I completely forgot that it's not part of sql query ^^'
Also, for now this will only show @whodrops for first item in the list.
I'm not sure how you'd like to deal with it, to show chosen item? (Make it like next/previous menu along with whodrops option)
Or leave as is, where it shows only first item found?
[Edited code in my first post with your fix]
-
Helena reacted to jaBote in @whodrops full list?
No configs can change that AFAIK. @whodrops is limited by MAX_SEARCH constant in source, which is set in src/map/itemdb.h if I recall correctly. Either change that value from that file (which could also change any other feature in which it's used) or go to src/map/atcommand.c and go change MAX_SEARCH parameter to whatever number you want.
-
Helena reacted to Angelmelody in How to also block/check for items in cart?
http://herc.ws/board/topic/6029-script-cmd-cartcountitem/
Try this command that will immediately check cart inventory item
without waiting the emulator to save player's cart data
-
Helena reacted to Angelmelody in How to also block/check for items in cart?
- script Vanilla1 -1,{OnPCLoadMapEvent:getmapxy(.@map$,.@mapx,.@mapy,0);if(.@map$ == "prtg_cas01"){ for(set .@i,0; .@i < getarraysize(.itemcheck); set .@i, .@i + 1){ if(countitem(.itemcheck[.@i])){ dispbottom "[ Info ] : item ["+getitemname(.itemcheck[.@i])+"] found (Inventory). Kicking.."; warp "prontera",200,180; end; } if(query_sql("SELECT `nameid` FROM `cart_inventory` WHERE `char_id` = " + getcharid(0), .itemcheck[0]) { dispbottom "[ Info ] : item ["+getitemname(.itemcheck[.@i])+"] found (Cart). Kicking.."; warp "prontera",200,180; end; } }end;OnInit:setarray .itemcheck[0],2383,2204,20025,20026,20027,20028,20029,20030,20031,20032,20033;end;}prtg_cas01 mapflag loadevent -
Helena reacted to jaBote in How to also block/check for items in cart?
There's no current script command to retrieve the item list from a character's cart (or storage, or gstorage if ever needed), so you'd have to rethink and hope the player's cart has been saved previously to entering the WoE map and do a SQL query like this:
query_sql("SELECT `nameid` FROM `cart_inventory` WHERE `char_id` = " + getcharid(0), .@itemids);
You'll get all Item IDs the player has on this cart on the array .@itemids, so you have now to loop through it and check for every blacklisted item on each entry.
-
Helena reacted to Mumbles in How to add join main in this script?
OnPCLoginEvent: if (main) { atcommand "@main on"; } end; Something more like this o.o
-
Helena reacted to Angelmelody in Help me run this script on multiple maps please.
updated, try again
-
Helena reacted to AnnieRuru in command option/settings manager?
http://rathena.org/board/topic/92360-utility-onpclogin-gm-settings/?p=243632 -
Helena reacted to AnnieRuru in Annie's mvp room. Disable spawn?
http://upaste.me/3e1211085057a4cc8#
there is 1 reason that I don't want to make this into script release section
because I want to turn this into instance script =/
then there is theoretically not limit to the number of rooms that players can rent
-
Helena reacted to AnnieRuru in Annie's mvp room. Disable spawn?
http://rathena.org/board/topic/72376-mvp-summon-script/?p=245270
I actually release 1.4b in rathena that works in hercules
.
.
set .@menu[1], 1; // Turn Group 1 summons On/Off -> MVP set .@menu[2], 1; // Turn Group 2 summons On/Off -> mini bossyou just have to set these as 0 -
Helena reacted to AnnieRuru in Annie's mission board, drop missions on reborn?
not sure you can understand, but I have level up my scripting skill 3 times2006~2007 just learned how to script
2007~2009 2nd generation
2010~2011 3rd generation
2013~ now 4th generation
let me just brief you my past scripting techniques
example like search a value in array
http://upaste.me/91c4109597fd86270
in other words, any script that I made before 2012 is consider outdated script for me
.
.
.
.
stupid maki ... make eathena forum down againluckily I still have the plans in my old backup-disk
so the script should be
http://upaste.me/058f109570518cb1f
with the source modification of
http://upaste.me/6e0710958b3a393e1
-
Helena reacted to AnnieRuru in Keep effect/buff on dying?
https://github.com/HerculesWS/Hercules/blob/master/db/sc_config.txt
SC_INCMHPRATE, 1
SC_INCMSPRATE, 1
-
Helena reacted to Najara in All skills too weak?
Are you only talking about MATK or every skill in general? Here's the code to increase MATK based skills:
(It's already modified because I was facing this issue as well - edit to your liking)
Keep in mind though, if your Acid Demonstration is also based on MATK, you're gonna have to nerf that or Creators will be way too overpowered. :/
battle.c:
//MATK_RATE scales the damage. 100 = no change. 50 is halved, 200 is doubled, etc#define MATK_RATE( a ) { ad.damage= ad.damage*(a)/40; }//Adds dmg%. 100 = +100% (double) damage. 10 = +10% damage#define MATK_ADDRATE( a ) { ad.damage+= ad.damage*(a)/40; }//Adds an absolute value to damage. 100 = +100 damage#define MATK_ADD( a ) { ad.damage+= a; }