Jump to content

Abel(Tiger)

Active+ Member
  • Posts

    196
  • Joined

  • Last visited

  • Days Won

    14
  • Feedback

    0%

Everything posted by Abel(Tiger)

  1. You mean ProtoReader ? For unpacking item_ mob_ proto from official locale ?
  2. If they are not in your view range they are not send in client by the server so no chance to see them.
  3. item.SetSocket(1, -1) or item.SetSocket(1, 2147483647)
  4. For minimap: else if (pkInstEach->IsNPC()) { if (pkInstEach->GetRace() == 20135) // if (pkInstEach->IsStructure()) continue; aMarkPosition.m_fX = ( m_fWidth - (float)m_WhiteMark.GetWidth() ) / 2.0f + fDistanceFromCenterX + m_fScreenX; aMarkPosition.m_fY = ( m_fHeight - (float)m_WhiteMark.GetHeight() ) / 2.0f + fDistanceFromCenterY + m_fScreenY; m_NPCPositionVector.push_back(aMarkPosition); } For atlas: // regen.cpp else if (p->m_table.bType == CHAR_TYPE_NPC || p->m_table.bType == CHAR_TYPE_WARP || p->m_table.bType == CHAR_TYPE_GOTO) { if(p->m_table.dwVnum == 20135) continue; SECTREE_MANAGER::instance().InsertNPCPosition(lMapIndex, p->m_table.bType, p->m_table.szLocaleName, (regen->sx+regen->ex) / 2 - base_x, (regen->sy+regen->ey) / 2 - base_y); }
  5. The official servers already did that for begginers weapons with antiflag.
  6. You can fight here all day [Hidden Content] Just saying.
  7. PythonMiniMap.cpp => CPythonMiniMap::UpdateAtlas() => m_AtlasPlayerMark.SetPosition
  8. @ReFresh That math is working for me [Hidden Content] @Tasho My mistake
  9. Just store it in hatch function in an socket or attribute. BTW that function for getting skill number won't work
  10. That's the hard way ... Please don't say it's ugly code, I know it.
  11. --- 0.0420000553131 seconds tierrilopes execution time --- --- 0.0659999847412 seconds Tasho execution time --- Who the f**k care about 0.02 seconds ? You can do a lot of things in those seconds ... Rewrite an entire file and then you see a difference , not from 2 code lines.
  12. 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(pPet) { 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 that is "bt full" but try like above.
  13. [Hidden Content] Useless just for one system, useful if you use it in more places.
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.