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
Printable View
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
Nobody can. This is a known bug that nobody has ever managed to fix yet.Quote:
1 can,t change char on less i log out then log back in
The NPCs should be able to repair stuff though even if you can't with a repair hammer.Quote:
2 can,t repair any thing
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;
}
That is a known issue with rev 81.Quote:
3 put on shield can,t hit anything
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.
Attack speed issue perhaps?
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
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.
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
It's on the same forum, the link right next to it:
http://forum.dev-osrose.com/viewtopic.php?f=18&t=2189
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.
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
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.
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?
You're showing the pakRepairItem and in the thread it's the CPlayer::GetAttackSpeed( ) so it's not the same function at all...
i got the sheild thing fix trying to get repair to work now and imame thxs for the help and you to purpleyouko
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.
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