Solo usuarios registrados pueden comentar y agradecer, Logueate o Registrate

Autor Topic: Arreglar Elementos Perdidos en la Chaos Machine  (Visto 1327 veces)

0 Miembros and 1 Guest are viewing this topic.

Offline romariols Posteado: April 03, 2020, 10:20:37 AM | Modificado: April 03, 2020, 10:25:35 AM by romariols

  • 0 puntos por ventas
  • *
  • Rank: Principiante
  • Posts: 5
  • Gracias recibida: 5
  • br
Esta fue una de las soluciones más difíciles que he encontrado hasta ahora, así que para ayudar a los chicos que están comenzando, lo dejaré aquí mientras lo soluciono.

El ERROR ocurre cuando un jugador coloca sus elementos en la Máquina del Caos y luego se desconecta del servidor debido a diferentes circunstancias o cierra el juego con los elementos de la Máquina del Caos, y luego termina perdiendo los elementos, ya que desaparecen del juego.

Esta función "revertirá" el inventario del jugador cuando esto ocurra, llevando los artículos nuevamente al inventario antes de desconectarse, solucionando el problema.

Defines
Code: [Select]
#define OBJMAX_RANGE(aIndex) (((aIndex) < 0 )?FALSE:( (aIndex) > OBJECT_MAX-1 )?FALSE:TRUE)
#define INVENTORY_SIZE 108

Funções.cpp
Code: [Select]
int gObjInventoryRollback(int aIndex)
{
    if (!OBJMAX_RANGE(aIndex))
    {
        return false;
    }


    for (int n = 0; n < INVENTORY_SIZE; n++)
    {
        gObj[aIndex].Inventory2[n].Clear();
    }


    gObjSetInventory1Pointer(&gObj[aIndex]);


    LogAddFuncColor(COLOR_BLACK, "Rollback no Inventário (%s)", gObj[aIndex].Name);


    return true;
}

Funções.h
Code: [Select]
int gObjInventoryRollback(int aIndex);

La parte siguiente debe insertarse en la función gObjDel
Code: [Select]
// - Fix Chaos Machine
if (lpObj->CloseType == -1 && lpObj->m_IfState.use == 1 && lpObj->m_IfState.type == 7)
{
    LogAddFuncColor(COLOR_BLUE, "[Chaos-Machine][%s][%s] Fechou de Forma Inesperada", lpObj->AccountID, lpObj->Name);
    gObjInventoryRollback(aIndex);
}

Créditos: Romário Leite

Gracias:


Offline melo920 #1 Posteado: April 03, 2020, 12:09:48 PM

  • C++ Coder
  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 281
  • Gracias recibida: 6445
  • co
Gracias a esta función es que se origina el Dupe Chaos Machine + Helper, OJO no la he revisado, pero quisiera advertir que podría haber problemas en modificar esta función. dependiendo de la forma en que fix dicho dupe.


Offline romariols #2 Posteado: April 03, 2020, 12:55:28 PM

  • 0 puntos por ventas
  • *
  • Rank: Principiante
  • Posts: 5
  • Gracias recibida: 5
  • br
La función solo se llama en caso de pérdida de conexión con la máquina abierta del Caos, no sé cómo podría causar tonterías.


Offline Ryzenn #3 Posteado: August 13, 2023, 05:14:00 PM

  • Colaborador
  • 0 puntos por ventas
  • *
  • Rank: Experto
  • Posts: 156
  • Gracias recibida: 1959
  • ar
Esto va en el main o en el gs ?

Se tu mismo, lo demás lo vas aprendiendo por el camino.

Solo usuarios registrados pueden comentar y agradecer, Logueate o Registrate


 

Related Topics

  Subject / Started by Replies Last post
50 Replies
21276 Views
Last post August 23, 2023, 07:06:02 AM
by wellwisher22
5 Replies
3579 Views
Last post April 19, 2020, 11:05:35 PM
by Danihv
1 Replies
1194 Views
Last post November 11, 2018, 08:22:09 AM
by Gaboo;
1 Replies
1214 Views
Last post August 19, 2019, 10:11:01 PM
by Nation Network
1 Replies
1160 Views
Last post December 18, 2019, 10:17:01 AM
by diegah