04-30-2022, 09:33 PM
7 hours ago, Andrein95 said:
pObject2
is NULL,
Still doesn't work:
ObjectBase* pObject1 = ACTORMGR()->GetObject(eOBJ_CHARACTER, pInfo->GetTargetServerIdx(eTARGET));
ObjectBase* pObject2 = ACTORMGR()->GetObject(eOBJ_CHARACTER, pInfo->GetTargetLevel(eTARGET));
CCharacterTarget *pTarget1, *pTarget2;
if (pObject1 != NULL)
pTarget1 = static_cast<CCharacterTarget*>(pObject1);
if (pObject2 != NULL)
pTarget2 = static_cast<CCharacterTarget*>(pObject2);
2
2
Since CCharacterTarget is a casted object of ObjectBase, where is filled ObjectBase, in other terms:
1 - Wich methods is called in CmdMsg? I think AppearMsg
2 - Wich class are we talking about in server side for this Object Base class?
ObjectBase* pObject2 = ACTORMGR()->GetObject(eOBJ_CHARACTER, pInfo->GetTargetLevel(eTARGET));
Oh, I didn't look at that line of yours.
the GetTargetLevel() function does not need to be called, you will receive information about the level in a different way, through the class pointer CCharacterTarget* :
ObjectBase* pObject2 = ACTORMGR()->GetObject(eOBJ_CHARACTER, pInfo->GetTargetServerIdx(eTARGET));
CCharacterTarget* ptrTarget = static_cast< CCharacterTarget* >(pObject2);
As you can see, in your screenshots, there is no level variable in the CCharacterTarget class, which I specified as your_var_for_level .
And of course you need to create it and fill it with the SetData() method. I wrote about this above.
On the server side you also need to create a variable in ptype_appear.h - struct appearPc{ } And fill it in void AppearMsg() .

