-
Posts
10015 -
Joined
-
Days Won
400
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Posts posted by Emistry
-
-
On 3/27/2024 at 1:30 PM, hinox said:
I get that, but there must be a sprite that i can change color of?
I would like to know this to
you basically just pick whatever effect you want and have it apply to the monsters
-
On 1/10/2023 at 7:42 AM, system9 said:
EQI_MAX
ensure your server have exported this constant to be allowed to use by script engine
On 5/22/2023 at 8:42 PM, playniks said:how to make your creation possible for only Headgear costumes (upper, mid and low) only?
may try configure the card/enchant equip location
On 2/10/2024 at 1:09 AM, Westin said:It's possible rent a enchat on item?
rental item are only meant for item itself, not compounding items like enchant/card
-
find the fakeicon(..) script command source mod and implement into your server
-
6 hours ago, Queen Freya said:
Want to ask question, where should i put this
run the SQL queries at your database engine, HeidiSQL, MySQL Workbench, PhpMyAdmin etc
-
may refer this topic, goddameit did something similar in the past.
https://rathena.org/board/topic/62654-send-e-mail-to-someone/
however it only work if the command are executed in same hosting environment
-
you can just make the item can only be equipped at right hand position.
-
you aren't using the script which I have updated for you in the earlier post.
prontera,146,171,6 script Portal Square 89,{ .@n$ = "[^3355FF Portal Square ^000000]"; .@party_id = getcharid(1); .@p_name$ = getpartyname(.@party_id); .@instance$ = "Portal Square"; if (!.@party_id || getcharid(0) != getpartyleader(.@party_id, 2)) { mes .@n$; mes "In able to enter the Portal Square, you must have a party."; close; } mes .@n$; mes "Portal Square is available everyday for 1 hour and 30 minutes."; mes "Remember, the room and everything inside including boss chamber and other resources, watch out for enemies as well since the room are pk free."; next; switch(select("Enter the Room:Cancel")) { case 1: switch(instance_enter("Portal Square")) { case 3: mes .@n$; mes "You doesn't have a party."; close; case 2: mes .@n$; mes "You can enter the room after making a party."; end; } break; case 2: mes .@n$; mes "Have a nice day then, see you later!."; break; } close; } //================================================================================== //--------|Map Flags|--------------------------------------------------------------- //================================================================================== prt_maze01 mapflag monster_noteleport prt_maze01 mapflag nowarpto prt_maze01 mapflag nomemo prt_maze01 mapflag noteleport prt_maze01 mapflag nosave SavePoint prt_maze01 mapflag nopenalty prt_maze01 mapflag pvp
- 1
-
may refer
https://github.com/cydh/rathena-wiki/blob/master/%40go_delay_when_hit.md
there are also alot topic about adding delay to command upon hit by monsters, search the forum.
-
autobonus "{ if (countitem(512)) delitem 512, 1; else unitstopattack(getcharid(3)); }",1000,1000;
something like this ?
-
prontera,146,171,6 script Portal Square 89,{ .@n$ = "[^3355FF Portal Square ^000000]"; .@party_id = getcharid(1); .@p_name$ = getpartyname(.@party_id); .@instance$ = "Portal Square"; if (getcharid(0) != getpartyleader(.@party_id,2)) { mes .@n$; mes "In able to enter the Portal Square, you must have a party."; close } mes .@n$; mes "Portal Square is available everyday for 1 hour and 30 minutes."; mes "Remember, the room and everything inside including boss chamber and other resources, watch out for enemies as well since the room are pk free."; next; switch(select("Enter the Room:Cancel")) { case 1: switch(instance_enter("Portal Square")) { case 3: mes .@n$; mes "You doesn't have a party."; close; case 2: mes .@n$; mes "You can enter the room after making a party."; end; } break; case 2: mes .@n$; mes "Have a nice day then, see you later!."; break; } close; } //================================================================================== //--------|Map Flags|--------------------------------------------------------------- //================================================================================== prt_maze01 mapflag monster_noteleport prt_maze01 mapflag nowarpto prt_maze01 mapflag nomemo prt_maze01 mapflag noteleport prt_maze01 mapflag nosave SavePoint prt_maze01 mapflag nopenalty prt_maze01 mapflag pvp
remove unnecessary brackets
- 1
-
On 1/24/2024 at 9:54 PM, PsyOps said:
Is there an existing script_command that will allow me to produce the value '2' as it includes reward 1 and 2.
that's not how bitmask work.
dont want it work this way? then change the whole thing, and not to use bitmask.
.RewardList = 1|2; // include only reward 1 and 2
using bitmask, this is the way to get reward 1 and 2.
- 1
-
ensure your NPC are using the correct shop type.
- shop
- cashshop
- itemshop
- pointshop
-
marketshop
-
On 1/28/2024 at 9:59 PM, Scofield said:
I would like to implement the feature of receiving drop bonuses while the PK mode is active
find these line in mob.cpp
// Cap it to 100% drop_rate = min( drop_rate, 10000 );
change to
if (sd->state.pvpmode) drop_rate += 100; // final drop rate increment by 1.00% // Cap it to 100% drop_rate = min( drop_rate, 10000 );
- 1
-
may try change
for (set .@i,0; .@i<=$avthana_countusers; set .@i, .@i+1 ) { if ($avthana_winnerparty$!=$avthana_mapusers$[.@i] && $avthana_winnerparty$!=getpartyname(getcharid(1,$avthana_mapusers$[.@i]))) { getmapxy(.@mapname$,.@mapx,.@mapy,BL_PC,$avthana_mapusers$[.@i]); if (.@mapname$=="thana_boss") charcommand "#return "+$avthana_mapusers$[.@i]; } // Get rid of the data at the same time! set $avthana_mapusers$[.@i],""; }
into
for (set .@i, 0; .@i <= $avthana_countusers; set .@i, .@i + 1) { // party name matched if ($avthana_winnerparty$ == $avthana_mapusers$[.@i]) continue; // player not found if (getmapxy(.@mapname$, .@mapx, .@mapy, BL_PC, $avthana_mapusers$[.@i])) continue; // party name matched if ($avthana_winnerparty$ != getpartyname(getcharid(1, $avthana_mapusers$[.@i]))) { if (.@mapname$ == "thana_boss") charcommand "#return "+$avthana_mapusers$[.@i]; } // Get rid of the data at the same time! set $avthana_mapusers$[.@i],""; }
-
-
agitstart(...) and agitcheck(...) are both different script command for different purpose.
*agitstart; *agitend; *agitstart2; *agitend2; *agitstart3; *agitend3; These commands will start and end War of Emperium FE, War of Emperium SE, or War of Emperium TE. This is a bit more complex than it sounds, since the commands themselves won't actually do anything interesting, except causing all 'OnAgitStart:' and 'OnAgitEnd:', 'OnAgitStart2:' and 'OnAgitEnd2:', or 'OnAgitStart3:' and 'OnAgitEnd3:' in the case of latter two commands, events to run everywhere, respectively. They are used as simple triggers to run a lot of complex scripts all across the server, and they, in turn, are triggered by clock with an 'OnClock<time>:' time-triggering label.
*agitcheck() *agitcheck2() *agitcheck3() These function will let you check whether the server is currently in WoE:FE mode (agitcheck()), WoE:SE mode (agitcheck2()), or WoE:TE mode (agitcheck3()) and will return true if War of Emperium is on and false if it isn't.
-
-
prontera,155,181,5 script Sample 757,{ mes "Enter character ID to move it to your account."; input .@value; query_sql("SELECT `account_id`, `char_id` FROM `char` WHERE `char_id` = "+.@value, .@aid, .@cid); if (!.@aid || !.@cid) { mes "Character doesn't exists."; close; } if (isloggedin(.@aid)) { mes "That account is logged in, please log off."; close; } query_sql("SELECT COUNT(1) FROM `char` WHERE `account_id` = "+getcharid(3), .@total_char); if (.@total_char >= 3) { mes "Your account already have more than 3 characters."; close; } query_sql("UPDATE `char` SET `account_id` = "+getcharid(3)+" WHERE `char_id` = "+.@cid); mes "Updated, please relog to see your new character."; close; }
-
you can still browse through the history to find what you want.
however, it probably easier if you just replace them by recreate all the mob spawn info based on your book
-
function script add_numbers { .@number_1 = getarg(0, 0); .@number_2 = getarg(1, 0); query_sql("INSERT INTO `table` (`value1`, `value2`) VALUES ("+.@number_1+", "+.@number_2+")"); return (.@number_1 + .@number_2); }
@sum = callfunc("add_numbers", 100, 200);
.
-
update your rathena.
if you cant, then find and replace with this
+ "GROUP BY `cid`, `nameid`, `name`"
- 1
-
if you want to adjust the damage of a skill, you will have to adjust the formula for skill damage calculation, and it affect everything monsters, not only MVP.
if you want to decrease the damage received by MVP, maybe consider to change the DamangeTaken field in mob_db
-
4 minutes ago, Emistry said:
this will be addressed in the upcoming version v1.4
refrain from creating multiple post just for same issue or question. One post is more than enough.
-
1 hour ago, GM Winter said:
hello sir where will i put this i try to insert it but i always got error
I have updated the provided code, and the script only have one part that used to display the menu, should at least try amend it instead of keep asking for spoonfeed and saying error without provide any details.
8 minutes ago, Rynbef said:The version I previously uploaded is already modified.
this version isn't recommended because there is a small bug where it skip items when attempt to generate the menu, causing wrong item index.
- 1
MOBCOUNT BY MOB_ID
in Source Support
Posted
what you need is rewrite the
static int buildin_mobcount_sub(struct block_list *bl,va_list ap)
into
static int buildin_mobcount_by_id_sub(struct block_list *bl,va_list ap) // Added by RoVeRT { unsigned int id = va_arg(ap,unsigned int); struct mob_data *md = ((struct mob_data *)bl); if (md->status.hp > 0 && md->status.class_ == id) return 1; return SCRIPT_CMD_SUCCESS; }
script_pushint(st,map_foreachinmap(buildin_mobcount_by_id_sub, id));