Source Development Item's Quest Marker

zLuke

Very Active Pirate
Developer
Registered
LV
4
 
Joined
Jan 29, 2026
Messages
75
Reaction score
60
Points
63
Age
41
Displays the items required for the quest with a different model if they are included in the quest requirements and the goal has not yet been achieved.

1776890502819.webp

GameServer\item.cpp:65
add
C++:
WRITE_CHAR(pk, (pCMainCha && pCMainCha->IsMisNeedItem((uShort)m_pCItemRecord->lID)) ? 1 : 0);
Client\src\NetProtocol.h:273
after
C++:
stNetEvent  SEvent;
add
C++:
char  isQuestNeed;
Client\src\NetProtocol.cpp:1358
string
C++:
pItem = pScene->AddSceneItem(info.lID, 0);
replace
C++:
pItem = pScene->AddSceneItem(info.lID, 0, info.isQuestNeed ? true : false);
Client\src\PacketCmd_SC.cpp:638
after
C++:
ReadEntEventPacket(pk, SCreateInfo.SEvent);
add
C++:
SCreateInfo.isQuestNeed = pk.ReadChar();
Client\src\Scene.h:253
string
C++:
CSceneItem*   AddSceneItem(int nScriptID, int nType);
replace
C++:
CSceneItem*   AddSceneItem(int nScriptID, int nType, bool isQuestNeed = false);
Client\src\SceneCreateNode.cpp:350
string
C++:
CSceneItem* CGameScene::AddSceneItem(int nScriptID, int nType)
replace
C++:
CSceneItem* CGameScene::AddSceneItem(int nScriptID, int nType, bool isQuestNeed)
Client\src\SceneCreateNode.cpp:358
string
C++:
if(!pObj->_CreateNode(nScriptID, nType, this))
replace
C++:
if (!pObj->_CreateNode(nScriptID, nType, this, isQuestNeed))
Client\src\SceneNode.h:162
add
C++:
  bool _nodeIsQuestNeed;
Client\src\SceneNode.h:170
string
C++:
  BOOL   _CreateNode( int nScriptID, int nType, CGameScene* pScene )
replace
C++:
  BOOL   _CreateNode( int nScriptID, int nType, CGameScene* pScene, bool questNeed = false )
Client\src\SceneNode.h:185
before
C++:
return _Create( nScriptID, nType );
add
C++:
_nodeIsQuestNeed = questNeed;
Client\src\SceneItem.h:60
add
C++:
  void  SetIsQuestNeed(bool isQuestNeed = false);
  bool  GetIsQuestNeed() { return isQuestNeed; };

Client\src\SceneItem.h:89
add
C++:
bool isQuestNeed;
Client\src\SceneItem.h:150
add
C++:
inline void CSceneItem::SetIsQuestNeed(bool questNeed) {
  isQuestNeed = questNeed;
}
Client\src\SceneItem.h:56
add
C++:
isQuestNeed = _nodeIsQuestNeed || false;
Client\src\SceneItem.h:59
add
C++:
if (isQuestNeed == true) {
      sprintf(str, "%s.lgo", "10130030");
    }

Copy attach file model and texture in client folder

Enjoy!!!

(c) zLuke
 

Attachments

Last edited:
  • Like
Reactions: Grim4ik