Jump to content

Gouki

Members
  • Posts

    241
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by Gouki

  1. 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?

  2. 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;
    }

     

  3. 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)

    image.png.473f0535ea724354505fd7fdd97c9f86.png
     

  4. 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.

    https://media.discordapp.net/attachments/759905703153893456/759915148868714537/unknown.png

  5. 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;

     

  6. 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;
    }

     

  7. 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...

  8. 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.

  9. 5 hours ago, AnnieRuru said:

    I love people who learns /lv gets a thumbs up from me
    ok from my understanding, you want the way that GMs can choose which 2 party to fight each other

    https://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.

  10. 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)

     

×
×
  • Create New...