-
Posts
22 -
Joined
-
Last visited
-
Feedback
0%
Content Type
Forums
Store
Third Party - Providers Directory
Feature Plan
Release Notes
Docs
Events
Posts posted by razor93
-
-
Hello. I have this problem too. Did you solve it?
-
ch1 syserr:
SYSERR: Mar 12 21:16:02.94489 :: SyncPosition: Too many SyncPosition Count(19) from Name(DDR5) SYSERR: Mar 12 21:16:02.414394 :: SyncPosition: Too many SyncPosition Count(20) from Name(DDR5)
imput_main.cpp :
if( iCount > nCountLimit ) { //LogManager::instance().HackLog( "SYNC_POSITION_HACK", ch ); sys_err( "Too many SyncPosition Count(%d) from Name(%s)", iCount, ch->GetName() ); //ch->GetDesc()->SetPhase(PHASE_CLOSE); //return -1; iCount = nCountLimit; }
any fix? please.
Thanx for answers
- 1
-
working for me , but only with gm character. why?
-
-
21 minutes ago, Sidelekbrytro said:
Abban az esetben, ha ez a minta btw, meg tudná mondani, hogy pontosan mit írjak az *indexbe*?
I do not know exactly . check the py, sub files. search for it
-
some clients cannot handle uppercase letters.
ThinBoard_Corner_RightBottom_Circle.tga
change:
thinboard_corner_tightbottom_circle.tga
-
Strength against Metin Stones And Boss? Is possible?
-
is there a solution so that no one can read the client's ip from cmd?
Thank for answers
- 1
-
- 1
-
On 11/15/2022 at 3:42 PM, PetePeter said:
questlua_dungeon.cpp
ALUA(dungeon_give_item) { if (!lua_tonumber(L, 1)) return 0; int count = 1; if (lua_tonumber(L, 2) > 1) count = lua_tonumber(L, 2); CQuestManager& q = CQuestManager::instance(); LPDUNGEON pDungeon = q.GetCurrentDungeon(); if (pDungeon) pDungeon->GiveItem(lua_tonumber(L, 1), count); return 0; } -------------------------------------------------- {"give_item2", dungeon_give_item},
dungeon.cpp
namespace { struct FGiveItem { FGiveItem(int vnum, int count) : m_vnum(vnum), m_count(count) { } void operator() (LPENTITY ent) { if (ent->IsType(ENTITY_CHARACTER)) { LPCHARACTER ch = (LPCHARACTER) ent; if (ch && ch->IsPC()) { int iCount = m_count; //ch->ChatPacket(CHAT_TYPE_COMMAND, "%s", m_psz); const auto& item = ITEM_MANAGER::instance().CreateItem(m_vnum, m_count, 0, true); if (item->IsStackable()) { ch->AutoGiveItem(m_vnum, m_count); } else { while (iCount > 0) { ch->AutoGiveItem(m_vnum, 1); iCount -= 1; } } ITEM_MANAGER::instance().DestroyItem(item); } } } int m_vnum; int m_count; }; } void CDungeon::GiveItem(int vnum, int count) { sys_log(0, "XXX Dungeon GiveItem %p %d %d", this, vnum, count); LPSECTREE_MAP pMap = SECTREE_MANAGER::instance().GetMap(m_lMapIndex); if (!pMap) { sys_err("cannot find map by index %d", m_lMapIndex); return; } FGiveItem f(vnum, count); pMap->for_each(f); }
dungeon.h
public: void GiveItem(int vnum, int count);
quest_functiond.give_item2
And finally in your quest
d.give_item2(vnum, count)
I need this. Thank you
-
On 11/12/2022 at 6:50 PM, Syreldar said:
when 24930.kill with pc.in_dungeon() and pc.get_map_index() >= 40000 and pc.get_map_index() < 40000+10 begin -- ?????
This check means that if there are more than 10 active instances of that specific dungeon, it'll stop working. I'd start by fixing that.
Regarding your question, you can write this:
d.kill_all() d.clear_regen() if (party.is_party()) then for _, pid in ipairs({party.get_member_pids()}) do q.begin_other_pc_block(pid); -- pc.give_item2(71084, 50) pc.give_item2(71085, 50) pc.give_item2(70024, 5) pc.give_item2(50300, 2) pc.give_exp2(200000) -- q.end_other_pc_block(); end -- for else pc.give_item2(71084, 50) pc.give_item2(71085, 50) pc.give_item2(70024, 5) pc.give_item2(50300, 2) pc.give_exp2(200000) end -- if/else
Although I'd write a function.
Thank you so much
-
when 24930.kill with pc.in_dungeon() and pc.get_map_index() >= 40000 and pc.get_map_index() < 40000+10 begin
d.kill_all()
d.clear_regen()
pc.give_item2(71084, 50)
pc.give_item2(71085, 50)
pc.give_item2(70024, 5)
pc.give_item2(50300, 2)
pc.give_exp2(200000)
endhow can i doit? I want , how the quest give items to all player on the map.
Thank You
-
GetDeltaByDegree(degree, fCrushSlidingLength, &fx, &fy); sys_log(0, "CRUSH! %s -> %s (%d %d) -> (%d %d)", m_pkChr->GetName(), pkChrVictim->GetName(), pkChrVictim->GetX(), pkChrVictim->GetY(), (long)(pkChrVictim->GetX()+fx), (long)(pkChrVictim->GetY()+fy)); long tx = (long)(pkChrVictim->GetX()+fx); long ty = (long)(pkChrVictim->GetY()+fy);
syserr ch1
Nov 3 19:15:52.533721 :: CRUSH! DEV -> Fekete ork óriás (740253 320337) -> (740384 320185) Nov 3 19:15:52.533799 :: CRUSH! DEV -> Fekete ork (740064 320370) -> (739864 320363) Nov 3 19:15:52.533861 :: CRUSH! DEV -> Bátor fekete ork óriás (740106 320257) -> (739967 320113) Nov 3 19:15:52.533921 :: CRUSH! DEV -> Fekete ork óriás (740085 320297) -> (739911 320196) Nov 3 19:15:52.533954 :: AddAffect Fekete ork óriás type 20 apply 0 0 flag 6 duration 4 Nov 3 19:15:52.534022 :: CRUSH! DEV -> Fekete ork (740090 320465) -> (739925 320578) Nov 3 19:15:52.534118 :: CRUSH! DEV -> Fekete ork óriás (740063 320390) -> (739863 320409) Nov 3 19:15:52.534181 :: CRUSH! DEV -> Fekete ork (740156 320353) -> (739966 320287) Nov 3 19:15:52.534228 :: CRUSH! DEV -> Fekete ork óriás (740091 320465) -> (739926 320579) Nov 3 19:15:53.813474 :: DEV: USE_SKILL: 18 pkVictim 0x0
https://www.youtube.com/watch?v=lH-HJ8NoLeA
- 1
-
is not working for me. any idea?
-
Working With press button, but how can i add under indevtory button?
-
On 11/30/2020 at 7:47 PM, Distraught said:
if (CGrannyLODController* pLODController = m_LODControllerVector[dwPartIndex]) { if (CGrannyModelInstance* pWeaponModelInstance = pLODController->GetModelInstance()) { CGraphicThing* pItemGraphicThing = pItemData->GetModelThing(); if (CGrannyMotion* pItemMotion = pItemGraphicThing->GetMotionPointer(0)) { pWeaponModelInstance->SetMotionPointer(pItemMotion); } } }
Add the code above to the end of
void CActorInstance::AttachWeapon(DWORD dwParentPartIndex, DWORD dwPartIndex, CItemData * pItemData)
function in ActorInstanceAttach.cpp
and ThingInstance.cpp in the function
bool CGraphicThingInstance::SetMotion(DWORD dwMotionKey, float blendTime, int loopCount, float speedRatio)
modify
std::for_each(m_LODControllerVector.begin(), m_LODControllerVector.end(), SetMotionPointer);
to
for (int i = 0; i < m_LODControllerVector.size(); ++i) { switch (i) { case CRaceData::PART_WEAPON: case CRaceData::PART_WEAPON_LEFT: break; default: SetMotionPointer(m_LODControllerVector[i]); break; } }
and add these to the includes
#include "../GameLib/GameType.h" #include "../GameLib/RaceData.h"
to make it work when the weapon is equipped.
its working. Thank you so munch
- 1
- 1
-
On 3/26/2021 at 8:55 AM, arlinamid said:
For Acce you have to enabled in motion in 2 files.
ActorInstanceAttach.cpp in function CActorInstance::AttachAcce insert this code at the end of the function.
if (CGrannyLODController* pLODController = m_LODControllerVector[CRaceData::PART_ACCE]) { if (CGrannyModelInstance* pWeaponModelInstance = pLODController->GetModelInstance()) { CGraphicThing* pItemGraphicThing = pItemData->GetModelThing(); if (std::shared_ptr<CGrannyMotion> pItemMotion = pItemGraphicThing->GetMotionPointer(0)) { pWeaponModelInstance->SetMotionPointer(pItemMotion); } } }
https://metin2.download/picture/gQvc4889g7IDu1d4mkKV439kWUkEPC5p/.png
and the ThingInstance.cpp in function CGraphicThingInstance::SetMotion you have to add
case CRaceData::PART_ACCE:
https://metin2.download/picture/HB3r8PlsvrJj2Jd5Q722hhwSPV3788gG/.png
I hope i can help, before this you have to add all of the tutorial part.
no working for me
26 minutes ago, razor93 said:no working for me
sloved :
ActorInstanceAttach.cpp:
if (std::shared_ptr<CGrannyMotion> pItemMotion = pItemGraphicThing->GetMotionPointer(0))
change:
if (CGrannyMotion* pItemMotion = pItemGraphicThing->GetMotionPointer(0))
Spoiler -
it doesn't spin for me, can you help me?
-
no working for me. u can help me?
Problem with guild building land
in Community Support - Questions & Answers
Posted
did you manage to solve it?