Solo usuarios registrados pueden comentar y agradecer, Logueate o Registrate

Autor Topic: Source para poner un limite de niveles en party [C++]  (Visto 2084 veces)

0 Miembros and 1 Guest are viewing this topic.

Offline ivaancruzz Posteado: April 16, 2019, 09:21:12 PM

  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 442
  • Gracias recibida: 2317
  • ar
Hola!! Lo que estaría necesitando si se puede, es un codigo para que el party no lo puedan usar a cualquier nivel!
Sería asi:

Si un personaje tiene una diferencia de 10 o + niveles con el personaje que quiere dar party, no podrá.
Pero si es menor si.
Ejemplo

Un psj nivel 350 puede darle party a uno que esté nivel 360. Pero si el personaje está nivel 349 y le quiere dar party al que está en nivel 360 no podrá


Offline Azzlaer #1 Posteado: April 16, 2019, 09:37:55 PM

  • MAESTRO

  • US. DE HONOR

  • Colaborador
  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 1.407
  • Gracias recibida: 23183
  • cl
Ya tenes en funcionamiento tu Servidor ?? o estas previamente configurando ?


Offline ivaancruzz #2 Posteado: April 16, 2019, 09:40:24 PM

  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 442
  • Gracias recibida: 2317
  • ar
Estoy configurandolo aun, no lo e lanzado!


Offline celex #3 Posteado: April 23, 2019, 07:50:45 PM

  • 0 puntos por ventas
  • *
  • Rank: Principiante
  • Posts: 10
  • Gracias recibida: 1
  • ar
Yo tengo esa misma duda, en mi caso la diferencia seria de 120 niveles.


Offline jorge2016 #4 Posteado: April 23, 2019, 09:46:58 PM

  • 0 puntos por ventas
  • *
  • Rank: Liga mayor
  • Posts: 187
  • Gracias recibida: 2179
  • uy
fijate en el codigo igcn s9 esta esa funcion solo debes acomodarla a tu gusto...


Offline kind #5 Posteado: April 24, 2019, 11:46:40 AM

  • C++ Coder
  • 0 puntos por ventas
  • *
  • Rank: Experto
  • Posts: 153
  • Gracias recibida: 1852
  • ar
No es muy dificil, deberias de chequear el level del target y despues hacer una diferencia con tu level, si la diferencia es superior a 10, que retorne la funcion y listo.


Offline kind #6 Posteado: April 24, 2019, 08:20:49 PM

  • C++ Coder
  • 0 puntos por ventas
  • *
  • Rank: Experto
  • Posts: 153
  • Gracias recibida: 1852
  • ar
No es muy difícil, deberías de chequear el level del target y después hacer una diferencia con tu level, si la diferencia es superior a 10, que retorne la función y listo.

Seria algo así:




Cabe aclarar que no lo testee... quizás este invertida la resta, pero de esa forma lo haría yo. Si estoy equivocado corrijanme y sepan disculpar, años sin hacer nada.



Offline repiolaa #7 Posteado: April 24, 2019, 09:26:58 PM

  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 238
  • Gracias recibida: 1735
  • ar
No es muy difícil, deberías de chequear el level del target y después hacer una diferencia con tu level, si la diferencia es superior a 10, que retorne la función y listo.

Seria algo así:




Cabe aclarar que no lo testee... quizás este invertida la resta, pero de esa forma lo haría yo. Si estoy equivocado corrijanme y sepan disculpar, años sin hacer nada.

el prblema con esa funcion es que el target y el object se invierten si vos das party o te estan dando party, yo haria un for en el target y en base a el level que arroje el for que lo compare entre el lvl maximo y minimo permitido


Offline kind #8 Posteado: April 24, 2019, 09:45:13 PM

  • C++ Coder
  • 0 puntos por ventas
  • *
  • Rank: Experto
  • Posts: 153
  • Gracias recibida: 1852
  • ar
No es muy difícil, deberías de chequear el level del target y después hacer una diferencia con tu level, si la diferencia es superior a 10, que retorne la función y listo.

Seria algo así:




Cabe aclarar que no lo testee... quizás este invertida la resta, pero de esa forma lo haría yo. Si estoy equivocado corrijanme y sepan disculpar, años sin hacer nada.

el prblema con esa funcion es que el target y el object se invierten si vos das party o te estan dando party, yo haria un for en el target y en base a el level que arroje el for que lo compare entre el lvl maximo y minimo permitido
Se entiende, pero el no pidio que sea en ambas direcciones el gap, sino que sea solo en una, de esa forma no deberia porque invertirse, siempre la verificacion va a ser de quien da el party, o de quien recibe, no de ambos lados.


Offline repiolaa #9 Posteado: April 24, 2019, 10:08:22 PM | Modificado: April 24, 2019, 10:10:24 PM by repiolaa

  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 238
  • Gracias recibida: 1735
  • ar
yo lpObj lvl 350 - el lpTarget lvl 360 // si yo doy party el resultado es -10
el lpObj lvl 360 - yo lpTarget lvl 350 // si me dan party el resultado es 10

en ambos casos acepta el party porque es menor que 11

yo lpObj lvl 250 - el lpTarget lvl 360 // si yo doy party el resultado es -110
el lpObj lvl 360 - yo lpTarget lvl 250 // si me dan party el resultado es 110

acepta igual el party con -110 lvl

Gracias:


Offline kind #10 Posteado: April 25, 2019, 10:14:18 AM

  • C++ Coder
  • 0 puntos por ventas
  • *
  • Rank: Experto
  • Posts: 153
  • Gracias recibida: 1852
  • ar
@repiolaa gracias por la aclaracion, por eso puse en la respuesta que quizas estaba invertida la resta, pero en terminos generales, deberia funcionar solo alterando eso, o crees que falta mas aun? Obviamente que esto tenes que ponerlo dentro de las funciones que chequea el party, pero si pidio una idea del codigo, entiendo que sabra donde ubicarlo.


Offline RinOv #11 Posteado: April 25, 2019, 03:15:26 PM

  • C++ Coder
  • 0 puntos por ventas
  • *
  • Rank: Liga mayor
  • Posts: 181
  • Gracias recibida: 1990
  • ru
respeto el trabajo de cada quien, pero si lo modifican y hacemos configurable , quedaria mas simple

Code: [Select]
int CParty::DiferenciaLevel(int a,int b)
{
   return abs(a-b);
}

Code: [Select]
   if ((this->DiferenciaLevel(lpTarget->Level,lpSender->Level)) > gServerInfo.m_maxLevelDiference)
   {
      return;
   }

RinOv Group

Gracias:


Offline Ryuno #12 Posteado: April 25, 2019, 04:24:25 PM

  • C++ Coder
  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 505
  • Gracias recibida: 2026
  • dz
respeto el trabajo de cada quien, pero si lo modifican y hacemos configurable , quedaria mas simple

Code: [Select]
int CParty::DiferenciaLevel(int a,int b)
{
   return abs(a-b);
}

Code: [Select]
   if ((this->DiferenciaLevel(lpTarget->Level,lpSender->Level)) > gServerInfo.m_maxLevelDiference)
   {
      return;
   }
si lo hacen configurable de cualquier level no podran usar el Aviso  0x5 del party. ya que en la original debe ser level menor a 130


Offline RinOv #13 Posteado: April 26, 2019, 03:59:58 PM

  • C++ Coder
  • 0 puntos por ventas
  • *
  • Rank: Liga mayor
  • Posts: 181
  • Gracias recibida: 1990
  • ru
pos no se con un simple

Code: [Select]
	if ((this->Diferencia(lpTarget->Level,lpSender->Level)) > gServerInfo.m_maxLevelDiference)
{
gNotice.GCNoticeSend(lpObj->Index,1,0,0,0,0,0,"Diferencia de niveles del party muy alto");
return;
}

con una simple mensaje se puede hacer, no le veo el por que no, ahora que diga exactamente el nivel , son la suma y resta del target , tambien se podria pero modifcando el mensaje mas avanzado, pero igual se podria. es extraño tu mensaje

RinOv Group

Gracias:


Solo usuarios registrados pueden comentar y agradecer, Logueate o Registrate


 

Related Topics

  Subject / Started by Replies Last post
1 Replies
1967 Views
Last post April 11, 2017, 07:45:35 PM
by Lude
1 Replies
1846 Views
Last post May 03, 2018, 07:19:51 PM
by dedicadobk
4 Replies
982 Views
Last post September 11, 2019, 11:01:28 AM
by nada1
1 Replies
686 Views
Last post January 19, 2020, 01:45:13 AM
by Lude
1 Replies
650 Views
Last post April 15, 2020, 07:41:22 PM
by EmmaDCG