Popular Post NazoX Posted June 20, 2018 Popular Post Report Share Posted June 20, 2018 Bueno visto que no lo he visto en esta comunidad, traigo el fix de la tienda offline de ken para duplicar items en la offline, no lo he probado todavía ya que la estoy recién instalando, pero por algunos comentarios de diversos foros, funciona, bueno empecemos. 1º Solución, vamos a offlineshop_manager.cpp y buscamos la siguiente línea: void COfflineShopManager::TakeItem(LPCHARACTER ch, BYTE bPos) y cambiamos el and status = 0 por 1 quedando así: Quote DBManager::instance().DirectQuery("DELETE FROM %soffline_shop_item WHERE owner_id = %u and pos = %d and status = 1", get_table_postfix(), ch->GetPlayerID(), bPos); Nota: Si no funciona buscamos and status = y todos los "0" remplazamos por "1" 2ºSolución, vamos a input_main.cpp, y buscamos la siguiente línea: "case SHOP_SUBHEADER_CG_TAKE_ITEM" y remplazamos toda la función por lo siguiente: case SHOP_SUBHEADER_CG_TAKE_ITEM: { if (uiBytes < sizeof(BYTE)) return -1; BYTE bPos = *c_pData; if (!COfflineShopManager::instance().HasOfflineShop(ch)){ sys_log(0, "INPUT: %s OFFLINE_SHOP_TAKE_ITEM", ch->GetName()); COfflineShopManager::instance().TakeItem(ch, bPos); } return (sizeof(BYTE)); } Nuevamente buscamos -> "case SHOP_SUBHEADER_CG_REFRESH_UNSOLD_ITEMS" y remplazamos la función por lo siguiente: case SHOP_SUBHEADER_CG_REFRESH_UNSOLD_ITEMS: { if (!COfflineShopManager::instance().HasOfflineShop(ch)){ sys_log(0, "INPUT: %s OFFLINE_SHOP_REFRESH_UNSOLD_ITEMS", ch->GetName()); COfflineShopManager::instance().RefreshUnsoldItems(ch); } return 0; } Con esto debería bastar para solucionar el problema de duplicar items en la tienda Créditos: GucciMane. Según la otra persona, pudo solucionar el problema, solo utilizando el método 1, es decir el de "and status" Otra solución para duplicar items en la tienda offline, (en general, otro sistema o incluso en la de Ken mismo, podéis probar esto) vamos a input_main.cpp y buscamos esta función -> int CInputMain::MyOfflineShop(LPCHARACTER ch, const char * c_pData, size_t uiBytes) y añadimos lo siguiente: if (ch->GetExchange() || ch->IsOpenSafebox() || ch->GetShopOwner() || ch->IsCubeOpen() || ch->GetOfflineShopOwner() || ch->IsAcceOpen()) { ch->ChatPacket(CHAT_TYPE_NOTICE, ("This nigga try to make a bug -> %s."), ch->GetName()); return (iExtraLen); } Nota: Si no tenéis el "IsAcceOpen" a vosotros os dará el error, simplemente eliminar y cerrar en el anterior punto. Otro fix para la parte de C++ en el cliente, para poder cambiar de precio los objetos de la tienda offline, debemos hacer esto. Nos dirigimos a: PythonNetworkPhaseGameItem.cpp Una vez aquí, buscamos la siguiente línea -> bool CPythonNetworkStream :: SendChangePriceOfflineShopItem (BYTE bPos, int iPrice) lo cambiamos por lo siguiente: Quote pTable.bDisplayPos = 0; por: pTable.bDisplayPos = bPos; Para terminar otra vez en C++ del servidor, vamos a input_main.cpp y buscamos esta línea-> COfflineShopManager :: instance (). ChangePrice (ch, pTable-> bPos, pTable-> lPrice); por esta Quote COfflineShopManager :: instance (). ChangePrice (ch, pTable-> bDisplayPos, pTable-> lPrice); Créditos: DeYaN. Aquí comentan algún fix mas para Ken Debes iniciar sesión para ver el contenido del enlace en esta publicación. Se agradecería que si funciona, comentéis cual método habéis usado, o si los de la web funcionan, para dejarlo claro y así los demás tengamos idea para usarlos, un saludo ^^ Samsung45, MEddy, AdminP7 and 45 others 43 2 3 Quote Link to comment Share on other sites More sharing options...
【ℛ-𝓝】ℛ𝔂𝓼𝒆 Posted June 20, 2018 Report Share Posted June 20, 2018 hace 7 horas, NazoX dijo: Bueno visto que no lo he visto en esta comunidad, traigo el fix de la tienda offline de ken para duplicar items en la offline, no lo he probado todavía ya que la estoy recién instalando, pero por algunos comentarios de diversos foros, funciona, bueno empecemos. 1º Solución, vamos a offlineshop_manager.cpp y buscamos la siguiente línea: void COfflineShopManager::TakeItem(LPCHARACTER ch, BYTE bPos) y cambiamos el and status = 0 por 1 quedando así: Nota: Si no funciona buscamos and status = y todos los "0" remplazamos por "1" 2ºSolución, vamos a input_main.cpp, y buscamos la siguiente línea: "case SHOP_SUBHEADER_CG_TAKE_ITEM" y remplazamos toda la función por lo siguiente: case SHOP_SUBHEADER_CG_TAKE_ITEM: { if (uiBytes < sizeof(BYTE)) return -1; BYTE bPos = *c_pData; if (!COfflineShopManager::instance().HasOfflineShop(ch)){ sys_log(0, "INPUT: %s OFFLINE_SHOP_TAKE_ITEM", ch->GetName()); COfflineShopManager::instance().TakeItem(ch, bPos); } return (sizeof(BYTE)); } Nuevamente buscamos -> "case SHOP_SUBHEADER_CG_REFRESH_UNSOLD_ITEMS" y remplazamos la función por lo siguiente: case SHOP_SUBHEADER_CG_REFRESH_UNSOLD_ITEMS: { if (!COfflineShopManager::instance().HasOfflineShop(ch)){ sys_log(0, "INPUT: %s OFFLINE_SHOP_REFRESH_UNSOLD_ITEMS", ch->GetName()); COfflineShopManager::instance().RefreshUnsoldItems(ch); } return 0; } Con esto debería bastar para solucionar el problema de duplicar items en la tienda Créditos: GucciMane. Según la otra persona, pudo solucionar el problema, solo utilizando el método 1, es decir el de "and status" Otra solución para duplicar items en la tienda offline, (en general, otro sistema o incluso en la de Ken mismo, podéis probar esto) vamos a input_main.cpp y buscamos esta función -> int CInputMain::MyOfflineShop(LPCHARACTER ch, const char * c_pData, size_t uiBytes) y añadimos lo siguiente: if (ch->GetExchange() || ch->IsOpenSafebox() || ch->GetShopOwner() || ch->IsCubeOpen() || ch->GetOfflineShopOwner() || ch->IsAcceOpen()) { ch->ChatPacket(CHAT_TYPE_NOTICE, ("This nigga try to make a bug -> %s."), ch->GetName()); return (iExtraLen); } Nota: Si no tenéis el "IsAcceOpen" a vosotros os dará el error, simplemente eliminar y cerrar en el anterior punto. Otro fix para la parte de C++ en el cliente, para poder cambiar de precio los objetos de la tienda offline, debemos hacer esto. Nos dirigimos a: PythonNetworkPhaseGameItem.cpp Una vez aquí, buscamos la siguiente línea -> bool CPythonNetworkStream :: SendChangePriceOfflineShopItem (BYTE bPos, int iPrice) lo cambiamos por lo siguiente: Para terminar otra vez en C++ del servidor, vamos a input_main.cpp y buscamos esta línea-> COfflineShopManager :: instance (). ChangePrice (ch, pTable-> bPos, pTable-> lPrice); por esta Créditos: DeYaN. Aquí comentan algún fix mas para Ken Debes iniciar sesión para ver el contenido del enlace en esta publicación. Se agradecería que si funciona, comentéis cual método habéis usado, o si los de la web funcionan, para dejarlo claro y así los demás tengamos idea para usarlos, un saludo ^^ Gracias linda, la probaré y vere que tal ! eurotruck, Freddy Di Maria and ahynoa 3 Quote Link to comment Share on other sites More sharing options...
NazoX Posted June 20, 2018 Author Report Share Posted June 20, 2018 hace 3 minutos, Ryzen dijo: Gracias linda, la probaré y vere que tal ! linda? ._. que alguien lo banee por favor. xd, acuerdate de comentar si funciona. Quote Link to comment Share on other sites More sharing options...
clanco365 Posted December 7, 2018 Report Share Posted December 7, 2018 Buenas funciona si, perfecto me sirivo mucho gracias tu +1 Quote Link to comment Share on other sites More sharing options...
Freddy Di Maria Posted December 9, 2020 Report Share Posted December 9, 2020 Messirve Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.