Jump to content

Daegaladh

Developer
  • Posts

    239
  • Joined

  • Last visited

  • Days Won

    17

Posts posted by Daegaladh

  1. File Name: Homunculus Ranking for FluxCP

    File Submitter: Daegaladh

    File Submitted: 30 Jan 2013

    File Category: Web Resources

    Content Author: Daegaladh

    Description

    An homunculi ranking, for your FluxCP

    Features

    • Configurable quantity of ranked homunculi.
    • Filter by class.

    Compatibility

    Demo

    (Soon)

    Installation

    1. Extract all the files in the rar into the root folder of your FluxCP installation, overwriting the homunculus.php file.
    2. If you're using a custom theme, rename the 'default' folder in 'addons/homun_ranking/themes' to your custom theme name.

    Policy

    All purchases are non-refundable.

    This work by Daegaladh is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.

    Do not redistribute or resell anything from this work, this also includes modified versions of anything I've made.

    Do not steal the credit of this work.

    Do not remove or replace license text, images, etc.

    Support

    If you find any bug or need support, please contact me:

    rAthena: http://rathena.org/b.../468-daegaladh/

    email: [email protected]

    Skype: daegaladh

    License

    88x31.png

    This work by Daegaladh is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.

    Click here to download this file

    • Upvote 1
  2. File Name: Fame Ranking for FluxCP

    File Submitter: Daegaladh

    File Submitted: 29 Jan 2013

    File Category: Web Resources

    Content Author: Daegaladh

    Description

    3 rankings in 1: alchemy, crafting, and Taekwon mission fame points, for your FluxCP

    Features

    • Configurable quantity of ranked characters of each kind.

    Compatibility

    Demo

    (Soon)

    Installation

    1. Extract the 'fame_ranking' folder into the 'addons' folder of your FluxCP installation.
    2. If you're using a custom theme, rename the 'default' folder in 'fame_ranking/themes' to your custom theme name.

    Policy

    All purchases are non-refundable.

    This work by Daegaladh is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.

    Do not redistribute or resell anything from this work, this also includes modified versions of anything I've made.

    Do not steal the credit of this work.

    Do not remove or replace license text, images, etc.

    Support

    If you find any bug or need support, please contact me:

    rAthena: http://rathena.org/b.../468-daegaladh/

    email: [email protected]

    Skype: daegaladh

    License

    88x31.png

    This work by Daegaladh is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.

    Click here to download this file

    • Upvote 1
  3. I think the main functions templates (Manager, gard, df and RL) should be as the WOE FE one, 1 npc working for all the castles, because making duplicates for each castle multiplies memory and CPU usage.

  4. This bug is on Athena since it was created, so I think it's time to get rid of it...

    In Aegis, the NPCs with waitingrooms are always logged into the chatroom.

    Here's a bugfix I made with the help of SnakeDrak some time ago. But I need a core dev to check it and improve the code if possible.

    The code is functional and I was using it on my server for 2 years without any problem.

    Index: chat.c
    ===================================================================
    --- chat.c	(revision 13405)
    +++ chat.c	(working copy)
    @@ -106,7 +106,7 @@
    nullpo_retr(0, sd);
    cd = (struct chat_data*)map_id2bl(chatid);
    
    -	if( cd == NULL || cd->bl.type != BL_CHAT || cd->bl.m != sd->bl.m || sd->vender_id || sd->chatID || cd->users >= cd->limit )
    +	if( cd == NULL || cd->bl.type != BL_CHAT || cd->bl.m != sd->bl.m || sd->vender_id || sd->chatID || ((cd->owner->type == BL_NPC) ? cd->users+1 : cd->users) >= cd->limit )
    {
    	clif_joinchatfail(sd,0);
    	return 0;
    Index: clif.c
    ===================================================================
    --- clif.c	(revision 13405)
    +++ clif.c	(working copy)
    @@ -2861,7 +2861,7 @@
    WBUFL(buf, 4) = cd->owner->id;
    WBUFL(buf, 8) = cd->bl.id;
    WBUFW(buf,12) = cd->limit;
    -	WBUFW(buf,14) = cd->users;
    +	WBUFW(buf,14) = (cd->owner->type == BL_NPC) ? cd->users+1 : cd->users;
    WBUFB(buf,16) = type;
    strncpy((char*)WBUFP(buf,17), cd->title, strlen(cd->title)); // not zero-terminated
    
    @@ -2892,7 +2892,7 @@
    WBUFL(buf, 4) = cd->usersd[0]->bl.id;
    WBUFL(buf, 8) = cd->bl.id;
    WBUFW(buf,12) = cd->limit;
    -	WBUFW(buf,14) = cd->users;
    +	WBUFW(buf,14) = (cd->owner->type == BL_NPC) ? cd->users+1 : cd->users;
    WBUFB(buf,16) = cd->pub;
    strncpy((char*)WBUFP(buf,17), cd->title, strlen(cd->title)); // not zero-terminated
    
    @@ -2948,7 +2948,7 @@
    int clif_joinchatok(struct map_session_data *sd,struct chat_data* cd)
    {
    int fd;
    -	int i;
    +	int i,t;
    
    nullpo_retr(0, sd);
    nullpo_retr(0, cd);
    @@ -2956,13 +2956,25 @@
    fd = sd->fd;
    if (!session_isActive(fd))
    	return 0;
    -	WFIFOHEAD(fd, 8 + (28*cd->users));
    +
    +	t = (int)(cd->owner->type == BL_NPC);
    +	WFIFOHEAD(fd, 8 + (28*(cd->users+t)));
    WFIFOW(fd, 0) = 0xdb;
    -	WFIFOW(fd, 2) = 8 + (28*cd->users);
    +	WFIFOW(fd, 2) = 8 + (28*(cd->users+t));
    WFIFOL(fd, 4) = cd->bl.id;
    +
    +	if(cd->owner->type == BL_NPC){
    +		WFIFOL(fd, 30) = 1;
    +		WFIFOL(fd, 8) = 0;
    +		memcpy(WFIFOP(fd, 12), ((struct npc_data *)cd->owner)->name, NAME_LENGTH);
    +		for (i = 0; i < cd->users; i++) {
    +			WFIFOL(fd, 8+(i+1)*28) = 1;
    +			memcpy(WFIFOP(fd, 8+(i+t)*28+4), cd->usersd[i]->status.name, NAME_LENGTH);
    +		}
    +	}else
    for (i = 0; i < cd->users; i++) {
    	WFIFOL(fd, 8+i*28) = (i != 0 || cd->owner->type == BL_NPC);
    -		memcpy(WFIFOP(fd, 8+i*28+4), cd->usersd[i]->status.name, NAME_LENGTH);
    +		memcpy(WFIFOP(fd, 8+(i+t)*28+4), cd->usersd[i]->status.name, NAME_LENGTH);
    }
    WFIFOSET(fd, WFIFOW(fd, 2));

  5. I made a little mod for GMs to hide on login, but have a little problem: when you log on a pvp map, the pvp things (time attack logo and 1/1) won't show and I cannot target players without shift.

    Any ideas of what is causing this and how to fix it? Thanks.

    Here's my code:

    pc.c

    -    if (pc_can_use_command(sd, "hide", COMMAND_ATCOMMAND))
    -        sd->status.option &= (OPTION_MASK | OPTION_INVISIBLE);
    -    else
           sd->status.option &= OPTION_MASK;

       /**
        * Check if player have any item cooldowns on
        **/
       pc_itemcd_do(sd,true);
    
    +    //Hide on login
    +    if (pc_can_use_command(sd, "hide", COMMAND_ATCOMMAND)) {
    +        sd->sc.option |= OPTION_INVISIBLE;
    +        sd->vd.class_ = INVISIBLE_CLASS;
    +        clif_changeoption(&sd->bl);
    +    }
    
       // Request all registries (auth is considered completed whence they arrive)
       intif_request_registry(sd,7);
       return true;
    

  6. I think it would be useful to add a can_attack permission, so you can prevent GMs to attack monsters or players (to prevent corruption acts like: tanking players, get items to give to players, etc...).

    I've just coded it by myself, so here's the code ;)

    Edit: I think I should add a check to pets, homunculus, mercenaries and elementals too...

    pc_groups.c

     { "use_changemaptype", PC_PERM_USE_CHANGEMAPTYPE },
     { "all_commands", PC_PERM_USE_ALL_COMMANDS },
     { "receive_requests", PC_PERM_RECEIVE_REQUESTS },
    + { "can_attack", PC_PERM_ATTACK},
    };
    
    /**

    pc.h

     PC_PERM_USE_CHANGEMAPTYPE   = 0x04000,
     PC_PERM_USE_ALL_COMMANDS	= 0x08000,
     PC_PERM_RECEIVE_REQUESTS	= 0x10000,
    + PC_PERM_ATTACK			  = 0x20000,
    };
    
    #define pc_setdead(sd)		( (sd)->state.dead_sit = (sd)->vd.dead_sit = 1 )

    clif.c :

     case 0x00: // once attack
     case 0x07: // continuous attack
    
    + if( !pc_has_permission(sd, PC_PERM_ATTACK) )
    + return;
    +
     if( pc_cant_act(sd) || sd->sc.option&OPTION_HIDE )
     return;

     if( skilllv < 1 ) skilllv = 1; //No clue, I have seen the client do this with guild skills :/ [skotlex]
    
    + if( !pc_has_permission(sd, PC_PERM_ATTACK) )
    + return;
    +
     tmp = skill_get_inf(skillnum);
     if (tmp&INF_GROUND_SKILL || !tmp)
     return; //Using a ground/passive skill on a target? WRONG.

    /// There are various variants of this packet, some of them have padding between fields.
    void clif_parse_UseSkillToPos(int fd, struct map_session_data *sd)
    {
    + if( !pc_has_permission(sd, PC_PERM_ATTACK) )
    + return;
     if (pc_cant_act(sd))
     return;
     if (pc_issit(sd))

    • Upvote 3
  7. Anybody knows what to change to use PDT instead of IPN in lib/PaymentNotifyRequest.php? I know variables are basically the same for PDT, but I'm not sure about what to change to make FluxCP works with PDT.

    I want to do it because Paypal only allows 1 IPN URL, and I have more than 1 website.

    I found an easier way to do it using IPN.

    In saved buttons, you can set notify_url=http//myflux.com/?module=donate&action=notify and disable global IPN in profile.

    For another site, do the same, create another button and set notify_url=http//myotherflux.com/?module=donate&action=notify

    Of course, you have to overwrite FluxCP's default paypal button with your saved one in data\paypal\button.php

  8. -@ipban

    -Split npc folder into renewal and pre-renewal, because many scripts have been updated to renewal and there are no pre-renewal version of them, also quest exp is different in pre and re.

    -Focusing on new exes support

    • Upvote 2
  9. @Daegaladh:

    I have installed it to github because it allows you to easily download a zip copy of the latest SVN with no client necessary.

    I know, but I mean, for example: I have flux installed, and only want to update to the lastest rev. With github I have to do it manually. :S

    I think it would be better to use svn and make pre-packed downloads periodically for people that dont use svn.

  10. Hola espero y alguien me pueda responder u_u, tengo el mismo problema pero con la version 3ceam rev 661, utilizo cliente 2011-11-22aRagexeRE.exe y pack_ver:28 y me marca el mismo error en PuTTY:clif_parse:Disconnecting session#7 with unknown packet version espero y me puedan ayudar y entender D:

    SALUDOS /paz

    English: First, this is the international forum section, if you're looking for spanish support, please use the correct one. And second, this is rAthena support boards, not 3ceam... so there's no support for that mod.

    Español: En primer lugar, esto es la sección internacional del foro, si estás buscando soporte en español, por favor, utiliza la sección correspondiente. Y en segundo lugar, esto es el foro de soporte de rAthena, no de 3ceam... así que no se da soporte para este mod.

    @ROZEN, try using older clients then :S

×
×
  • Create New...