Jump to content

char0

Members
  • Posts

    13
  • Joined

  • Last visited

Posts posted by char0

  1. Hello everyone.

     

    I'm trying to hide costume items and shows the original equip in same maps where are PvP, GvG and Battleground ON because this confuses the player when will fight.

     

    The player doesn't know what the opponent is equipped, this way he can't defend herself.

     

    To try do this, I change some lines in map/pc.c:

    //Added check to prevent sending the same look on multiple slots ->
    //causes client to redraw item on top of itself. (suggested by Lupus)
    if(pos&(EQP_HEAD_LOW|EQP_COSTUME_HEAD_LOW)) {
        if(id && !(pos&(EQP_HEAD_TOP|EQP_HEAD_MID|EQP_COSTUME_HEAD_MID|EQP_COSTUME_HEAD_TOP)))
        sd->status.head_bottom = id->look;
        else
        sd->status.head_bottom = 0;
        if((pos&EQP_HEAD_LOW && (pc_checkequip(sd,EQP_COSTUME_HEAD_LOW)) < 0) || pos&EQP_COSTUME_HEAD_LOW)
        clif_changelook(&sd->bl,LOOK_HEAD_BOTTOM,sd->status.head_bottom);
    }
    if(pos&(EQP_HEAD_TOP|EQP_COSTUME_HEAD_TOP)) {
        if(id)
        sd->status.head_top = id->look;
        else
        sd->status.head_top = 0;
        if((pos&EQP_HEAD_TOP && (pc_checkequip(sd,EQP_COSTUME_HEAD_TOP)) < 0) || pos&EQP_COSTUME_HEAD_TOP)
        clif_changelook(&sd->bl,LOOK_HEAD_TOP,sd->status.head_top);
    }
    if(pos&(EQP_HEAD_MID|EQP_COSTUME_HEAD_MID)) {
        if(id && !(pos&(EQP_HEAD_TOP|EQP_COSTUME_HEAD_TOP)))
        sd->status.head_mid = id->look;
        else
        sd->status.head_mid = 0;
        if((pos&EQP_HEAD_MID && (pc_checkequip(sd,EQP_COSTUME_HEAD_MID)) < 0) || pos&EQP_COSTUME_HEAD_MID)
        clif_changelook(&sd->bl,LOOK_HEAD_MID,sd->status.head_mid);
    }
    
    I change to:

    //Added check to prevent sending the same look on multiple slots ->
    //causes client to redraw item on top of itself. (suggested by Lupus)
    if(strcmp( mapindex_id2name(sd->mapindex), "morocc" )){
        if(pos&(EQP_HEAD_LOW|EQP_COSTUME_HEAD_LOW)) {
            if(id && !(pos&(EQP_HEAD_TOP|EQP_HEAD_MID|EQP_COSTUME_HEAD_MID|EQP_COSTUME_HEAD_TOP)))
            sd->status.head_bottom = id->look;
            else
            sd->status.head_bottom = 0;
            if((pos&EQP_HEAD_LOW && (pc_checkequip(sd,EQP_COSTUME_HEAD_LOW)) < 0) || pos&EQP_COSTUME_HEAD_LOW)
            clif_changelook(&sd->bl,LOOK_HEAD_BOTTOM,sd->status.head_bottom);
        }
        if(pos&(EQP_HEAD_TOP|EQP_COSTUME_HEAD_TOP)) {
            if(id)
            sd->status.head_top = id->look;
            else
            sd->status.head_top = 0;
            if((pos&EQP_HEAD_TOP && (pc_checkequip(sd,EQP_COSTUME_HEAD_TOP)) < 0) || pos&EQP_COSTUME_HEAD_TOP)
            clif_changelook(&sd->bl,LOOK_HEAD_TOP,sd->status.head_top);
        }
        if(pos&(EQP_HEAD_MID|EQP_COSTUME_HEAD_MID)) {
            if(id && !(pos&(EQP_HEAD_TOP|EQP_COSTUME_HEAD_TOP)))
            sd->status.head_mid = id->look;
            else
            sd->status.head_mid = 0;
            if((pos&EQP_HEAD_MID && (pc_checkequip(sd,EQP_COSTUME_HEAD_MID)) < 0) || pos&EQP_COSTUME_HEAD_MID)
            clif_changelook(&sd->bl,LOOK_HEAD_MID,sd->status.head_mid);
        }
    }else{ //Old way before comes costome items
        if(pos & EQP_HEAD_LOW) {
            if(id && !(pos&(EQP_HEAD_TOP|EQP_HEAD_MID)))
            sd->status.head_bottom = id->look;
            else
            sd->status.head_bottom = 0;
            clif_changelook(&sd->bl,LOOK_HEAD_BOTTOM,sd->status.head_bottom);
        }
        if(pos & EQP_HEAD_TOP) {
            if(id)
            sd->status.head_top = id->look;
            else
            sd->status.head_top = 0;
            clif_changelook(&sd->bl,LOOK_HEAD_TOP,sd->status.head_top);
        }
        if(pos & EQP_HEAD_MID) {
            if(id && !(pos&EQP_HEAD_TOP))
            sd->status.head_mid = id->look;
            else
            sd->status.head_mid = 0;
            clif_changelook(&sd->bl,LOOK_HEAD_MID,sd->status.head_mid);
        }
    }
    
    I put Morocc town just as example, but after I'll change the maps.

     

    This change works partially: the equip just hide if is changed manually. In other words, the player needs unequip the item and after equip again, so the costume hide.

     

    I think I need call this function in some other location, like when the char warps, but I do not know how to do this.

     

    Can anyone help me? Very thanks!

  2. Hello.

     

    I found a problem in my client. 

     

    When I open the client and later was closed the game, the process in task manager isn't ending.

     

    If I open more than one client, all processes remain always open.

     

    This is also occurring with Loki Launcher.exe. 

     

    Any idea how to solve the problem?

     

    _process_1.jpg

     

    @edit


    Just now I downloaded NEMO diff more updated and I diffed a new hexed.

    I do no why, but this time the client show a shield yellow and blue from windows.

    When play new Client.exe is requested a permission of user to execute.

    After enter in game and close the client, all the process was successful closed.

     

    No idea about Loki Launcher.

  3. Hello, I'm trying to generate random numbers not repeated for an array ".p" using the same size an array ".s$".
     
    But the NPC is accusing infinite loop. How could I generate numbers not repeated 0-19 without error?

     

     

    Grateful for help, Char0.

  4. Hi guys. I'm having a problem with the textures in the Brow Edit. When I select the texture and I'll use in the map, applying they in place, the texture show blurred in the tip like the below image:

    35lg13t.jpg

    Look like how the texture are misaligned, and seems the Brow get a part absent her. I concluded this because the part of the top is cut too, and the texture are affected.

    I tryed to use Brow Edit Revision 586 and 620. Somebody can help me?

    Grateful, char0.

  5. I copied the system from the battleground, I changed what I had to change, and it worked normally.However, the cursor attack (sword) is appearing for those who are in the same faction when maps are in PvP/GvG.

    There is a packet in the source, which when removed, does not send information such as the mini-map. I believe that the same packet may be associated with the cursor battlegroud responsible for the attack.

    ...
    
    if( (type == PARTY_AREA || type == PARTY_AREA_WOS) && (sd->bl.x < x0 || sd->bl.y < y0 || sd->bl.x > x1 || sd->bl.y > y1) )
    continue;
    
    if( packet_db[sd->packet_ver][RBUFW(buf,0)].len )
    { // packet must exist for the client version
    WFIFOHEAD(fd,len);
    memcpy(WFIFOP(fd,0), buf, len);
    WFIFOSET(fd,len);
    }
    
    ...

    I checked if this packet was coming, and it really was. But the cursor attack keeps appearing for all factions.

    Does anyone have any idea how can fix this error?

    Thanks, char0.

    Some help? :/

×
×
  • Create New...