-
Posts
10017 -
Joined
-
Days Won
407
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Posts posted by Emistry
-
-
.@item_id = groupranditem(IG_Taming); getitem .@item_id, 1; announce "["+strcharinfo(0)+" obtained "+getitemname(.@item_id)+"]", bc_all;
-
if not mistaken, in official they should share the kill count if the party member are nearby...
-
ALTER TABLE `char` ADD `pvp_kill` INT(11) UNSIGNED NOT NULL DEFAULT '0' AFTER `fame`;
have you loaded the SQL script that was provided ?
-
1
-
-
query_sql("SELECT `id`, `name_endlish` FROM `mob_db` WHERE `card_id` > 0 AND `id` NOT IN (1083,1084) ORDER BY RAND() LIMIT 1",.@mob_id,.@mob_name$);
if u have a complete mob_db , just filter all the mob using the sql query.
NOT IN (1083,1084)
just fill in more mob_id that you want to blacklist.
-
this? conf/battle/gm.conf#L38-L42
// requires RENEWAL_EXP or RENEWAL_DROP to be enabled (src/config/renewal.hpp) // modifies @mobinfo to display the users' real drop rate as per renewal_drop formula // modifies @iteminfo to not display the minimum item drop rate (since it can't tell the mob level) // modifies @whodrops to display the users' real drop rate as per renewal_drop formula atcommand_mobinfo_type: 1
-
- script sample -1,{ OnNPCKillEvent: if (.player_count >= 20) { if (rand(1, 100) == 1) getitem 40003, 1; } end; OnPCLoginEvent: .player_count++; end; OnPCLogoutEvent: .player_count--; end; OnUpdate: if (.player_count < 20) { announce "There is "+.player_count+"/20 players online, a drop event will start when there is a total of 20 players online!", bc_all; } else if (.player_count == 20) { announce "A total "+.player_count+" player is online now, mini event will start, all monster will now drop Gatcha ticket by 1%", bc_all; } end; }
-
On 7/23/2022 at 6:36 AM, iFox said:
Good day sir. How about if just for overally monster and no required lvl? and plus additional exp gain for about 10-20%? Thank you in advance.
just change your server exp rate to 10~20% higher ?
-
- script atcmd_example -1,{ OnInit: bindatcmd "dice",strnpcinfo(3) + "::OnAtcommand"; end; OnAtcommand: switch (atoi(.@atcmd_parameters$)) { case 1: emotion ET_DICE1, getcharid(3); break; case 2: emotion ET_DICE2, getcharid(3); break; case 3: emotion ET_DICE3, getcharid(3); break; case 4: emotion ET_DICE4, getcharid(3); break; case 5: emotion ET_DICE5, getcharid(3); break; case 6: emotion ET_DICE6, getcharid(3); break; default: dispbottom "Invalid. " + .@atcmd_command$ + " <1-6>"; break; } end; }
-
the account_id field has been dropped from the guild_member table, unless you rollback the commits that did this, else no point to re-add it since the field wont have value stored there
alternatively, you could just rewrite the SQL to do a INNER JOIN or LEFT JOIN, to get your data.
but since you're not really using .Options & 4 ... I guess its fine if you do the easier way.
find
SELECT account_id,char_id FROM `guild_member`....
and replace into
SELECT account_id,char_id FROM `char`....
-
OnNPCKillEvent: if(!dagger) end;
Change to
OnNPCKillEvent: if(!dagger || dagger_quest2 == 1) end;
-
On 6/16/2022 at 5:39 AM, iraciz said:
Bindatcommands are not working in the item scripts.
*useatcmd "<command>"; This command will execute a script-bound atcommand for the attached RID. If the supplied command is not bound to any script, this command will act like 'atcommand' and attempt to execute a source-defined command. The three .@atcmd_***** variables will NOT be set when invoking script-bound atcommands in this way.
-
1
-
-
if (instance_create(.@md_name$) < 0) { mes "Party Name: "+ getpartyname(.@party_id); mes "Party Leader: "+strcharinfo(0); mes "^0000ff"+.@md_name$+" ^000000- Reservation Failed!"; close; }
try change to
if (.instance_id) { if (instance_live_info(ILI_MODE, .instance_id) != -1) { mes "Someone already started before you."; mes "^0000ff"+.@md_name$+" ^000000- Reservation Failed!"; close; } } .@instance_id = instance_create(.@md_name$); if (.@instance_id < 0) { mes "Party Name: "+ getpartyname(.@party_id); mes "Party Leader: "+strcharinfo(0); mes "^0000ff"+.@md_name$+" ^000000- Reservation Failed!"; close; } .instance_id = .@instance_id;
-
if the db isn't stored in same instance, then you probably should setup a scheduled tasks to sync it or manually sync it instead.
-
unequip EQI_ARMOR; <-------- delitem 30063,1; delequip .@item,1;
you aren't suppose to unequip the equipment when you trying to delete it.
-
query_sql("UPDATE `e_broadcast` SET `repeat` = 1 WHERE `id` = "+.@id[.@i]+" LIMIT ");
change to
query_sql("UPDATE `e_broadcast` SET `repeat` = 1 WHERE `id` = "+.@id[.@i]+" LIMIT 1");
-
On 5/31/2022 at 7:28 PM, powkda said:
to check if in any member of the group at @autotrade and if you don't give the cash to that member.
if (checkvending(convertpcinfo($@partymemberaid[.@i], CPC_NAME)) & 2) continue;
-
sc_start (SC_STRFOOD + .@i - 1), 1200000, .@stats[.@stat - bStr];
change to
sc_start (SC_STRFOOD + .@i - 1 - bStr), 1200000, .@stats[.@stat - bStr];
-
3 hours ago, kalabasa said:
the given range slots of NPC that you mentioned or
range slot, when the server startup it will auto allocate some space to hold the npc view data
if you assigned too much free slot, you are just wasting ur resources.
3 hours ago, kalabasa said:higher NPC id's ?
and value shouldn't exceed NPC_RANGE3_END (unless you know exactly what you are trying to do), else no resources will be allocated for the npc view data.
-
1
-
-
function deleteItem { .@item_req_ratio = 1; if (@rebirth_type == 1 && ) .@item_req_ratio = max(1, (rebirth_no / 20)); for (.@i=0 ; .@i < .size_item; .@i += 3 ){ if ( !( getarg(0)&(.item_req[.@i+2]) ) ){continue;} delitem .item_req[.@i], ( .item_req[ .@i+1 ] * .@item_req_ratio); } return; }
function CheckItemNeed { if ( Weight > 200000 ) { mes "You must reduce your weight to 2000 to do Rebirth."; close; } .@item_req_ratio = 1; if (@rebirth_type == 1 && ) .@item_req_ratio = max(1, (rebirth_no / 20)); .@error = 0; for (.@i=0 ; .@i < .size_item; .@i += 3 ){ if ( !( getarg(0)&(.item_req[.@i+2]) ) ){continue;} if ( countitem( .item_req[.@i] ) < (.item_req[ .@i+1 ] * .@item_req_ratio) ) { mes "You Require [^ff0000"+countitem( .item_req[.@i] )+" / "+ (.item_req[ .@i+1 ] * .@item_req_ratio) +"^000000] ^112FD9"+getitemname( .item_req[.@i] )+"^000000"; .@error = 1; }else{ mes "You Require [^00ff00"+countitem( .item_req[.@i] )+" / "+ (.item_req[ .@i+1 ] * .@item_req_ratio) +"^000000] ^112FD9"+getitemname( .item_req[.@i] )+"^000000"; } } if (.@error && !getarg(1,0)){close;} return; }
change the both script function that calculate and display then delete the required items.
-
OnPCLoginEvent: if (#GetCashFree) { dispbottom "You gained 100,000 cashpoint!!! Enjoy!"; #CASHPOINTS += 100000; #GetCashFree = 1; } end;
A permanent global account variable stored by the login server is more than enough, unless ur server support multiple different char-server
-
if you have zero idea how to install and load a NPC script, you can start by reading the wiki.
https://github.com/rathena/rathena/wiki/Adding-a-Script#adding-and-activating-scripts
-
if you're running NPC script, use this instead
*successrefitem <equipment slot>{,<count>{,<char_id>}}; This command will refine an item in the specified equipment slot of the invoking character by +1, or a count if given. For a list of equipment slots see 'getequipid'. This command will also display a 'refine success' effect on the character and put appropriate messages into their chat window. It will also give the character fame points if a weapon reached +10 this way, even though these will only take effect for blacksmith who will later forge a weapon.
if (getrefine() >= 6) successrefitem EQI_ARMOR, 1;
-
OnNPCKillEvent: if (getmonsterinfo(killedrid,22)) { announce "Congratulations! Player, "+ strcharinfo(0) +" has killed MVP "+ getmonsterinfo( killedrid, MOB_NAME ) +" and obtained 'Poring Coin' at "+ strcharinfo(3), 0, 0x00FF00; getitem 7539, 5; } end;
-
On 4/5/2022 at 7:13 AM, Redao said:
he ghostring monster from pay_fild04, is there any way I can block the DROP of his card "only on this MAP?"
1.
instead of removing it, why not just remove the other ghostring from other map ? spawn a clone of ghosting using new mob_id (or existing event mob) that has no item drops.
2.
But of course, you could also remove this from payon map, then spawn it using NPC script that run an event label to simulate the item drops if you willing to sacrifice some processing power and do calculation for item drop penalty or bubble gum bonus.
On 4/5/2022 at 7:13 AM, Redao said:Is there a way to block the Drop of a certain card in the Endless Tower?
For example: Blocking the Boss Scene Card drop on the Endless Tower map.
read point 2 above, by default all instance monster are spawned by NPC script, they run event label when died.
H>Guild Storage
in Scripting Support
Posted
GSTORAGE_NO_STORAGE - Guild hasn't invested in the Guild Storage Expansion skill (only if OFFICIAL_GUILD_STORAGE is enabled).
doc\script_commands.txt