Mostrar posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - webmonkey

Paginas: [1]
1
Soporte / Ayudas / Re: Heal HP Pots
« on: June 10, 2018, 03:13:16 AM »
en common.dat:
CheckAutoPotionHack = 1
CheckAutoPotionHackTolerance = 0 //delay acá.

Perdón por levantar el post pero por ahí a alguien en el futuro le sirve.

2
no, no está ok. así estes parado en la configuración original no manda el flinch con el reflect, el flag nunca se setea en 1. No es nada personal, me refiero a que no publico código porque hay demasiada gente que no entiende como funciona y no se molesta en aprender.

si quieren evitar que el tropezón afecte a los que tienen alas, agreguen dentro de la clausa if
Code: [Select]
lpTarget->Inventory[7].IsItem() == 0
la forma que usted como la hace no es la correcta. lo mejor y recomendable es conocer el index effect del tropezon y hacer una condicion que solo entre con ese numero

para que usted pueda averigurarlo agrege en esa condicion que usas un AddLog(LOG_RED,"EffectIndex:",effect); lo mejor es conocer el index correcto yo actualmente tengo el codigo de webzen del gameserver y ps es demaseado des ordenado.  no lo hago yo porque ando alejado del mu

igual gracias por publicar con esto debatimos temas de desarrollo y pues no se vuelve monotono esto.

con esto me dio ganas de armar un OffTopic de lo que le falta mu emu respecto a Webzen

lo puse en posts anteriores, 2 veces. effect = 0x04;

Code: [Select]
if(skill != SKILL_EXPLOSION)
{
effect = 0x04;
damage = (damage*((lpObj->Type==OBJECT_USER&&lpTarget->Type==OBJECT_USER)?gServerInfo.m_ReflectDamageRatePvP:gServerInfo.m_ReflectDamageRatePvM))/100;
}

3
consultale. a mi me lo ofreció.

4
Soporte / Ayudas / Re: Files 6 clean bug visual?
« on: June 05, 2018, 07:32:14 PM »
Pasa también si otro usuario los mata?

5
Ikennylee puede llegar a venderte el custom, pero te va a cobrar caro.

6
no, no está ok. así estes parado en la configuración original no manda el flinch con el reflect, el flag nunca se setea en 1. No es nada personal, me refiero a que no publico código porque hay demasiada gente que no entiende como funciona y no se molesta en aprender.

si quieren evitar que el tropezón afecte a los que tienen alas, agreguen dentro de la clausa if
Code: [Select]
lpTarget->Inventory[7].IsItem() == 0

7
Como me hacen renegar. el source de luis tampoco lo tiene, lo acabo de descargar para comprobar. creo que lo que los confunde es que el código se repite. Vamos de nuevo, más despacio.

Código original:


Código que publiqué:


Alternativa, más simple:



yo uso los tuyos...por eso decia que se me hacia raro por que ya lo vi agregado...
para habilitarle el tropeson tienen que ir al lado files y configurar esto..
en el reflect(reflect = effect ==4) el código original no ejecuta esa verificación. lo podes poner en un millón, que no lo va a correr. if effect !=4, ya lo dije arriba. 100 es una mala configuración, debería ser azar.


si está usando asa o pet de montaje no es correcto enviando el "tropezón" como en lo video...
solo las monturas. por eso el if clause. es básico. al menos que webzen lo haya modificado desde la última vez que vi el código. desconozco si la verificación del cliente sigue existiendo después de .97.

PD: ya me acordé por qué no publico código.

8
agregá lo que está en rojo en attack.cpp

if(lpTarget->Inventory[8].IsItem() == 0 || (lpTarget->Inventory[8].m_Index != GET_ITEM(13,2) && lpTarget->Inventory[8].m_Index != GET_ITEM(13,3) && lpTarget->Inventory[8].m_Index != GET_ITEM(13,4) && lpTarget->Inventory[8].m_Index != GET_ITEM(13,37)))
         {
            if((GetLargeRand()%100) < gServerInfo.m_DamageStuckRate[lpTarget->Class])
            {
               flag = 1;
            }

         }
      }
      else if (lpTarget->Inventory[8].IsItem() == 0 || (lpTarget->Inventory[8].m_Index != GET_ITEM(13, 2) && lpTarget->Inventory[8].m_Index != GET_ITEM(13, 3) && lpTarget->Inventory[8].m_Index != GET_ITEM(13, 4) && lpTarget->Inventory[8].m_Index != GET_ITEM(13, 37)))
      {
         if ((GetLargeRand() % 100) < gServerInfo.m_DamageStuckRate[lpTarget->Class])
         {
            flag = 1;
         }

      }


      gObjectManager.CharacterLifeCheck(lpObj,lpTarget,(damage-ShieldDamage),0,flag,effect,((lpSkill==0)?0:lpSkill->m_index),ShieldDamage);

9
funciona, pruebenlo, lo estoy usando y otro usuario de otro foro en el que publiqué el fix ya lo está usando sin problemas. lo que pusiste Ryuno pasa el ataque del reflect al statemachine gSMMsg, y este cuando corre ejecuta de nuevo la función atttack, el ¨tropezón" no está atado a esa función, si no al damage send que envía desde la función de ataque. básicamente es un else if porque en el código original hace if(effect != 4...), lo que significa que ignora todo el código cuando el statemachine envía el ataque del reflect.

Paso en limpio, la parte del código que pegó Ryuno funciona como corresponde y corre la función que modifiqué.


Es lógico que prueben con gServerInfo.m_DamageStuckRate en 100 en el gameserver.

10
Como varios saben, los archivos mu emu no envian el "flinch/tropezón/etc" al personaje que ataca a alguien con reflect, esto es uno de los principales beneficios de tener reflect. Para agregar el efecto busquen en attack.cpp la linea
Code: [Select]
gObjectManager.CharacterLifeCheck(lpObj,lpTarget,(damage-ShieldDamage),0,flag,effect,((lpSkill==0)?0:lpSkill->m_index),ShieldDamage);

y agreguen arriba el check del skill del reflect para que quede así:
Code: [Select]
		else if (lpTarget->Inventory[8].IsItem() == 0 || (lpTarget->Inventory[8].m_Index != GET_ITEM(13, 2) && lpTarget->Inventory[8].m_Index != GET_ITEM(13, 3) && lpTarget->Inventory[8].m_Index != GET_ITEM(13, 4) && lpTarget->Inventory[8].m_Index != GET_ITEM(13, 37)))
{
if ((GetLargeRand() % 100) < gServerInfo.m_DamageStuckRate[lpTarget->Class])
{
flag = 1;
}

}

gObjectManager.CharacterLifeCheck(lpObj,lpTarget,(damage-ShieldDamage),0,flag,effect,((lpSkill==0)?0:lpSkill->m_index),ShieldDamage);

11
Sources Generales / Re: Fix bug zen version 97d
« on: May 22, 2018, 11:53:29 AM »

12
Sources Generales / Re: Fix bug zen version 97d
« on: May 22, 2018, 03:30:17 AM »
Creo que estoy de acuerdo en un 99%, siempre hay que ir mejorando el codigo, las variables se tendrian que crear una clase pra volver a utilizar el codigo y sacar esos return que son una mala cosumbre.
 if (!OBJMAX_RANGE(aIndex))
       {
          return FALSE;
       }
Ese false en el int que le recomendas me hace ruido xD

ese FALSE, no false, ya vi varios casos donde hacen

Code: [Select]
#ifndef FALSE
#define FALSE               0
#endif

ahora si es buena práctica o no ya es otro cantar. También tiene razón YolaxD que BOOL = int.
Perdon pero BOOL no es lo mismo que un int.
Creo que Yola habla de otra cosa che, igual comento esto para que te quede claro un concepto y luego no te den los numeros al programar. Abrazo

typedef int BOOL; windef.h

bool != BOOL. uno es un tipo de datos de c++ y el otro un typedef de windows. al igual que false != FALSE. las mayúsculas importan.


Tengo entendido que eso es para declarar variables no globales que inicien y terminen en esa porsion de codigo.
Yo personalmente no lo uso pero vi muchos que lo usan.

Qué? es una directiva de compilador.  le dice que donde vea FALSE ponga 0.

13
Sources Generales / Re: Fix bug zen version 97d
« on: May 15, 2018, 08:17:54 PM »
Creo que estoy de acuerdo en un 99%, siempre hay que ir mejorando el codigo, las variables se tendrian que crear una clase pra volver a utilizar el codigo y sacar esos return que son una mala cosumbre.
 if (!OBJMAX_RANGE(aIndex))
       {
          return FALSE;
       }
Ese false en el int que le recomendas me hace ruido xD

ese FALSE, no false, ya vi varios casos donde hacen

Code: [Select]
#ifndef FALSE
#define FALSE               0
#endif

ahora si es buena práctica o no ya es otro cantar. También tiene razón YolaxD que BOOL = int.

14
Soporte / Ayudas / Re: Agregar Items Mu S6 Ep3
« on: May 05, 2018, 12:58:04 PM »
Por eso no te va a cargar nunca los items. Tenes que volver a copiar main.emu

15
Soporte / Ayudas / Re: Agregar Items Mu S6 Ep3
« on: May 04, 2018, 11:52:17 AM »
No está cargando el modelo. Si fuera el ítem o el tooltip no verías el espacio que ocupa ni el texto. Estás copiando el nuevo archivo emu no? , maininfo no modifica el main.exe, los datos de los modelos agregados se guardan en el archivo emu

16
es un stored procedure. WZ_DeleteCharacter.

Paginas: [1]