-
Posts
683 -
Joined
-
Last visited
-
Days Won
8 -
Feedback
0%
Content Type
Forums
Store
Third Party - Providers Directory
Feature Plan
Release Notes
Docs
Events
Everything posted by Speachless
-
The map looks very good. If you make more light and a lighter terrain like in Terra i will definitely buy the map.
-
Hi plechi. you've done a great map. i sugest you more light, and a terrain like
-
How to? Search shop and Log table
Speachless replied to revengertmt's topic in Community Support - Questions & Answers
But, isn't it better with auto_ptr ? [Hidden Content] -
How to? Search shop and Log table
Speachless replied to revengertmt's topic in Community Support - Questions & Answers
You should use auto_ptr in query to avoid memory leak. -
No need to disable all, just the function which check it. After, i have never had any problems with the server, and I did this one year ago.
-
I'm the one who done that. It has created more problems than good things.
-
Is this necessary? there are so many changes in packets and new systems, so no one can enter in with their launcher.
-
Violet Evergarden Also on netflix Trailer:
-
Offline shop bug by great
Speachless replied to Metin2Place's topic in Community Support - Questions & Answers
Tell us what kind of exploits are there then. -
moon_cave problem
Speachless replied to BeauDeCiuda's topic in Community Support - Questions & Answers
Rename upper case letters like .GR2 to .gr2 -
moon_cave problem
Speachless replied to BeauDeCiuda's topic in Community Support - Questions & Answers
Rename upper case letters in lowercase letters from all map files. -
Pet system update problem
Speachless replied to Speachless's topic in Community Support - Questions & Answers
void CNewPetActor::Unsummon() { if (true == this->IsSummoned()) { std::auto_ptr<SQLMsg> pmsg2(DBManager::instance().DirectQuery("UPDATE new_petsystem SET level = %d, evolution=%d, exp=%d, expi=%d, bonus0=%d, bonus1=%d, bonus2=%d, skill0=%d, skill0lv= %d, skill1=%d, skill1lv= %d, skill2=%d, skill2lv= %d, duration=%d, tduration=%d WHERE id = %lu ", this->GetLevel(), this->m_dwevolution, this->GetExp(), this->GetExpI(), this->m_dwbonuspet[0][1], this->m_dwbonuspet[1][1], this->m_dwbonuspet[2][1], this->m_dwskillslot[0], this->m_dwskill[0], this->m_dwskillslot[1], this->m_dwskill[1], this->m_dwskillslot[2], this->m_dwskill[2], this->m_dwduration, this->m_dwtduration, ITEM_MANAGER::instance().FindByVID(this->GetSummonItemVID())->GetID())); this->ClearBuff(); LPITEM pSummonItem = ITEM_MANAGER::instance().FindByVID(this->GetSummonItemVID()); if (pSummonItem != NULL) { for (int b = 0; b < 3; b++) { pSummonItem->SetForceAttribute(b, 1, m_dwbonuspet[b][1]); } pSummonItem->SetForceAttribute(3, 1, m_dwduration); pSummonItem->SetForceAttribute(4, 1, m_dwtduration); pSummonItem->SetSocket(1,m_dwlevel); pSummonItem->SetSocket(0, false); pSummonItem->Lock(false); } this->SetSummonItem(NULL); if (NULL != m_pkOwner) m_pkOwner->ComputePoints(); if (NULL != m_pkChar) M2_DESTROY_CHARACTER(m_pkChar); m_pkChar = 0; m_dwVID = 0; m_dwlevel = 1; m_dwlevelstep = 0; m_dwExpFromMob = 0; m_dwExpFromItem = 0; m_dwexp = 0; m_dwexpitem = 0; m_dwTimePet = 0; m_dwImmTime = 0; m_dwslotimm = 0; for (int s = 0; s < 9; ++s) { m_dwpetslotitem[s] = -1; } ClearBuff(); m_pkOwner->ChatPacket(CHAT_TYPE_COMMAND, "PetUnsummon"); } } -
Pet system update problem
Speachless replied to Speachless's topic in Community Support - Questions & Answers
Thank you Abel. But the same way is written in the normal pet system. So i don't think it's from there. -
I have a strange crash. I've been using the pet-level system ever since it came out so it's an old system, and never had problems until now. #0 CNewPetActor::Unsummon (this=0x611ce1c0) at item.h:44 pSummonItem = <value optimized out> #1 0x08294658 in CNewPetActor::Update (this=0x611ce1c0, deltaTime=0) at New_PetSystem.cpp:783 No locals. #2 0x08291451 in CNewPetSystem::Update (this=0x5daef5c0, deltaTime=0) at New_PetSystem.cpp:1051 petActor = (CNewPetActor *) 0x611ce1c0 bResult = true currentTime = 436200661 v_garbageActor = {<std::_Vector_base<CNewPetActor*,std::allocator<CNewPe tActor*> >> = { _M_impl = {<std::allocator<CNewPetActor*>> = {<__gnu_cxx::new_allocator<CNew PetActor*>> = {<No data fields>}, <No data fields>}, _M_start = 0x0, _M_finish = 0x0, _M_end_of_storage = 0x0}}, <No data fields>} #3 0x08291529 in newpetsystem_update_event (event=@0xffffa2ec, processing_time=6) at New_PetSystem.cpp:41 pPetSystem = <value optimized out> __FUNCTION__ = "newpetsystem_update_event" #4 0x08149bb1 in event_process (pulse=10924285) at event.cpp:140 pElem = <value optimized out> the_event = {px = 0x5f798ac0} processing_time = 6 bool CNewPetSystem::Update(DWORD deltaTime) { bool bResult = true; DWORD currentTime = get_dword_time(); if (m_dwUpdatePeriod > currentTime - m_dwLastUpdateTime) return true; std::vector <CNewPetActor*> v_garbageActor; for (TNewPetActorMap::iterator iter = m_petActorMap.begin(); iter != m_petActorMap.end(); ++iter) { CNewPetActor* petActor = iter->second; if (0 != petActor && petActor->IsSummoned()) { LPCHARACTER pPet = petActor->GetCharacter(); if (NULL == CHARACTER_MANAGER::instance().Find(pPet->GetVID())) { v_garbageActor.push_back(petActor); } else { bResult = bResult && petActor->Update(deltaTime); } } } for (std::vector<CNewPetActor*>::iterator it = v_garbageActor.begin(); it != v_garbageActor.end(); it++) DeletePet(*it); m_dwLastUpdateTime = currentTime; return bResult; }
-
I don't think it was a mistake. Always something happens
-
fix Fix Affect Weaponry Sura's Dispel and Healing Power Shaman's Heal Lag Bug
Speachless replied to Syreldar's topic in Bug Fixes
#define IS_FIX_POISON_RISIPA_AFFECT(type) ((type) == AFFECT_MOV_SPEED || (type) == AFFECT_ATT_SPEED || (type) == AFFECT_STR || (type) == AFFECT_DEX || (type) == AFFECT_INT || (type) == AFFECT_CON || (type) == AFFECT_CHINA_FIREWORK || (type) == SKILL_JEONGWI || (type) == SKILL_GEOMKYUNG || (type) == SKILL_CHUNKEON || (type) == SKILL_EUNHYUNG || (type) == SKILL_GYEONGGONG || (type) == SKILL_GWIGEOM || (type) == SKILL_TERROR || (type) == SKILL_JUMAGAP || (type) == SKILL_MANASHILED || (type) == SKILL_HOSIN || (type) == SKILL_REFLECT || (type) == SKILL_KWAESOK || (type) == SKILL_JEUNGRYEOK || (type) == SKILL_GICHEON || (type) == SKILL_JEOKRANG || (type) == SKILL_CHEONGRANG) void CHARACTER::ClearAffect_New(bool bSave) { TAffectFlag afOld = m_afAffectFlag; WORD wMovSpd = GetPoint(POINT_MOV_SPEED); WORD wAttSpd = GetPoint(POINT_ATT_SPEED); itertype(m_list_pkAffect) it = m_list_pkAffect.begin(); while (it != m_list_pkAffect.end()) { CAffect * pkAff = *it; if (bSave) { if (!IS_FIX_POISON_RISIPA_AFFECT(pkAff->dwType)) { ++it; continue; } if (IsPC()) { SendAffectRemovePacket(GetDesc(), GetPlayerID(), pkAff->dwType, pkAff->bApplyOn); } } ComputeAffect(pkAff, false); it = m_list_pkAffect.erase(it); CAffect::Release(pkAff); } if (afOld != m_afAffectFlag || wMovSpd != GetPoint(POINT_MOV_SPEED) || wAttSpd != GetPoint(POINT_ATT_SPEED)) UpdatePacket(); CheckMaximumPoints(); if (m_list_pkAffect.empty()) event_cancel(&m_pkAffectEvent); } That's how i solved a long time ago. Everyone is free to use what he wants. In chat skill at sura skill you use if (IS_SET(m_pkSk->dwFlag, SKILL_FLAG_REMOVE_GOOD_AFFECT)) { ..... if (number(1, 100) <= iAmount2) { pkChrVictim->ClearAffect_New(true); pkChrVictim->AddAffect(m_pkSk->dwVnum, POINT_NONE, 0, AFF_PABEOP, iDur2, 0, true); } } -
fix Fix Affect Weaponry Sura's Dispel and Healing Power Shaman's Heal Lag Bug
Speachless replied to Syreldar's topic in Bug Fixes
Or you can create a new ClearAffect with new definitions of which affect it should clear on target. -
A question for developers x2
Speachless replied to emanuel's topic in Community Support - Questions & Answers
Example if (m_dwRace >= 0 && m_dwRace <= 8) m_GraphicThingInstance.SetScaleNew(2, 2, 2); -
Question about pet.is_equipped
Speachless replied to TRBizeps's topic in Community Support - Questions & Answers
In char_item.cpp you have case ITEM_SPECIAL_DS: if (!item->IsEquipped()) EquipItem(item); else UnequipItem(item); break; -
BonusPage Multiple Opening
Speachless replied to passaport's topic in Community Support - Questions & Answers
In game.py def __toggleSwitchbot(self): if self.switchbot.bot_shown == 1: self.switchbot.Hide() else: self.switchbot.Show() -
Refresh real time maintenance by vegas
Speachless replied to emanuel's topic in Community Support - Questions & Answers
Create a timer that's working just with an event flag and that timer opens the def from python. This way all players will see it in real time.Don't worry about loop timer, it won't create any load in server. Good luck. cmdchat("_test_start") ( quest command ) _test_start you put in game.py at def __ServerCommand_Build(self): Example: def __ServerCommand_Build(self): serverCommandList={ "_test_start" : self.TestSystem, } and after you create the def at the end of the file and you are done. -
static bool IsExceptions(int vnum) { switch (vnum) { case 30036: return true; } return false; } if (!IsExceptions(GetVnum())) { LPITEM item; return (GetType() == ITEM_MATERIAL); }
-
if (!IsExceptions(item->GetVnum())) { LPITEM item; return (GetType() == ITEM_MATERIAL); }
-
What the hell is in your mind man? Even if you wanted to be accessible from a player account, at least it should have an argument (which acts as a password at least). You come with the most neglected solutions. I don't recommend a solution based on a command.