Jump to content
×
×
  • Create New...

PetePeter

Member
  • Posts

    21
  • Joined

  • Last visited

About PetePeter

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

PetePeter's Achievements

Explorer

Explorer (4/14)

  • Dedicated Rare
  • Reacting Well
  • First Post
  • Collaborator
  • Week One Done

Recent Badges

9

Reputation

  1. Thanks a lot @Owsap! Excellent work. Do you know than if you have the chat or any private message open when you try to change any key the input going to the chat / private message ?
  2. It's a common bug, it's not only happen with Dragon Soul but with any item you will try to drop. The ESC key close the window but don't close the "screen lock" feature. Try to edit like that : # game.py # Search def OnKeyDown(self, key): def OnKeyDown(self, key): if self.interface.wndWeb and self.interface.wndWeb.IsShow(): return constInfo.SET_ITEM_DROP_QUESTION_DIALOG_STATUS(0) # Replace by def OnKeyDown(self, key): if self.interface.wndWeb and self.interface.wndWeb.IsShow(): return if key == app.DIK_ESC: self.RequestDropItem(False) constInfo.SET_ITEM_QUESTION_DIALOG_STATUS(0)
  3. It's happen when you using Escape to close the drop window ?
  4. 1) Don't ask for official cracked software here 2) Don't use cracked protection software (Seem logic, without update and stuff it's useless) 3) Don't use Enigma at all, it's will not help you against cheat or anything
  5. Can be about "_IMPROVED_PACKET_ENCRYPTION_" I had some similar problem with it (Like client instant kick instead of lagging when sorting a big inventory)
  6. The repo actually contain the ON / OFF button. What do you want exactly ?
  7. For who want to save the backup on the shutdown of the server too, this code will work. common/tables.h // Search HEADER_GD_MAILBOX_UNREAD = 163, // Add HEADER_GD_MAILBOX_BACKUP = 164, db/ClientManager.cpp // Search case HEADER_GD_MAILBOX_UNREAD: QUERY_MAILBOX_UNREAD(peer, dwHandle, (TMailBox*)data); break; // Add after case HEADER_GD_MAILBOX_BACKUP: MAILBOX_BACKUP(); break; game/main.cpp // Search DBManager::instance().FlushBilling(true); // Add before sys_log(0, "<shutdown> Backup MailBox data..."); db_clientdesc->DBPacket(HEADER_GD_MAILBOX_BACKUP, 0, NULL, 0); I don't know if is the best way, but it's actually working.
  8. Thanks a lot @Malithat's an excellent code ! Maybe you can add the mysql backup on the server shutdown also ? Like the other cache do
  9. "Because of this stupid line of code `tokens = line[:-1].split("\t")` you gotta have an extra char(space) after 'SA'" This is for remove the line break, just add an empty line if it's the last line of your file. Because if you add another line after this one, the script will take your space at function name also
  10. PyObject* wndMgrGetSlotLocalPosition(PyObject* poSelf, PyObject* poArgs) { UI::CWindow* pWin; if (!PyTuple_GetWindow(poArgs, 0, &pWin)) return Py_BuildException(); int iSlotIndex; if (!PyTuple_GetInteger(poArgs, 1, &iSlotIndex)) return Py_BuildException(); if (!pWin->IsType(UI::CSlotWindow::Type())) return Py_BuildException(); UI::CSlotWindow* pSlotWin = (UI::CSlotWindow*)pWin; RECT& rRect = pSlotWin->GetRect(); return Py_BuildValue("ii", rRect.left, rRect.top); } PyObject* wndMgrGetSlotGlobalPosition(PyObject* poSelf, PyObject* poArgs) { UI::CWindow* pWin; if (!PyTuple_GetWindow(poArgs, 0, &pWin)) return Py_BuildException(); int iSlotIndex; if (!PyTuple_GetInteger(poArgs, 1, &iSlotIndex)) return Py_BuildException(); if (!pWin->IsType(UI::CSlotWindow::Type())) return Py_BuildException(); UI::CSlotWindow* pSlotWin = (UI::CSlotWindow*)pWin; int ix, iy; pSlotWin->GetSlotGlobalPosition(iSlotIndex, &ix, &iy); return Py_BuildValue("ii", ix, iy); } That's what you need ?
  11. tonumber will not remove the dot as it's a correct number (Even if it's a float) Edit: Use math.floor instead math.floor(4.1)) -> 4 math.floor(3.8)`) -> 3
  12. Just kill the game & auth process before the db one, they will send packet to db at exit
  13. I don't think that's a good solution to do a mysql query based on player command, I suggest you to load the gm list at login/warp with quest that's better int pc_register_gamemaster(lua_State * L) { LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); if (!ch) return 0; std::auto_ptr<SQLMsg> pmsg(DBManager::instance().DirectQuery("select `mname` from `common`.`gmlist`")); if (pmsg->Get()->uiNumRows > 0) { for (int i = 0; i < pmsg->Get()->uiNumRows; i++) { mysql_row row = mysql_fetch_row(pmsg->Get()->pSQLresult); ch->ChatPacket(chat_type_command, "addgamemaster %s", row[0]); } } return 0; } { "register_gamemaster", pc_register_gamemaster }, quest register_gamemaster begin state start begin when login begin pc.register_gamemaster() end end end Thanks for the design PS: Why did you convert all to lowercase ? it's unusable like that
  14. Add it on "#define IS_NO_CLEAR_ON_DEATH_AFFECT(type)" inside char_affect.cpp
  15. I think have easiest way if (true && !false && true != false && false != true) { if(item->GetCount() > 0) item->SetCount(item->GetCount()-0); else item->SetCount(item->GetCount()-(1-1)); } else if (true == false) { if(item->GetCount() > 0) item->SetCount(item->GetCount()-0); else item->SetCount(item->GetCount()-(1-1)); } else { item->SetCount(item->GetCount()-1); }

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.