O temacie
Autor orcwarrior
Zaczęty 11.06.2010 roku
Wyświetleń 414706
Odpowiedzi 1020
Lehona
Siemekk Złote Wrota
virtual int CanThisCollideWith(zCVob*) { XCALL(0x004042A0); };
Bogdan Zwei
Tak jeszcze jedno Jak wywołać cały VFX na itemie ?Wld_PlayEffect("Spellfx_FireArmor", her, MET_ITEM, 0, 300, DAM_MAGIC, FALSE);To powoduje że vfx leci w stronę tego no... przedmiotu. A jak zrobić by moje "jabłko" się paliło w całości (oprócz zmiennej effect w klasie oCNpc)...
func int GetItemWorldPosition(){ const int zCVob_GetPosInWorld = 5430416; //0x0052DC90 var int vptr; vptr = MEM_InstToPtr(GetSlotItem(hero,"ZS_RIGHTHAND")); //to jest funkcja [member=12058]Splash[/member]'a CALL__thiscall(vptr,zCVob_GetPosInWorld); return CALL_RetValAsPtr (); };
Splash Moderator
//############################################3// Experimental Classes & Arrays// Connected with oCNPC// by orcwarrior//############################################3const int TNpcSlot_Size = 64; // 0x0040class TNpcSlot{ var int Slot_RightHand; // 0x0000 oCSlot* var int Slot_LeftHand; // 0x0004 oCSlot* var int Slot_Sword; // 0x0008 oCSlot* var int Slot_LongSword; // 0x000C oCSlot* var int Slot_Bow; // 0x0010 oCSlot* var int Slot_CrossBow; // 0x0014 oCSlot* var int Slot_Helmet; // 0x0018 oCSlot* var int Slot_Armor; // 0x001C oCSlot* var int Slot_Unknown1; // 0x0020 oCSlot* var int Slot_Unknown2; // 0x0024 oCSlot* var int Slot_Unknown3; // 0x0028 oCSlot* var int Slot_Unknown4; // 0x002C oCSlot* var int Slot_Unknown5; // 0x0030 oCSlot* var int Slot_Unknown6; // 0x0034 oCSlot* var int Slot_Unknown7; // 0x0038 oCSlot* var int Slot_Unknown8; // 0x003C oCSlot* }; class oCSlot{ var string Node_name; // 0x0000 zString var int b_ObjInSlot; // 0x0014 BOOL var int val1; // 0x0018 always 0 var string unkn_string; // 0x001C zString => always without pointer and len only vtbl and allocator filled with values var int ObjInNode; // 0x0030 zCVob* var int val2; // 0x0034 always 0 };
func int GetSlotItem (var C_NPC slf, var string slotName) { CALL_zStringPtrParam (slotName); CALL__thiscall (MEM_InstToPtr (slf), 7544560); return CALL_RetValAsPtr ();};func int GetItemWorldPosition(){ const int zCVob_GetPosInWorld = 5430416; //0x0052DC90 var int vptr; vptr = MEM_InstToPtr(GetSlotItem(hero,"ZS_RIGHTHAND")); CALL__thiscall(vptr,zCVob_GetPosInWorld); return CALL_RetValAsPtr (); };func void Foodffdsfds(){ if(MEM_KeyState(KEY_P)==KEY_PRESSED) { //GetItemWorldPosition(); testy };};
zVEC3 __thiscall zCVob::GetPositionWorld(void)const 0x0052DC90 0 7 public: zVEC3 __thiscall zCVob::GetPositionWorld(void)const
func int GetItemWorldPosition(){ const int zCVob_GetPosInWorld = 5430416; //0x0052DC90 var int vptr; vptr = MEM_InstToPtr(GetSlotItem(hero,"ZS_RIGHTHAND")); CALL_RetValIsStruct (12); CALL__thiscall(vptr,zCVob_GetPosInWorld); return CALL_RetValAsPtr (); };
var int vec; vec = GetItemWorldPosition();var int x; x = roundf (MEM_ReadInt (vec));var int y; y = roundf (MEM_ReadInt (vec+4));var int z; z = roundf (MEM_ReadInt (vec+8));
vptr = MEM_InstToPtr(GetSlotItem(hero,"ZS_RIGHTHAND"));
vptr = GetSlotItem(hero,"ZS_RIGHTHAND");
/***************/func int GetNodeTrafo(var int npc, var string node){ const int zMAT4_GetTrafoNode = 6310240; //0x00604960 CALL_zStringPtrParam(node); CALL_RetValIsStruct (12); CALL__thiscall(MEM_InstToPtr(npc),zMAT4_GetTrafoNode); return CALL_RetValAsPtr ();};func void Set_TrafoObjToWorld(var int ptr, var int trafo){ const int zCVob_SetTrafoOBJ = 6405248; //0x0061BC80 CALL_IntParam(trafo); CALL__thiscall(ptr,zCVob_SetTrafoOBJ);};func int GetSlotItem (var C_NPC slf, var string slotName) { CALL_zStringPtrParam (slotName); CALL__thiscall (MEM_InstToPtr (slf), 7544560); return CALL_RetValAsPtr ();};func int GetItemWorldPosition(var int vptr){ const int zCVob_GetPosInWorld = 5430416; //0x0052DC90 CALL_RetValIsStruct (12); CALL__thiscall(vptr,zCVob_GetPosInWorld); return CALL_RetValAsPtr ();};func void Foodffdsfds(){ if(MEM_KeyState(KEY_P)==KEY_PRESSED) { var int pItem; pItem = GetSlotItem(hero,"ZS_RIGHTHAND"); if(!pItem){return;}; var int trafo_her; trafo_her = GetNodeTrafo(hero,"ZS_RIGHTHAND"); Set_TrafoObjToWorld(pItem,trafo_her); var int vec; vec = GetItemWorldPosition(pItem); var int x; x = roundf (MEM_ReadInt (vec)); var int y; y = roundf (MEM_ReadInt (vec+4)); var int z; z = roundf (MEM_ReadInt (vec+8)); Prints(ConcatStrings("X pos: ",IntToString(x))); Prints(ConcatStrings("Y pos: ",IntToString(y))); Prints(ConcatStrings("Z pos: ",IntToString(Z))); };};