Jump to content

XObedient

Advanced members
  • Content Count

    13
  • Joined

  • Last visited

  • Days Won

    3

XObedient last won the day on October 4 2021

XObedient had the most liked content!

Community Reputation

5 Neutral

2 Followers

About XObedient

  • Rank
    Cabin Boy

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Yes I will share the whole client source code with the mount fixes included, I will do so when I reach home.
  2. Yes, fix is in making, I will share this week hover/carsise bug fix, hover is so you can't attack mobs while you are using the mount but you can only hover to see it's names.
  3. You don't need to make the changes in the gameserver source, you have to do it in client source.
  4. Soon enough 1.3x sources(exes) with all exploit fixes will be released, I hope more people will be motivated in opening again servers and not be scared that someone is going to ruin their server.
  5. For the people that got issues while building. (this one got the camera fixed) Skills fix: UISkillCommand.cpp Line 184 if( pCha->GetIsOnMount()) { g_pGameApp->ShowMidText("Cannot use skills while Mount is in use"); return false; } https://mega.nz/file/K3gnzQJJ#J9s9M4qKdXsBE5acyf3S7KIINA-DoE-ZffyVuF57yms
  6. You can show here what's wrong, i'll help.
  7. Can you even think a bit? I said the code got shared because it got leaked.
  8. Code is done by @mkhzaleh & @Snre3n, I do not own it, it was shared because it got leaked. All credits for the code going to the truly owners.
  9. Code was shared because it got leaked, we don't want people to profit from other's work.
  10. Remove the "++", I added those to mark what I added in the function.
  11. #include <string> #include <sstream>
  12. Hi, Those errors are easy to fix, shouldn't ask for help but there we go: Change from pCha->IsPlayer to this->IsPlayer() at the line || if (nItem > 0 && !GetIsPK() && pCha->IsPlayer() ) || Before switch(nLink) Add CCharacter* pCha = this;
  13. Hi, I decided to share the mounts code since everyone who has it is taking advantage of it and sell it. (Corsairs Online based) Character.cpp CCharacter::CCharacter() pMount(0), oldmount(0), mountboneID(0), --------------------------------- void CCharacter::_UpdateValid(BOOL bValid) { if(bValid == FALSE) { ++ if (pMount) { ++ pMount->SetValid(false); ++ pMount->removeLink(); ++ pMount = NULL; ++ this->oldmount = 0; } setSideID( 0 ); if( GetDrunkState() ) CCharacterModel::SetDrunkState( FALSE ); _pChaState->ChaDestroy(); DieTime(); if( _pEvent ) { _pEvent->SetIsValid( false ); _pEvent = NULL; } _DetachAllItem(); for( int i=0; i<enumEQUIP_NUM; i++ ) { if( _pHandItem[i] ) { _pHandItem[i]->SetValid( FALSE ); _pHandItem[i] = NULL; } } for( int i=0; i<ITEM_FACE_MAX; i++ ) { if( _pItemFaceEff[i] ) { _pItemFaceEff[i]->SetValid( FALSE ); _pItemFaceEff[i] = NULL; } } memset( _ItemFace,0,sizeof(_ItemFace) ); GetScene()->HandleSceneMsg(SCENEMSG_CHA_DESTROY, getID()); } else { SetPoseKeyFrameProc( __keyframe_proc, (void*)this ); } } ---------------------------------------- bool CCharacter::PlayPose( DWORD pose, DWORD type, int time, int fps, bool isBlend ) if (GetIsOnMount()) { if (pMount) { pMount->setYaw(3); pMount->PlayPose(pose, type, time, fps, isBlend); int chatype = (this->GetDefaultChaInfo()->lID); pose = ((chatype == 1 || chatype == 2 || chatype == 3 || chatype == 4) ? POSE_SEAT2 : POSE_SEAT); } } ------------------------------------------ bool CCharacter::UpdataItem( int nItem, DWORD nLink ) switch(nLink){ case enumEQUIP_MOUNT:{ if (dynamic_cast<CWorldScene*>(_pScene)) { int ID = GetPart().SLink[nLink].sID; CItemRecord* pInfo = GetItemRecordInfo( ID); if(pMount && ID!=oldmount ){ setHeightOff(GetDefaultChaInfo()->fHeight); pMount->SetValid(FALSE); pMount->removeLink(); pMount = NULL; PlayPose(POSE_SHOW); this->oldmount = 0; } if (nItem > 0 && !GetIsPK() && pCha->IsPlayer() ) { if (!pMount && pInfo ) { int mountid = pInfo->sItemEffect[0]; int mHeight = pInfo->sItemEffect[1]; pMount = _pScene->AddCharacter(mountid); pMount->setName(pInfo->szName); setHeightOff(mHeight); int chatype = (this->GetDefaultChaInfo()->lID); std::string model = pInfo->chModule[chatype]; std::istringstream mountbone(model); mountbone >> std::hex >> mountboneID; pMount->linkTo(this, mountboneID); pMount->setChaCtrlType(8); pMount->setMobID(mountid); pMount->_Attr.set(ATTR_LV, 10); } } else { if (pMount) { setHeightOff(GetDefaultChaInfo()->fHeight); pMount->SetValid(FALSE); pMount->removeLink(); pMount = NULL; PlayPose(POSE_WAITING); this->oldmount = 0; } } } } ---------------------------- bool CCharacter::GetIsOnMount(){ if(!g_stUIBoat.GetHuman()){ return false; } if(GetIsForUI()){ return false; } return static_cast<bool>(pMount); } Character.h Line 548 protected: CCharacter* pMount; int mountboneID; int oldmount; How to add a mount? Iteminfo: 9624 Cuddly Lamb Mount n1774 10130005 0 0 0 0 0 0 90 0 0 0 0 0 1 1 1 1 1 1 0 -1 0 -1 0 0 18 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 60,60 0,0 0,0 0 1000,1000 1000,1000 3 0 0 0 0 0 0 0 0 0 0 0 0 125,85 0 0 Your personal pet. Double Click To Ride 1 125 = monster model(you can find it in characterinfo.txt) 85 = height(you can modify it depending on the mount height) Note: It's not complete yet, character is not attached properly to the mount bone. You will notice the animation is pretty static, however if anyone finds a solution for it, you can share it here.
×
×
  • Create New...