Jump to content

[C++]Fix Shop Offline Ken


NazoX

Mensajes recomendados

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 ! 😘

Enlace para comentar
Compartir en otros sitios

  • 5 months later...
  • 2 years later...

Unirse a la conversación

Puedes publicar ahora y registrarte más tarde. Si tienes una cuenta, regístrate para publicar con su cuenta.

Guest
Responder a este tema...

×   Has pegado contenido con formato .   Eliminar formato

  Only 75 emoji are allowed.

×   Tu enlace se ha incorporado automáticamente.   Mostrar un enlace en su lugar

×   Se ha restaurado el contenido anterior. .   Borrar editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recientemente navegando por este tema   0 miembros

    • No hay usuarios registrados visitando esta página.
×
×
  • Crear nuevo...