Jump to content

Sonitex

Premium
  • Posts

    521
  • Joined

  • Days Won

    12
  • Feedback

    100%

Community Answers

  1. Sonitex's post in I beg for help with sash system was marked as the answer   
    Usually character parts are updated via CHARACTER::UpdatePacket so you should start investigating there if you're even sending the correct sash data to the client.
  2. Sonitex's post in Button not clickable in certain X/Y Coords was marked as the answer   
    You must increase the parent's window height. If I had to guess, most likely "BeltInventoryLayer" window.
  3. Sonitex's post in Check query mysql was marked as the answer   
    By default your query function should return a value based on its result, should be a NULL value in case of failure.
  4. Sonitex's post in Increase texture specular but not from specular column was marked as the answer   
    Specular texture is just a white texture applied to the original texture with opacity level equal to specular level. That means even if you increase the specular level it will be the same (Those 100 points in Specular column mean 100% opacity).
    The correct way to tackle this issue would be editing alpha channel of the texture which impacts area of the shine and it's brightness. 
  5. Sonitex's post in 2014ish GF locale folder was marked as the answer   

    This is the hidden content, please Sign In or Sign Up Just so you know, I took drop files from a different archive. Here they seem to be incomplete but everything else is fine.
  6. Sonitex's post in group_group.txt how this column works was marked as the answer   
    Its probability for that particular group to spawn. If you do not define it, it will be set to 1.
    Pretty much the same concept as in special_item_group.
  7. Sonitex's post in Changing what happens when clicking textTail was marked as the answer   
    PythonPlayerInputMouse.cpp
    void CPythonPlayer::NEW_RefreshMouseWalkingDirection() { CInstanceBase* pkInstMain = NEW_GetMainActorPtr(); if (!pkInstMain) return; switch (m_eReservedMode) { case MODE_CLICK_ITEM: { CPythonItem& rkIT=CPythonItem::Instance(); TPixelPosition kPPosPickedItem; if (rkIT.GetGroundItemPosition(m_dwIIDReserved, &kPPosPickedItem)) { if (pkInstMain->NEW_GetDistanceFromDestPixelPosition(kPPosPickedItem)<20.0f) { CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance(); TPixelPosition kPPosCur; pkInstMain->NEW_GetPixelPosition(&kPPosCur); float fCurRot=pkInstMain->GetRotation(); rkNetStream.SendCharacterStatePacket(kPPosCur, fCurRot, CInstanceBase::FUNC_WAIT, 0); SendClickItemPacket(m_dwIIDReserved); pkInstMain->NEW_Stop(); __ClearReservedAction(); } else { pkInstMain->NEW_MoveToDestPixelPositionDirection(kPPosPickedItem); } } else { __ClearReservedAction(); } break; } Try this  
  8. Sonitex's post in [Problem] : battle pass was marked as the answer   
    You are missing one of these functions in CHARACTER class:
    IsCombOpen() IsOpenMailBox() isSashOpened()  
    Check both char.h and char.cpp for these  
  9. Sonitex's post in locale string system was marked as the answer   
    In cases such as horse name postfix, you can do it directly in client source. 
     
    In the following function, check if an instance is a horse and append the string to its name ('s Horse).
    void CInstanceBase::__Create_SetName(const SCreateData& c_rkCreateData)  
    In other cases where you must use a locale string as an argument, you either add multilingual data to the server or create a separate packet just for this locale string. 
     
    Edit: There are also other ways like passing "[STRING_221]" as a string argument and on the client side you fetch a locale string with ID 221. This can be also useful for item and monster names
  10. Sonitex's post in Return to dungeon problem was marked as the answer   
    Haven't really took a deep look but the thing that pointed out to me is party flag that saves dungeon index is set when you talk with the NPC 20531. 
    Because you warped out before starting the dungeon, party flag was not saved and you were teleported to a new instance.
     
    I'd recommend to move this part to somewhere else like make_dungeon() function.
    party.setf("dungeon_index", d.get_map_index()) d.setf("party_leader_pid", party.get_leader_pid())  
  11. Sonitex's post in Server kick out on Any dungeon was marked as the answer   
    void CQuestManager::CancelServerTimers(DWORD arg) { vector<pair<string, DWORD>> ServerTimersToDelete; for (auto& kv : m_mapServerTimer) { if (kv.first.second == arg) { LPEVENT event = kv.second; event_cancel(&event); ServerTimersToDelete.push_back(kv.first); } } // Delete all the required server timers for (auto &timer : ServerTimersToDelete) m_mapServerTimer.erase(timer); // Clean up ServerTimersToDelete.clear(); } Crash occurs because the game is deleting timers while iterating through them. Code above should fix this issue  
  12. Sonitex's post in [SURA NERF] Finding a calculation to nerf MANASHIELD skill was marked as the answer   
    int percentage = 31; int iDamageSPPart = (dam / 100) * percentage; Is this what you are asking for?
  13. Sonitex's post in 3x npc price difference in blue red and yellow was marked as the answer   
    Shop Prices
    To change the kingdom prices (if you are blue and go to buy something from red your price will be *3).
    Open shop.cpp and find this line:
    pack2.items[i].price = item.price * iPriceLift and replace the iPriceLift with what ever number you want
    after that open shopEx.cpp and search for:
    dwPrice *= 3; and replace the 3 with what ever number you want
    finally search the
    pack_tab.items[i].price = shop_tab.items[i].price * 3; and replace the 3 with what ever number you want.
×
×
  • 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.