-
Posts
241 -
Joined
-
Last visited
-
Days Won
1
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Posts posted by Gouki
-
-
14 hours ago, Start_ said:
\doc\sample\npc_dynamic_shop.txt
This one actually works, but would there be something like you can see how much is left for you to buy? and easier to script to work with? on dynamic shop it looks like you need to replicate every script for each item you will be selling isn't that right?
-
will check it out thank you
-
Hi all,
Been searching through the forums, I saw a server had this. but can't find one here..
Zeny shop but with limited supply only.
-
Web Host - Disk Usage full > cleared space and everything worked again. [RESOLVED]
-
-
Hi @AnnieRuru
I actually have similar to what you have, but whenever I use the #command <Player Name> (not @command), nothing shows on my chat box..- script command_controller -1,{ OnInit: bindatcmd("roks", strnpcinfo(0) +"::OnRoks", 99, 99); end; OnRoks: message strcharinfo(0), "This player has "+ getvar(#CASHPOINTS, getcharid(0, .@atcmd_parameters$)) +" RoK Points"; end; }
-
Hi @Tokei
I need to fix this item or delete for me to extract to a folder for AndRO.
Can you please help me determine how to locate this korean in english?
I gave it a shot by typing 뮜?. in the collection tab but I can't locate it. (or maybe because my raw folder is in english)
-
Hi!
Does anyone know how to show #cashpoint of a player?
on a GM Standpoint, #command.
something like #Showcash PLAYERNAME -
5 hours ago, shatowolf said:
just reboot your vps.
make sure you have 2gb+ ram.
This actually worked I restarted my VPS a while ago and everything worked fine. thank you!
-
Hi Guys!
Can anyone help me solve this issue? I'm pretty sure I do have a working SRC and even used my back up working SRC, but still having this error.
any inputs please?
-
Not sure if this is a database configuration thing...
Just want to allow the placement of boxes on the skillbar hotkey (F12 slots)
EX of items that can't be placed is:
14003 Elite Siege Supply Box
Not like OBB you can drop it there, but whenever you drop the Elite Siege Supply box, you can't.
Already tried following the item type or the whole item line of OBB but still it can't be placed on the skillslot. -
Hi Sader,
Found this on a thread using the search bar, I'm not much knowledgeable in scripts so I think it's best to have you check it.
May you please check and verify if it fits your script well?
This is from @jeronpot, allowing to continue points even if disconnected.#HourlyRewards = 0; OnPCLogoutEvent: if(.s_GePard_ip){ query_logsql("delete from `sader_variables_log` where `variable` = '#Hourly_Rewads_Check' AND `account_id`= '"+getcharid(3)+"'"); } if(#Hourly_Ban == 1){ #Hourly_Ban = 0; } #Hourly_Rewads_Check = 0; end;
Also, this to check how many remaining minutes left to get the next point by @Poring King
OnCheck: message strcharinfo(0),@hourly_points_timer ? Time2Str( @hourly_points_timer )+" Remaining.":"Something went wrong relog!"; end;
-
Can I please ask for a sql script to save just only #HourlyRewards?
I believe it is saved here at acc_reg_num? the rest of the data should be dropped or deleted.
-
Not sure where this question falls..
But I just want to correct the sentence of the job manual.
It should be: JOB EXP from Monsters will increase 50% for 30mins.
It
-
11 hours ago, AnnieRuru said:
answer all your question
set MaxWeight, MaxWeight - 1000;
yes, I remember there was a bug report that merchant's increase weight limit doesn't work properly after using MaxWeight constant
however after me suggesting adding `bAddMaxWeight` the problem is gone
there shouldn't be any problem as the weight formula is calculate properly if using bAddMaxWeight -> eg: if they equip this item they immediately overweight if low strength
bonus bAddMaxWeight, -1000;
Hi Annie! I think the bonus bAddMaxWeight, -1000; is for item script only? Or it does work also on txt scripts?
if (gympassmemory = 10) { set gympassmemory,0; bonus bAddMaxWeight, -1000; }
-
How do you wipe all data except for Char and Login?
I tried exporting a clean main.sql > removing Char / Login > uploading the back up Char and Login.
but when you login ingame it says, SQL error contact administrator.. -
On 9/13/2020 at 2:49 AM, Emistry said:
if not mistaken, change item type to 18
14003,Elite_Siege_Supply_Box,Elite Siege Supply Box,18,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ getitem 11503,100; getitem 11504,50; },{},{}
Item Type set to 18 already by default, however it still can't be placed on the skill slots.., same goes with Light Blue Box and White Blue Box. would there be another way?
-
Hi all,
Just want to rollback the GYMPASS effect.
Would this work? any side effects?
set MaxWeight, MaxWeight - 1000;
and to be coded like this?
if (gympassmemory = 10) { set gympassmemory,0; set MaxWeight, MaxWeight - 1000; }
-
On 9/19/2020 at 11:59 AM, Akbare said:
before start your map-server youse screen command
#screen [enter]
#./athena-start start
to preview , use
#screen -ls
#screen -pid[number in screen -ls]
Hi whenever I type , screen it says command not found.
If I type in #screen it does nothing... -
I will try this later AnnieRuRu, thank you so much for helping! very detailed and informative.
- 1
-
Alright Annie, I'll drop by your discord as soon as I get off from work thank you so much really for helping out.
-
12 hours ago, AnnieRuru said:
... same person ... ok I answer this one, my main forum is hercules so I wont be around forever
the trick is ... add return; to all the functions containing title MAIL, this will effectively block all the codes of mail to run
src/map/clif.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/map/clif.cpp b/src/map/clif.cpp index da270e2ff..13658d283 100644 --- a/src/map/clif.cpp +++ b/src/map/clif.cpp @@ -15342,6 +15342,7 @@ void clif_parse_Check(int fd, struct map_session_data *sd) /// 1 = over weight /// 2 = fatal error void clif_Mail_setattachment( struct map_session_data* sd, int index, int amount, uint8 flag ){ + return; int fd = sd->fd; #if PACKETVER < 20150513 @@ -15397,6 +15398,7 @@ void clif_Mail_setattachment( struct map_session_data* sd, int index, int amount /// 09f2 <mail id>.Q <mail tab>.B <result>.B (ZC_ACK_ZENY_FROM_MAIL) /// 09f4 <mail id>.Q <mail tab>.B <result>.B (ZC_ACK_ITEM_FROM_MAIL) void clif_mail_getattachment(struct map_session_data* sd, struct mail_message *msg, uint8 result, enum mail_attachment_type type) { + return; #if PACKETVER < 20150513 int fd = sd->fd; @@ -15433,6 +15435,7 @@ void clif_mail_getattachment(struct map_session_data* sd, struct mail_message *m /// 1 = recipinent does not exist /// 09ed <result>.B (ZC_ACK_WRITE_MAIL) void clif_Mail_send(struct map_session_data* sd, enum mail_send_result result){ + return; #if PACKETVER < 20150513 int fd = sd->fd; @@ -15457,6 +15460,7 @@ void clif_Mail_send(struct map_session_data* sd, enum mail_send_result result){ /// 1 = failure // 09f6 <mail tab>.B <mail id>.Q (ZC_ACK_DELETE_MAIL) void clif_mail_delete( struct map_session_data* sd, struct mail_message *msg, bool success ){ + return; #if PACKETVER < 20150513 int fd = sd->fd; @@ -15486,6 +15490,7 @@ void clif_mail_delete( struct map_session_data* sd, struct mail_message *msg, bo /// 1 = failure void clif_Mail_return(int fd, int mail_id, short fail) { + return; WFIFOHEAD(fd,packet_len(0x274)); WFIFOW(fd,0) = 0x274; WFIFOL(fd,2) = mail_id; @@ -15497,6 +15502,7 @@ void clif_Mail_return(int fd, int mail_id, short fail) /// 024a <mail id>.L <title>.40B <sender>.24B (ZC_MAIL_RECEIVE) /// 09e7 <result>.B (ZC_NOTIFY_UNREADMAIL) void clif_Mail_new(struct map_session_data* sd, int mail_id, const char *sender, const char *title){ + return; #if PACKETVER < 20150513 int fd = sd->fd; @@ -15522,6 +15528,7 @@ void clif_Mail_new(struct map_session_data* sd, int mail_id, const char *sender, /// 1 = close void clif_Mail_window(int fd, int flag) { + return; WFIFOHEAD(fd,packet_len(0x260)); WFIFOW(fd,0) = 0x260; WFIFOL(fd,2) = flag; @@ -15540,6 +15547,7 @@ void clif_Mail_window(int fd, int flag) /// 0ac2 <packet len>.W <unknown>.B (ZC_ACK_MAIL_LIST3) /// { <type>.B <mail id>.Q <read>.B <type>.B <sender>.24B <expires>.L <title length>.W <title>.?B }* void clif_Mail_refreshinbox(struct map_session_data *sd,enum mail_inbox_type type,int64 mailID){ + return; #if PACKETVER < 20150513 int fd = sd->fd; struct mail_data *md = &sd->mail.inbox; @@ -15733,6 +15741,7 @@ void clif_Mail_refreshinbox(struct map_session_data *sd,enum mail_inbox_type typ /// 0ac0 <mail id>.Q <unknown>.16B (CZ_OPEN_MAILBOX2) /// 0ac1 <mail id>.Q <unknown>.16B (CZ_REQ_REFRESH_MAIL_LIST2) void clif_parse_Mail_refreshinbox(int fd, struct map_session_data *sd){ + return; #if PACKETVER < 20150513 struct mail_data* md = &sd->mail.inbox; @@ -15796,6 +15805,7 @@ void clif_parse_Mail_refreshinbox(int fd, struct map_session_data *sd){ /// { }*n // TODO: Packet description => for repeated block void clif_Mail_read( struct map_session_data *sd, int mail_id ){ + return; int i, fd = sd->fd; ARR_FIND(0, MAIL_MAX_INBOX, i, sd->mail.inbox.msg[i].id == mail_id); @@ -15911,6 +15921,7 @@ void clif_Mail_read( struct map_session_data *sd, int mail_id ){ /// 0241 <mail id>.L (CZ_MAIL_OPEN) /// 09ea <mail tab>.B <mail id>.Q (CZ_REQ_READ_MAIL) void clif_parse_Mail_read(int fd, struct map_session_data *sd){ + return; #if PACKETVER < 20150513 int mail_id = RFIFOL(fd,packet_db[RFIFOW(fd,0)].pos[0]); #else @@ -15929,6 +15940,7 @@ void clif_parse_Mail_read(int fd, struct map_session_data *sd){ /// Allow a player to begin writing a mail /// 0a12 <receiver>.24B <success>.B (ZC_ACK_OPEN_WRITE_MAIL) void clif_send_Mail_beginwrite_ack( struct map_session_data *sd, char* name, bool success ){ + return; PACKET_ZC_ACK_OPEN_WRITE_MAIL p = { 0 }; p.PacketType = rodexopenwrite; @@ -15940,6 +15952,7 @@ void clif_send_Mail_beginwrite_ack( struct map_session_data *sd, char* name, boo /// Request to start writing a mail /// 0a08 <receiver>.24B (CZ_REQ_OPEN_WRITE_MAIL) void clif_parse_Mail_beginwrite( int fd, struct map_session_data *sd ){ + return; char name[NAME_LENGTH]; safestrncpy(name, RFIFOCP(fd, 2), NAME_LENGTH); @@ -15958,6 +15971,7 @@ void clif_parse_Mail_beginwrite( int fd, struct map_session_data *sd ){ /// Notification that the client cancelled writing a mail /// 0a03 (CZ_REQ_CANCEL_WRITE_MAIL) void clif_parse_Mail_cancelwrite( int fd, struct map_session_data *sd ){ + return; sd->state.mail_writing = false; } @@ -15965,6 +15979,7 @@ void clif_parse_Mail_cancelwrite( int fd, struct map_session_data *sd ){ /// 0a14 <char id>.L <class>.W <base level>.W (ZC_CHECK_RECEIVE_CHARACTER_NAME) /// 0a51 <char id>.L <class>.W <base level>.W <name>.24B (ZC_CHECK_RECEIVE_CHARACTER_NAME2) void clif_Mail_Receiver_Ack( struct map_session_data* sd, uint32 char_id, short class_, uint32 level, const char* name ){ + return; PACKET_ZC_CHECKNAME p = { 0 }; p.PacketType = rodexcheckplayer; @@ -15980,6 +15995,7 @@ void clif_Mail_Receiver_Ack( struct map_session_data* sd, uint32 char_id, short /// Request information about the recipient /// 0a13 <name>.24B (CZ_CHECK_RECEIVE_CHARACTER_NAME) void clif_parse_Mail_Receiver_Check(int fd, struct map_session_data *sd) { + return; static char name[NAME_LENGTH]; safestrncpy(name, RFIFOCP(fd, 2), NAME_LENGTH); @@ -15992,6 +16008,7 @@ void clif_parse_Mail_Receiver_Check(int fd, struct map_session_data *sd) { /// 09f1 <mail id>.Q <mail tab>.B (CZ_REQ_ZENY_FROM_MAIL) /// 09f3 <mail id>.Q <mail tab>.B (CZ_REQ_ITEM_FROM_MAIL) void clif_parse_Mail_getattach( int fd, struct map_session_data *sd ){ + return; int i; struct mail_message* msg; #if PACKETVER < 20150513 @@ -16090,6 +16107,7 @@ void clif_parse_Mail_getattach( int fd, struct map_session_data *sd ){ /// 0243 <mail id>.L (CZ_MAIL_DELETE) /// 09f5 <mail tab>.B <mail id>.Q (CZ_REQ_DELETE_MAIL) void clif_parse_Mail_delete(int fd, struct map_session_data *sd){ + return; #if PACKETVER < 20150513 int mail_id = RFIFOL(fd,packet_db[RFIFOW(fd,0)].pos[0]); #else @@ -16134,6 +16152,7 @@ void clif_parse_Mail_delete(int fd, struct map_session_data *sd){ /// Request to return a mail (CZ_REQ_MAIL_RETURN). /// 0273 <mail id>.L <receive name>.24B void clif_parse_Mail_return(int fd, struct map_session_data *sd){ + return; int mail_id = RFIFOL(fd,packet_db[RFIFOW(fd,0)].pos[0]); //char *rec_name = RFIFOP(fd,packet_db[RFIFOW(fd,0)].pos[1]); int i; @@ -16155,6 +16174,7 @@ void clif_parse_Mail_return(int fd, struct map_session_data *sd){ /// 0247 <index>.W <amount>.L (CZ_MAIL_ADD_ITEM) /// 0a04 <index>.W <amount>.W (CZ_REQ_ADD_ITEM_TO_MAIL) void clif_parse_Mail_setattach(int fd, struct map_session_data *sd){ + return; struct s_packet_db* info = &packet_db[RFIFOW(fd,0)]; uint16 idx = RFIFOW(fd,info->pos[0]); #if PACKETVER < 20150513 @@ -16184,6 +16204,7 @@ void clif_parse_Mail_setattach(int fd, struct map_session_data *sd){ /// Remove an item from a mail /// 0a07 <result>.B <index>.W <amount>.W <weight>.W void clif_mail_removeitem( struct map_session_data* sd, bool success, int index, int amount ){ + return; PACKET_ZC_ACK_REMOVE_ITEM_MAIL p = { 0 }; p.PacketType = rodexremoveitem; @@ -16213,6 +16234,7 @@ void clif_mail_removeitem( struct map_session_data* sd, bool success, int index, /// 0a06 <index>.W <amount>.W (CZ_REQ_REMOVE_ITEM_MAIL) void clif_parse_Mail_winopen(int fd, struct map_session_data *sd) { + return; #if PACKETVER < 20150513 int type = RFIFOW(fd,packet_db[RFIFOW(fd,0)].pos[0]); @@ -16233,6 +16255,7 @@ void clif_parse_Mail_winopen(int fd, struct map_session_data *sd) /// 09ec <packet len>.W <recipient>.24B <sender>.24B <zeny>.Q <title length>.W <body length>.W <title>.?B <body>.?B (CZ_REQ_WRITE_MAIL) /// 0a6e <packet len>.W <recipient>.24B <sender>.24B <zeny>.Q <title length>.W <body length>.W <char id>.L <title>.?B <body>.?B (CZ_REQ_WRITE_MAIL2) void clif_parse_Mail_send(int fd, struct map_session_data *sd){ + return; #if PACKETVER < 20150513 struct s_packet_db* info = &packet_db[RFIFOW(fd,0)];
Hi @AnnieRuru thank you so much for checking! just want to know if this is done through visual c++? unfortunately the only way I know is editing through notepad++ and recompiling through putty (sucks right? still learning)... would that work? also this is a diff for clif.cpp? sorry kinda lost abit.
-
5 hours ago, AnnieRuru said:
I love people who learns gets a thumbs up from me
ok from my understanding, you want the way that GMs can choose which 2 party to fight each otherhttps://gist.github.com/AnnieRuru/15cf5b1011e9a17e527031fc82d7de08
PS: ... I wish this is hercules and I can use OnPCUseSkillEvent to have a cursor to select the player instead of typing out the player name
I think your next reply might want to ask about how to set the party at a fix size ... ?
Omg thank you so much for this, I'll try it out, incase I can't get a reply from you, I'll visit HERC to leave you a message.
-
Hi all,
Is it possible to mapflag all maps? or if you do know a working workaround to disable RODEX on all maps.
I'm trying to disable RODEX system across all maps. I've already opened all threads with regards to this, but the only available option currently for rAthena is to add a mapflag of nowarpto or nowarp to the source and force fail the attachment.
Index: src/map/mail.c =================================================================== 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;
Option 2 is by diffing the client to remove the RODEX icon from the menu doesn't fully disable it, you can still send mail from the guild members tab. (not gonna work)
[RESOLVED] SQL Script to save #HourlyRewards
in Database Requests
Posted
I was actually able to sort it out however manually. dropped every key that I don't need.