Jump to content

HFWhite

Active+ Member
  • Posts

    204
  • Joined

  • Last visited

  • Feedback

    0%

Everything posted by HFWhite

  1. Hello. I want to make the horse follow me like the pet. How the pet follows: [Hidden Content] How the horse follows: [Hidden Content] Now, the horse is very slow and stops from time to time. I want to make it follow me like the pet, so when I get too far the horse will teleport like the pet. How do i do that?
  2. yeah but now the mall password is not saved anymore. I think it's better with my fix from above.
  3. @Filachilla, there's an easy fix for this. You have to move SetSafeboxLoadTime(); from ReqSafeboxLoad func. to the Safebox Load func. so: (for safebox) In char.cpp: void CHARACTER::ReqSafeboxLoad(const char* pszPassword) comment or remove: SetSafeboxLoadTime(); and add it in void CHARACTER::LoadSafebox, under: bool bLoaded = false; //PREVENT_TRADE_WINDOW SetOpenSafebox(true); (for mall) In cmd_general.cpp: Search: ACMD(do_mall_password) and find there: ch->SetMallLoadTime(iPulse); comment or remove it, because it is called anyway when the mall window is closed.
  4. @ xP3NG3Rx one more bug: If you enter the wrong password and try to open the storage again, the wrong password will automatically be added again and again until you relogin. How to fix? Something like this: If you enter the password wrong the auto fill addon won't work. I added: self.interface.InitSafeboxPassword() But it does not deactivate the autofill My bad, I did not add: def InitSafeboxPassword(self): self.dlgPassword.InitSafeboxPassword() in interfacemodule.py
  5. ch->ChatPacket ---> d->GetCharacter()->ChatPacket Works perfectly, ty @ xP3NG3Rx [Hidden Content]
  6. Works fine, ty man Evidence: [Hidden Content] A little fix: 1) under def __OverInEmptySlot(self, slotNum):, add: arglen = len(str(ToolTip)) Add above: self.ideaToolTip.AppendTextLine(tooltipText), this: self.ideaToolTip.SetThinBoardSize(3 * arglen)
  7. @ Ulthar can you give us please the dump_proto source?
  8. With some source changes you can achieve this
  9. not working. When i press the Arena button, nothing happens.
  10. you have a quest there for NPC. I, for example, I made the window open with click on icon from minimap.
  11. you somehow read my mind. that's exactly what i was thinking about in the morning : that i have to manually place the effect for all lamps in the game. thank you!! one question: If i already placed some effects to the lamps, do i need to delete those for this to work? @ Mali
  12. you could create a list of christmas songs, and make them randomize everytime you login.
  13. At most, you can do this: // # open cmd.cpp and search; ACMD(do_item); // # and add under; ACMD(do_item_transfer); // search; { "item", do_item, 0, POS_DEAD, GM_GOD }, // add under; { "item_transfer", do_item_transfer, 0, POS_DEAD, GM_GOD }, // # open cmd_gm.cpp and search; ACMD(do_item) { [...] } // # add under; ACMD(do_item_transfer) { char arg1[256], arg2[256], arg3[256]; three_arguments(argument, arg1, sizeof(arg1), arg2, sizeof(arg2), arg3, sizeof(arg3)); if (!*arg1 || !*arg2 || !*arg3) { ch->ChatPacket(CHAT_TYPE_INFO, "Usage: item_transfer <item vnum> <quantity> <target player name>"); return; } int iCount, iQuantity; str_to_number(iQuantity, arg2); if (iQuantity <= 0) { ch->ChatPacket(CHAT_TYPE_INFO, "Invalid quantity."); return; } iCount = MINMAX(1, iQuantity, g_bItemCountLimit); DWORD dwVnum; if (isnhdigit(*arg1)) str_to_number(dwVnum, arg1); else { if (!ITEM_MANAGER::instance().GetVnum(arg1, dwVnum)) { ch->ChatPacket(CHAT_TYPE_INFO, "#%u item not exist by that vnum(%s).", dwVnum, arg1); return; } } LPCHARACTER targetPlayer = CHARACTER_MANAGER::instance().FindPC(arg3); if (!targetPlayer) { ch->ChatPacket(CHAT_TYPE_INFO, "Target player not found."); return; } LPITEM item = ITEM_MANAGER::instance().CreateItem(dwVnum, iCount, 0, true); if (item) { if (item->IsUpgradeItem()) { int iEmptyPos = targetPlayer->GetEmptyUpgradeInventory(item); if (iEmptyPos != -1) { item->AddToCharacter(targetPlayer, TItemPos(UPGRADE_INVENTORY, iEmptyPos)); LogManager::instance().ItemLog(targetPlayer, item, "GM_GIVE", item->GetName()); ch->ChatPacket(CHAT_TYPE_INFO, "You have transferred %d of #%u item to %s.", iCount, dwVnum, targetPlayer->GetName()); } else { M2_DESTROY_ITEM(item); ch->ChatPacket(CHAT_TYPE_INFO, "Target player does not have enough upgrade inventory space."); } } else { int iEmptyPos = targetPlayer->GetEmptyInventory(item->GetSize()); if (iEmptyPos != -1) { item->AddToCharacter(targetPlayer, TItemPos(INVENTORY, iEmptyPos)); LogManager::instance().ItemLog(targetPlayer, item, "GM_GIVE", item->GetName()); ch->ChatPacket(CHAT_TYPE_INFO, "You have transferred %d of #%u item to %s.", iCount, dwVnum, targetPlayer->GetName()); } else { M2_DESTROY_ITEM(item); ch->ChatPacket(CHAT_TYPE_INFO, "Target player does not have enough inventory space."); } } } else { ch->ChatPacket(CHAT_TYPE_INFO, "#%u item not exist by that vnum(%s).", dwVnum, arg1); } }
  14. Here's the FIX for this issue my friend @ Ballads ClientManager.cpp find: snprintf(s_szQuery, sizeof(s_szQuery), "SELECT * FROM player%s WHERE `name` = '%s' LIMIT 1", GetTablePostfix(), p->szName); and replace with this: snprintf(s_szQuery, sizeof(s_szQuery), "SELECT * FROM player%s WHERE `name` = convert('%s' using utf8mb4) collate utf8mb4_bin LIMIT 1", GetTablePostfix(), p->szName); now, the check name is case-sensitive. meaning: If the player you want to send a message is named "Scoob" and you type "sCoob" the server will tell you that the player does not exist. Have a great October!
  15. you also have to put POISON on SetImmuneFlag in mob_proto.
  16. delete [] m_hashmap_words; ---> m_hashmap_words.clear();
  17. Yeah, this system is fully bugged with a lot of exploits, better to just create a python block system. [Hidden Content]
  18. FIXED! I've added a separate check for bIsGMPost if (p.Message.bIsGMPost == true) { p.Message.DeleteTime = p.Message.SendTime + EMAILBOX::MAILBOX_REMAIN_DAY_GM * 60 * 60 * 24; } else { p.Message.DeleteTime = p.Message.SendTime + EMAILBOX::MAILBOX_REMAIN_DAY * 60 * 60 * 24; } and a check for if owner is GM if (Owner->IsGM()) { p.Message.bIsGMPost = true; } this fixed my issue GIF:
  19. still have this issue, did anyone find a fix? This is the only issue: Both GM and normal mail have the same time duration. it should be different.
×
×
  • 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.