-
Posts
85 -
Joined
-
Last visited
-
Days Won
3
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Posts posted by Keitenai
-
-
Try disabling the OFFICIAL_WALKPATH in src/config/core.hpp
-
Hello,
How can i check unit skill on an area?
EX: check deluge on area, or check firewall on area.
Thanks!
-
Hello!
So instead of requesting for src mod, i'd like to request anyone who already have done adding a custom mapflag and have time to share their complete tutorial on how to add custom mapflag in clear steps.
Thanks!
-
-
On 8/15/2018 at 6:20 AM, tribal0306 said:
vending.cpp(384): warning C4244: '-=': conversion from 'double' to 'int', possible loss of data
Should i ignore this warning?
in vending.cpp find this code:
sprintf(message + strlen(message), "Total profit: %s x %d", "Zeny" ,(mailprofit -= mailprofit * (battle_config.vending_tax / 10000.)));
change it to this:
sprintf(message + strlen(message), "Total profit: %s x %d", "Zeny" ,(mailprofit -= mailprofit * (int)(battle_config.vending_tax / 10000.)));
is my solution correct @Easycore ?
-
On 8/15/2017 at 10:09 AM, Z3R0 said:
Would have to see what you are actually trying to do then?
He's trying to say that "getitem3" can only give 1 random option..
He is asking on how to make "getitem3" to give 2 or more random options in one time.
perhaps @Cydh can help coz i am curious too.
-
the problem is in "if( countitem(909) < 100 );" & "if( countitem(909) < 200 );" & "if( countitem(909) < 300 );"
you should remove the ";"
-
for Royal Guard's costume body sprite,
rename ( grf\data\sprite\Àΰ£Á·\¸öÅë\³²\costume_1 ) it to ÆÈ¶óµò_³²_1 for male,
while ( grf\data\sprite\Àΰ£Á·\¸öÅë\¿©\costume_1 ) ÆÈ¶óµò_¿©_1 for female sprite to be used by paladin.
-
yes but you need to rename the costume sprite files according to the job
the body costume sprite is named for 3rd classes, therefore, you need to rename those to Tans jobs.
-
yes as long as you use the compatible client, and rename the costume sprite files according to the job that you will be adding it.
-
1 hour ago, Nero said:
Nid help everyone

Check your whole script.
i'm not getting your error upon testing.
Try making a separate txt file for the "guild_vs1s2" script so that you can trace where exactly is your missing ")"
-
try this @Nero:
- script guild_vs1s2 -1,{ OnAgitEnd: callsub( L_reward,0, "guild_vs1" ); end; OnAgitEnd2: callsub( L_reward,1, "guild_vs1" ); end; L_reward: .@type = getarg( 0,0 ); .@map$ = getarg( 1,"" ); if ( .@type == 0) { // woe fe setarray .@item_master, 30206,2; setarray .@item_member, 30206,1; } else { // woe se setarray .@item_master, 30206,2; setarray .@item_member, 30206,1; } .@item_master_size = getarraysize( .@item_master ) - 1; .@item_member_size = getarraysize( .@item_member ) - 1; if ( .@map$ != "" ) { .@gid = getcastledata( .@map$,1 ); if ( .@gid > 0 ) { getguildmember .@gid,1; getguildmember .@gid,2; .@master_id = getcharid( 3, getguildmaster( .@gid ) ); while ( .@i < [email protected] ) { .@x = 0; if ( isloggedin( [email protected][.@i],[email protected][.@i] ) ) { if ( [email protected][.@i] == .@master_id ) { while ( .@x < .@item_master_size ) { if(!checkvending(strcharinfo(0,[email protected][.@i]))) getitem .@item_master[.@x],.@item_master[.@x+1],[email protected][.@i]; .@x += 2; } } else { while ( .@x < .@item_member_size ) { if(!checkvending(strcharinfo(0,[email protected][.@i]))) getitem .@item_member[.@x],.@item_member[.@x+1],[email protected][.@i]; .@x += 2; } } } .@i++; } } } return; }
-
in client folder:
data\texture\scr_logo.bmp -
1 minute ago, Nero said:
Wow thanks!!! Fast answer!
you need to do thesame with members
if ( CheckVending() ) end;
getitem .@item_member[.@x],.@item_member[.@x+1],[email protected][.@i];
-
1
-
-
while ( .@x < .@item_master_size ) {
if ( CheckVending() ) end;
getitem .@item_master[.@x],.@item_master[.@x+1],[email protected][.@i]; .@x += 2; }
-
1
-
-
Automatically regulate excessive damage from players.
I use this in aim for balance damages from all Classes on a heavily customized server.
-
Keitenai Resistance Capping
File Name: Keitenai_Delay_System
File Submitter: keitenai
File Submitted: 27 Nov 2017
File Category: Src Modification
Content Author: keitenaiInformation:
Resistance capping applies to item effects which have "bSubEle, bSubSize, bSubRace2, bSubRace, bSubClass, bNearAtkDef, and bLongAtkDef".
This modification can be set to less than 100 resistance cap to avoid too resistance heal, or set over 100 upto max of 200 if the dev would like to enable resistance heal.
Features:
- Configurable Maximum resistance capping.
- Resistance capping can be applied to different resistance bonus types with different values.
- Resistance capping is applied to all items with resistance bonus scripts.
By buying this scr modification code, you agree to these terms:
- You are not allowed to redistribute this src code modification in any way, shape, or form.
- Chargeback scams are not tolerated and will get you punished on rAthena.
- I @Keitenai still retain all rights to this src modification.
- Terms above may be changed or adjusted without prior notification.
-
Submitter
-
Submitted11/27/2017
-
Category
-
Video
-
Content Authorkeitenai
-
Change this line:
getitem [email protected][[email protected]], [email protected][[email protected]+1];to this:
[email protected]_count = 10; // set this to your desired upgrade level getitembound2 [email protected][[email protected]],[email protected][[email protected]+1],1,[email protected]_count,0,0,0,0,0,Bound_Account; -
Just now, Kakaroto said:
Does this also check the resistances provided by consumables or equipment only?
it does check resistance from consumable like "Undead Elemental Scroll"
-
1
-
-
File Name: [email protected]
File Submitter: keitenai
File Submitted: 1 Dec 2017
File Category: Src Modification
Content Author: keitenaiInformation:
@ resist will check the current values of resistance from each element.
Thanks to @Santafe for the idea of this command.
1. Download the Diff file.
2. Patch the diff to your rAthena
3. Recompile your server.
4. RUN THE SERVER!
Compatible with: rAthena 03da2f6 ( as of Dec 1, 2017 )
Download : [email protected]
-
6
-
1
-
1
-
-
abyss_01,22,36,1 script Quest Helper#25 112,{ if(killmob_a == .AmountToKill_a && killmob_b == .AmountToKill_b && killmob_c == .AmountToKill_c && quest_active){ mes "[Warpra Helper]"; mes "Congratulations!"; set killmob_a,0; set killmob_b,0; set killmob_c,0; set quest_active,0; getitem .ItemPrize,.AmountItemPrize; close; } mes "[Warpra Helper]"; mes "You have to kill:"; mes getmonsterinfo(.MonsterToKill_a,MOB_NAME)+" ~ ^0000ff"+killmob_a+"/"+.AmountToKill_a+"^000000"; mes getmonsterinfo(.MonsterToKill_b,MOB_NAME)+" ~ ^0000ff"+killmob_b+"/"+.AmountToKill_b+"^000000"; mes getmonsterinfo(.MonsterToKill_c,MOB_NAME)+" ~ ^0000ff"+killmob_c+"/"+.AmountToKill_c+"^000000"; else if((killmob_a <= .AmountToKill_a || killmob_b <= .AmountToKill_b || !killmob_c <= .AmountToKill_c) && quest_active) close; else { next; mes "[Warpra Helper]"; mes "Do you want to accept the Quest?"; next; if(select("Yes")){ mes "[Warpra Helper]"; mes "You can now begin to Kill the Monsters !!"; set quest_active,1; close; } } end; OnNPCKillEvent: if(!quest_active) end; if(killedrid == .MonsterToKill_a){ set killmob_a,killmob_a + 1; if (killmob_a < .AmountToKill_a) dispbottom "You've killed "+killmob_a+"/"+.AmountToKill_a+" "+getmonsterinfo(.MonsterToKill_a,MOB_NAME); else if(killmob_a == .AmountToKill_a) dispbottom "You have killed all "+getmonsterinfo(.MonsterToKill_a,MOB_NAME); } if (killedrid == .MonsterToKill_b){ set killmob_b,killmob_b + 1; if (killmob_b < .AmountToKill_b) dispbottom "You've killed "+killmob_b+"/"+.AmountToKill_b+" "+getmonsterinfo(.MonsterToKill_b,MOB_NAME); else if(killmob_b == .AmountToKill_b) dispbottom "You have killed all "+getmonsterinfo(.MonsterToKill_b,MOB_NAME); } if (killedrid == .MonsterToKill_c){ set killmob_c,killmob_c + 1; if (killmob_c < .AmountToKill_c) dispbottom "You've killed "+killmob_c+"/"+.AmountToKill_c+" "+getmonsterinfo(.MonsterToKill_c,MOB_NAME); else if(killmob_c == .AmountToKill_c) dispbottom "You have killed all "+getmonsterinfo(.MonsterToKill_c,MOB_NAME); } end; //=============================================================== // CONFIGURATION ( change to your desire ) //=============================================================== OnInit: .MonsterToKill_a = 1002; .AmountToKill_a = 1; .MonsterToKill_b = 1004; .AmountToKill_b = 1; .MonsterToKill_c = 1005; .AmountToKill_c = 1; .ItemPrize = 909; .AmountItemPrize = 1; end; } -
DL link for patch has been updated.
Github patch has been updated.
This system has now been made compatible with latest rathena git as of 11/23/2017
-
1
-
-
On 8/17/2017 at 11:29 AM, gekigengar said:
Hello, I apologize if such method existed, but I cannot find anything searching on the forums.
Any ways to disable Bank/RODEX?
Or at least on certain maps like Jail/Certain maps?
There are a lot of item restriction that can be bypassed through RODEX/Bank..
Which caused a lot of my custom content to be broken.
People bypassing NPC checks to certain areas with restricted items through RODEX mail. (Such as no bringing Yggberry to pvp room, an entrance NPC could check, but inside, people can receive mails containing Ygg berry)
Or offending players sending out equipment out of jail through Rodex..
Thanks for sharing this issue.
Try this diff to disable rodex and bank on "nowarp" and "nowarpto" mapflags. I still haven't tested this yet though.
QuoteIndex: src/map/mail.c
===================================================================
--- src/map/mail.c (revision 6)
+++ src/map/mail.c (working copy)
@@ -113,6 +113,10 @@
* @return see enum mail_attach_result in mail.h
*/
enum mail_attach_result mail_setitem(struct map_session_data *sd, short idx, uint32 amount) {
+
+ if(map[sd->bl.m].flag.nowarpto || map[sd->bl.m].flag.nowarp)
+ return MAIL_ATTACH_ERROR;
+
if( pc_istrading(sd) )
return MAIL_ATTACH_ERROR;
Index: src/map/pc.c
===================================================================
--- src/map/pc.c (revision 7)
+++ src/map/pc.c (working copy)
@@ -11725,6 +11725,9 @@
enum e_BANKING_DEPOSIT_ACK pc_bank_deposit(struct map_session_data *sd, int money) {
unsigned int limit_check = money + sd->bank_vault;
+ if(map[sd->bl.m].flag.nowarpto || map[sd->bl.m].flag.nowarp)
+ return BDA_OVERFLOW;
+
if( money <= 0 || limit_check > MAX_BANK_ZENY ) {
return BDA_OVERFLOW;
} else if ( money > sd->status.zeny ) {
-
1
-
1
-
1
-
-
On 9/12/2017 at 6:27 AM, Jasc said:
Anyone know if it is possible to re-enable the old resistance system where if a player had over 100% resistance to an element, it would heal them for the excess amount. As of right now, the skills would "miss players" and items like Evil Druid Card would make other players do 1 damage on a resistance of -25 as shown on the property chart.
In conf/battle/battle.conf
Quote// Does HP recover if hit by an attribute that's same as your own? (Note 1)
attribute_recover: no
Set it to YES

Adding custom mapflag TUTORIAL
in Source Requests
Posted
LOL silly me!
Thanks!