help with server

Page 1 of 3 123 LastLast
Results 1 to 15 of 31
  1. #1
    Member drphil69 is offline
    MemberRank
    Apr 2007 Join Date
    65Posts

    help with server

    ok i got 3 things
    1 can,t change char on less i log out then log back in
    2 can,t repair any thing
    3 put on shield can,t hit anything
    running rev81 and client 131 and if theres a up to date one let me know


    ok thxs for your time
    Last edited by drphil69; 29-03-10 at 05:45 AM.


  2. #2
    Last of the OsRose Devs Purpleyouko is offline
    MemberRank
    Oct 2006 Join Date
    Missouri USALocation
    2,161Posts

    Re: help with server

    1 can,t change char on less i log out then log back in
    Nobody can. This is a known bug that nobody has ever managed to fix yet.
    2 can,t repair any thing
    The NPCs should be able to repair stuff though even if you can't with a repair hammer.
    I'm not completely sure how much has been coded in the osirose server. It may be only coded to work with the weapon seller in Zant. You will have to add the ids of each npc that repairs stuff manually.
    in worldpackets.cpp check function bool CWorldServer::pakRepairItem( CPlayer* thisclient, CPacket* P,int packet_type)
    it should look like something like this. (code taken from EVO server so don't copy the whole thing directly into yours)
    Code:
    // Repair (NPC and tool)
    bool CWorldServer::pakRepairItem( CPlayer* thisclient, CPacket* P,int packet_type)
    {
        BYTE slot_tool=0;
        BYTE slot = GETBYTE((*P),2);
        if(!CheckInventorySlot( thisclient, slot)) return false;
        if(thisclient->items[slot].count<1) return true;
    
        //LMA: We have NPC or tool repair, comes from different packet.
        switch( packet_type)
        {
            case 1:
            {
                //NPC repair (NPC client ID).
                BYTE npc_id=GETWORD((*P),0);
                //let's check the NPC is amongst the good ones...
                CNPC* testnpc=GServer->GetNPCByID(npc_id, thisclient->Position->Map);
                if (testnpc==NULL)
                {
                    Log(MSG_HACK,"%s tried to repair with an unknown NPC!",thisclient->CharInfo->charname);
                    return true;
                }
    
                //checking the NPC to a list of "correct" NPC.
                int liste_npc[6];
                liste_npc[0]=1008;  //Raffle
                liste_npc[1]=1093;   //Crune
                liste_npc[2]=1034;   //Ronk
                liste_npc[3]=1062; //Punwell
                liste_npc[4]=1181;   //pavrick
                liste_npc[5]=1223;   //nel eldora
    
                bool is_found=false;
                int k=0;
                for (k=0;k<6;k++)
                {
                    if(testnpc->npctype==liste_npc[k])
                    {
                        is_found=true;
                        break;
                    }
    
                }
    
                if (!is_found)
                {
                    Log(MSG_HACK,"%s tried to repair with an wrong NPC (%i)!",thisclient->CharInfo->charname,testnpc->npctype);
                    return true;
                }
    
                //checking distance now.
                if(GServer->distance(thisclient->Position->current,testnpc->pos)>20)
                {
                    Log(MSG_HACK,"%s tried to repair but too far from NPC %i!",thisclient->CharInfo->charname,testnpc->npctype);
                    return true;
                }
    
                Log(MSG_INFO,"Npc index %i (%i) is repairing for %s",npc_id,liste_npc[k],thisclient->CharInfo->charname);
            }
            break;
            case 2:
            {
                //Tool repair.
                slot_tool=GETBYTE((*P),0);
                //let's check if we have a tool in stock :)
                if(!CheckInventorySlot( thisclient, slot_tool)) return false;
                if(thisclient->items[slot_tool].count<1)
                {
                    Log(MSG_HACK,"Player %s tryed to repair without tool",thisclient->CharInfo->charname);
                    return true;
                }
    
                //Is it a repair tool?
                if(thisclient->items[slot_tool].itemnum>=UseList.max||UseList.Index[thisclient->items[slot_tool].itemnum]->type!=315)
                {
                    Log(MSG_HACK,"Player %s tryed to repair without a good tool",thisclient->CharInfo->charname);
                    return true;
                }
    
                //it's a good tool, let's take one of them.
                thisclient->items[slot_tool].count--;
                if (thisclient->items[slot_tool].count==0)
                    ClearItem( thisclient->items[slot_tool] );
    
                //Ok now the quality of the tool :)
                if (UseList.Index[thisclient->items[slot_tool].itemnum]->quality<=50)
                {
                    //standard quality, so durability goes away...
                    thisclient->items[slot].durability-=1;
                    if(thisclient->items[slot].durability<=0)
                        thisclient->items[slot].durability=1;
                }
    
            }
            break;
    
        }
    
        thisclient->items[slot].lifespan = 100;
    
        //Still TODO: find where prices of storage and repair are and add it to the code.
        if(packet_type==1)
        {
            BEGINPACKET( pak, 0x7cd );
            ADDQWORD   ( pak, thisclient->CharInfo->Zulies );
            ADDBYTE    ( pak, 0x01 );
            ADDBYTE    ( pak, slot );
            ADDDWORD   ( pak, BuildItemHead( thisclient->items[slot] ));
            ADDDWORD   ( pak, BuildItemData( thisclient->items[slot] ));
            ADDDWORD( pak, 0x00000000 );
            ADDWORD ( pak, 0x0000 );
            thisclient->client->SendPacket( &pak );
            thisclient->SetStats( );
            thisclient->SaveSlot41(slot);
            return true;
        }
    
        //repair tool.
        BEGINPACKET( pak, 0x7cb );
        ADDBYTE    ( pak, 0x02 );
        ADDBYTE    ( pak, slot_tool );
        ADDDWORD   ( pak, BuildItemHead( thisclient->items[slot_tool] ));
        ADDDWORD   ( pak, BuildItemData( thisclient->items[slot_tool] ));
        ADDDWORD( pak, 0x00000000 );
        ADDWORD ( pak, 0x0000 );
        ADDBYTE    ( pak, slot );
        ADDDWORD   ( pak, BuildItemHead( thisclient->items[slot] ));
        ADDDWORD   ( pak, BuildItemData( thisclient->items[slot] ));
        ADDDWORD( pak, 0x00000000 );
        ADDWORD ( pak, 0x0000 );
        thisclient->client->SendPacket( &pak );
        thisclient->SetStats( );
        thisclient->SaveSlot41(slot_tool);
        thisclient->SaveSlot41(slot);
    
    
        return true;
    }
    3 put on shield can,t hit anything
    That is a known issue with rev 81.
    for some reason the devs on the project seem not to be doing anything since Arnold left.
    I'm not really very familiar with osirose but I might be able to figure this out if i get a bit of spare time.

  3. #3
    Account Upgraded | Title Enabled! lmame is offline
    MemberRank
    Jun 2007 Join Date
    441Posts

    Re: help with server

    Attack speed issue perhaps?

  4. #4
    Member drphil69 is offline
    MemberRank
    Apr 2007 Join Date
    65Posts

    Re: help with server

    thxs purpleyouko so what rev and client do you recomend me to run i just started this server but would like to have a good rose to run and thxs for your time
    Last edited by drphil69; 01-04-10 at 03:30 AM.

  5. #5
    Last of the OsRose Devs Purpleyouko is offline
    MemberRank
    Oct 2006 Join Date
    Missouri USALocation
    2,161Posts

    Re: help with server

    The osrose dev rev is the most up to date
    http://forum.dev-osrose.com/viewtopic.php?f=18&t=2189
    this is an evo server though. If you want irose then the only open source option you have is osirose rev 81. Or you can use the Arcturus server files but we don't have the source code for those.
    Last edited by Purpleyouko; 01-04-10 at 03:45 PM.

  6. #6
    Member drphil69 is offline
    MemberRank
    Apr 2007 Join Date
    65Posts

    Re: help with server

    that link is this Tutorial - dev rev] Steps to know / do when you add a map. i dont think its a up to date server and client thxs for your help
    Last edited by drphil69; 01-04-10 at 03:57 AM.

  7. #7
    Account Upgraded | Title Enabled! lmame is offline
    MemberRank
    Jun 2007 Join Date
    441Posts

    Re: help with server

    It's on the same forum, the link right next to it:
    http://forum.dev-osrose.com/viewtopic.php?f=18&t=2189

  8. #8
    Last of the OsRose Devs Purpleyouko is offline
    MemberRank
    Oct 2006 Join Date
    Missouri USALocation
    2,161Posts

    Re: help with server

    Sorry.
    The dev rev tutorial is normally the first one in the list so I just grabbed the first link.
    Someone must have posted in the map tutorial thread and bumped it up to the top.

    Link in my previous post has been corrected.

  9. #9
    Member drphil69 is offline
    MemberRank
    Apr 2007 Join Date
    65Posts

    Re: help with server

    http://forum.ragezone.com/f291/osiro...-setup-384132/ this is where i got my download and its is Attack speed when i put on a shield say to low

  10. #10
    Account Upgraded | Title Enabled! lmame is offline
    MemberRank
    Jun 2007 Join Date
    441Posts

    Re: help with server

    Perhaps you need to change the attack speed value for the shields then in the STBs or you add the missing values in the code.
    Something like I did for the dev rev:
    http://forum.dev-osrose.com/viewtopic.php?f=30&t=3833

    You'll need to adapt it of course because it's for osRose's dev rev.

  11. #11
    Member drphil69 is offline
    MemberRank
    Apr 2007 Join Date
    65Posts

    Re: help with server

    This is the code I have in place of the code you are showing.

    bool CWorldServer::pakRepairItem( CPlayer* thisclient, CPacket* P )
    {
    BYTE action = GETBYTE((*P),0);
    switch (action)
    {
    case 39:
    case 97:
    case 18:
    case 129:
    case 0x3d: //Ronk
    case 0x39: //Ronk to
    case 0x1c:
    case 0x08:
    case 0x74:
    case 0x89:
    case 0x43: //NPC Repair Item / Town
    {
    BYTE slot = GETBYTE((*P),2);
    if (!CheckInventorySlot( thisclient, slot)) return false;
    if (thisclient->items[slot].count<1) return true;
    //Log( MSG_INFO,"Item socketed?: %i", thisclient->items[slot].socketed);
    thisclient->items[slot].lifespan = 100;
    //Log( MSG_INFO,"Item socketed?: %i", thisclient->items[slot].socketed);
    //Still TODO: find where prices of storage and repair are and add it to the code.
    BEGINPACKET( pak, 0x7cd );
    ADDQWORD ( pak, thisclient->CharInfo->Zulies );
    ADDBYTE ( pak, 0x01 );
    ADDBYTE ( pak, slot );
    ADDWORD ( pak, BuildItemHead( thisclient->items[slot] ));
    ADDDWORD ( pak, BuildItemData( thisclient->items[slot] ));
    ADDBYTE ( pak, 0x00 );
    thisclient->client->SendPacket( &pak );
    thisclient->SetStats( );
    }
    break;
    default:
    Log( MSG_WARNING,"Repair Item unknown action: %i", action);
    }
    return true;
    }

    any suggestions?

  12. #12
    Account Upgraded | Title Enabled! lmame is offline
    MemberRank
    Jun 2007 Join Date
    441Posts

    Re: help with server

    You're showing the pakRepairItem and in the thread it's the CPlayer::GetAttackSpeed( ) so it's not the same function at all...

  13. #13
    Member drphil69 is offline
    MemberRank
    Apr 2007 Join Date
    65Posts

    Re: help with server

    i got the sheild thing fix trying to get repair to work now and imame thxs for the help and you to purpleyouko
    Last edited by drphil69; 04-04-10 at 04:14 AM.

  14. #14
    Account Upgraded | Title Enabled! lmame is offline
    MemberRank
    Jun 2007 Join Date
    441Posts

    Re: help with server

    Do you have a message when trying to repair (server side)?
    With what NPC? Perhaps you just need to add the NPC ID to the existing list.

  15. #15
    Member drphil69 is offline
    MemberRank
    Apr 2007 Join Date
    65Posts

    Re: help with server

    on the world server aim getting
    WARNING:Repair Item unknown action: 108
    and thats when i click on what ever is in my inverty
    ok i just find out that ronk is 1034 how do i put him in there i mean what line and how is it or what do i change to make him repiar items?
    one other thing how do you remove a npc i spawn ronk just to make share thats his number lol
    Last edited by drphil69; 04-04-10 at 04:27 PM.



Page 1 of 3 123 LastLast

Advertisement