Solo usuarios registrados pueden comentar y agradecer, Logueate o Registrate

Autor Topic: Funcion completa de clic en x coordenada  (Visto 2009 veces)

0 Miembros and 1 Guest are viewing this topic.

Offline caron22 Posteado: August 14, 2020, 05:07:56 PM

  • C++ Coder
  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 622
  • Gracias recibida: 5791
  • ar
Bueno gente esta funcion la modifique para simplificar el sistema en una sola funcion, identificadas los offsets de las coordenadas y del clic izquierdo.
Esta funcion es muy necesaria para los que quieren hacer al juego un poco mas interactivo.




Creditos: Caron22

El halago en exceso, debilita y, en su justa medida, motiva
https://www.youtube.com/channel/UCN14tZ3cPSFaseVo8V6SL2g?view_as=subscriber

Gracias:

zerg24, Smudevelop, joaovithor1, MUXP, ProGuard, Fakuzz, warrior, KropaPL, orl4nd1, Saige, usersa, xufqing, bustafa, DarkNite, zekcrom, jherson, GabrielDev, stopk, TheSilencer, lstuan, vipgale01, dieguitox, atlansdev, zhangjianle865, lostcross, kurtbangu, KhongGianOL, harry130, lkt22, robkaguerou, Percy, frenzo2009, walkeny, ZTMarkz, xxcondexx, tiendoanit, kosama11, muphantom, gpsturbo, victhorinox, iramondias, Zeus, MADRUGA, showmax, draco425, hamalina, Liaon, elalfred49, sannea, tdthanh95, darkalves2, matheusgom, NewGate, beibei, jonamix, sagamacus, louis, j4b1er, BladeKnight109, universalmu4, luciferlg, plyn, ronalksp, nnDoug, kove0816, cobyzero, fengyun52894, mendani, dizzys, Smith200, Nemesis, sagat202, luckydead, alexfy, dahouzi, zeruskill, Wendigo, BenjaminTv, czrdiamond, Karamelo, AntiChetO, thanhdopc93, xlockee, kingteamus, T-LEGENDARY, z348870672, MsotoC, ddoadm, Audi, markos182, DarkovaX, d3llam3a, PachoRasta, jorginhuz, maty12, laulinh2, boncha, Ryuno, InFamous, mustx1, juan1997, igznoth, DangeR, k12leito, Yasser, 423646802, nelson, mrchebu1990, Karuritoku, TheKing027, waltervg91, darblade34, dark, brunoxd123, matichile, herjuni, Chupulum, LightofHeaven, ailsoncost, admkolla, npt.formu, Ravoc, beecubin, Feche, zlethanhlong, webamoev, wanwaycom, 日メリーのRu, yoohz, SetecSoft, Androjd123, kaisudo, Denis Alves, joselagos, muzic25, artem, manfromvn, nguqua, PhantomKr, kallixtho, Odisk, lramon, smallz170, kaiocnx, Pasa_Pal_Fondo, LTP Team, dlawls662, viorb, mechaloco, axeman192, gacon201294, alefmello166, Xysad, ZabiinoOo, cri0, stark98, c4nhsatcodong, CorsarioDgx, comelon666, pulsefire, Dizzy, -Rastaa.TSM☢, Censored, 183358, kayito, GabrielDevel, osvaldo1811, Cartman, iggfree, s00x, knight.php, Dieguinho, SaintZeus, andreyzz, ConejoMalo, Pyke, hiep, neeck1234, JavixFer, Kapocha33

Offline kayito #1 Posteado: August 14, 2020, 06:03:30 PM

  • MAESTRO

  • C++ Coder
  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 1.035
  • Gracias recibida: 15027
  • ar
Eso vendría a ser como un "isworkzone" como traen los S6, no? Sólo que en lugar de verificar un objeto, verifica sólo las coordenadas

Code: [Select]
bool Interface::IsWorkZone(short ObjectID)
{
if( (gObjUser.m_CursorX < this->Data[ObjectID].X || gObjUser.m_CursorX > this->Data[ObjectID].MaxX) || (gObjUser.m_CursorY < this->Data[ObjectID].Y || gObjUser.m_CursorY > this->Data[ObjectID].MaxY) )
return false;

return true;
}



Offline caron22 #2 Posteado: August 14, 2020, 06:30:50 PM

  • C++ Coder
  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 622
  • Gracias recibida: 5791
  • ar
Eso vendría a ser como un "isworkzone" como traen los S6, no? Sólo que en lugar de verificar un objeto, verifica sólo las coordenadas

Code: [Select]
bool Interface::IsWorkZone(short ObjectID)
{
if( (gObjUser.m_CursorX < this->Data[ObjectID].X || gObjUser.m_CursorX > this->Data[ObjectID].MaxX) || (gObjUser.m_CursorY < this->Data[ObjectID].Y || gObjUser.m_CursorY > this->Data[ObjectID].MaxY) )
return false;

return true;
}
Exacto, esta funcion hace lo mismo pero trabajado de otra manera, como mejore el metodo comparto los viejos sistemas, abrazo.

El halago en exceso, debilita y, en su justa medida, motiva
https://www.youtube.com/channel/UCN14tZ3cPSFaseVo8V6SL2g?view_as=subscriber

Offline takumi12 #3 Posteado: August 14, 2020, 08:31:09 PM | Modificado: August 14, 2020, 08:35:22 PM by takumi12

  • MAESTRO

  • US. DE HONOR

  • LEYENDA

  • Php Coder
  • +11 puntos por ventas
  • *
  • *
  • Rank: Puto amo
  • Posts: 1.310
  • Gracias recibida: 39644
  • mx
Eso vendría a ser como un "isworkzone" como traen los S6, no? Sólo que en lugar de verificar un objeto, verifica sólo las coordenadas

Code: [Select]
bool Interface::IsWorkZone(short ObjectID)
{
if( (gObjUser.m_CursorX < this->Data[ObjectID].X || gObjUser.m_CursorX > this->Data[ObjectID].MaxX) || (gObjUser.m_CursorY < this->Data[ObjectID].Y || gObjUser.m_CursorY > this->Data[ObjectID].MaxY) )
return false;

return true;
}
de echo es la misma burra pero pintada de otra forma, lo que hace la función IsWorkZone es validar la coordenada del mouse y verificar si esta en la coordenada del objeto,
mas bien es lo mismo, solo que IsWorkZone es una función adaptada usando las offset del mouse por coordenada


y tu funcion que pones no es optima ya que si agregas eso en una función donde no apliques gObjectUser.refresh() entonces simplemente no funcionará, puedes cambiar esa función por esta

Code: [Select]
bool Interface::IsWorkZone(short ObjectID)
{
if( (pCursorX < this->Data[ObjectID].X || pCursorX > this->Data[ObjectID].MaxX) || (pCursorY < this->Data[ObjectID].Y || pCursorY > this->Data[ObjectID].MaxY) )
     return false;

return true;
}


Las offset no se crea, ni se destruye, solo se transforma

Offline kayito #4 Posteado: August 14, 2020, 09:07:28 PM

  • MAESTRO

  • C++ Coder
  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 1.035
  • Gracias recibida: 15027
  • ar
Eso vendría a ser como un "isworkzone" como traen los S6, no? Sólo que en lugar de verificar un objeto, verifica sólo las coordenadas

Code: [Select]
bool Interface::IsWorkZone(short ObjectID)
{
if( (gObjUser.m_CursorX < this->Data[ObjectID].X || gObjUser.m_CursorX > this->Data[ObjectID].MaxX) || (gObjUser.m_CursorY < this->Data[ObjectID].Y || gObjUser.m_CursorY > this->Data[ObjectID].MaxY) )
return false;

return true;
}
de echo es la misma burra pero pintada de otra forma, lo que hace la función IsWorkZone es validar la coordenada del mouse y verificar si esta en la coordenada del objeto,
mas bien es lo mismo, solo que IsWorkZone es una función adaptada usando las offset del mouse por coordenada


y tu funcion que pones no es optima ya que si agregas eso en una función donde no apliques gObjectUser.refresh() entonces simplemente no funcionará, puedes cambiar esa función por esta

Code: [Select]
bool Interface::IsWorkZone(short ObjectID)
{
if( (pCursorX < this->Data[ObjectID].X || pCursorX > this->Data[ObjectID].MaxX) || (pCursorY < this->Data[ObjectID].Y || pCursorY > this->Data[ObjectID].MaxY) )
     return false;

return true;
}
jaja yo ni uso esa función así como está, simplemente la copypastié del update 13 para ponerla como ejemplo porque era lo que tenía más a mano :P


Offline caron22 #5 Posteado: August 14, 2020, 09:31:23 PM

  • C++ Coder
  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 622
  • Gracias recibida: 5791
  • ar
Lo que mas me interesa de esto es como vio mi codigo takumi12
jaja Saludos

El halago en exceso, debilita y, en su justa medida, motiva
https://www.youtube.com/channel/UCN14tZ3cPSFaseVo8V6SL2g?view_as=subscriber

Gracias:


Offline Feche #6 Posteado: August 15, 2020, 10:28:24 AM | Modificado: August 15, 2020, 10:30:29 AM by Feche

  • 0 puntos por ventas
  • *
  • Rank: Principiante
  • Posts: 24
  • Gracias recibida: 800
  • ar
Aporto offsets para deshabilitar el click, ya que si haces click el PJ se mueve, y tambien para que no cambie de icono al estar cerca de un lugar para sentarse, hablar con NPC, etc.

[/size]


Offline caron22 #7 Posteado: August 15, 2020, 10:32:28 AM

  • C++ Coder
  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 622
  • Gracias recibida: 5791
  • ar
Aporto offsets para deshabilitar el click, ya que si haces click el PJ se mueve, y tambien para que no cambie de icono al estar cerca de un lugar para sentarse, hablar con NPC, etc.
 [/size]
Buena data, me faltaban algunos

El halago en exceso, debilita y, en su justa medida, motiva
https://www.youtube.com/channel/UCN14tZ3cPSFaseVo8V6SL2g?view_as=subscriber

Offline Feche #8 Posteado: August 15, 2020, 12:15:06 PM

  • 0 puntos por ventas
  • *
  • Rank: Principiante
  • Posts: 24
  • Gracias recibida: 800
  • ar
Aporto offsets para deshabilitar el click, ya que si haces click el PJ se mueve, y tambien para que no cambie de icono al estar cerca de un lugar para sentarse, hablar con NPC, etc.
 [/size]
Buena data, me faltaban algunos
Ya con todo esto se puede arMar algo completito!


Offline Audi #9 Posteado: September 24, 2020, 10:11:59 AM

  • 0 puntos por ventas
  • *
  • Rank: Dedicado
  • Posts: 57
  • Gracias recibida: 486
  • ar

Offline ronalksp #10 Posteado: October 05, 2020, 12:53:30 PM

  • 0 puntos por ventas
  • *
  • Rank: Dedicado
  • Posts: 59
  • Gracias recibida: 81
  • ve
como hago para no permitir que un usuario se equipe un ítem especifico?


Offline caron22 #11 Posteado: October 05, 2020, 02:35:45 PM

  • C++ Coder
  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 622
  • Gracias recibida: 5791
  • ar
como hago para no permitir que un usuario se equipe un ítem especifico?
Eso lo podes resolver de la funcion del gs
GCInventoryItemOneSend o CGUseItemRecv, seria bueno que crees un tema para que te ayuden mejor con esto

El halago en exceso, debilita y, en su justa medida, motiva
https://www.youtube.com/channel/UCN14tZ3cPSFaseVo8V6SL2g?view_as=subscriber

Gracias:


Solo usuarios registrados pueden comentar y agradecer, Logueate o Registrate


 

Related Topics

  Subject / Started by Replies Last post
1 Replies
832 Views
Last post November 17, 2016, 11:53:28 PM
by malon2k
1 Replies
3533 Views
Last post February 21, 2020, 08:50:42 AM
by denny785
11 Replies
1806 Views
Last post July 04, 2020, 07:21:59 PM
by lcthesecond
8 Replies
2406 Views
Last post June 19, 2021, 04:04:39 AM
by Dieguinho
0 Replies
113 Views
Last post August 01, 2023, 10:03:18 AM
by GameNet