annuncio

Comprimi
Ancora nessun annuncio.

[EASYUO HELP] Domanda sulla conversione delle coordinate 3d a 2d

Comprimi
X
 
  • Filtro
  • Ora
  • Visualizza
Elimina tutto
nuovi messaggi

  • [EASYUO HELP] Domanda sulla conversione delle coordinate 3d a 2d

    Salve,
    qualcuno sà spiegarmi come funziona la conversione delle coordinate dal 3d al 2d?
    Ho capito sù per giù guardando lo script dei bod però mi manca il solito tassello finale che mette insieme tutto ^^
    Grazie anticipate.

  • #2
    puoi spiegarti meglio?
    ____________________________________________________________________

    Il p Fengyr
    ____________________________________________________________________
    : algander#6292

    Commenta


    • #3
      Ecco quì la sub:

      ;===============================
      ;* @name useVendor
      ;* @author Quintok
      ;* @ver 1.0 13 march 04
      ;* @purpose opens context menu and clicks the correct option
      ;* @param %1 vendor id
      ;* %2 which option to pick on the context menu


      sub useVendor
      namespace push
      namespace local Quintok
      set !useVendorCnt 0
      set !vendorID %1
      set !_contextOption %2
      set !VendorX -4
      set !VendorY -54
      _useVendorLoop:
      finditem !vendorID G
      if #findkind = -1
      {
      namespace pop
      return #false
      }
      gosub clickScreenXYZ #findx #findy #findz !vendorX !vendorY
      if paper_doll in #contname
      gosub clickScreenXYZ #findx #findy #findz !vendorX !vendorY
      gosub clickContextMenuOption !_contextOption
      if ! #result
      {
      set !useVendorCnt !useVendorCnt + 1
      if !useVendorCnt > 6
      {
      namespace pop
      return #false
      }
      set !VendorX !VendorX + 2
      set !VendorY !VendorY + 2
      goto _useVendorLoop
      }
      namespace pop
      return #true







      ;===============================
      ;* Convert 3D world coordinates to 2D screen coordinates.
      ;*
      ;* @purpose Convert 3D world coordinates to 2D screen coordinates.
      ;* @author the.WZA (namespace edit by Quintok)
      ;* @param %1 worldx req World x-coordinate.
      ;* %2 worldy req World y-coordinate.
      ;* %3 worldz req World z-coordinate.
      ;* @return %_cursorX and %_cursorY holds the screen coordinates.
      ;* @see clickScreenXYZ checkScreenXY


      sub worldXYZToScreenXY
      set %1 ( %1 - #charPosX ) * 22
      set %2 ( #charPosY - %2 ) * 22
      set !_cursorX #cliLeft + #cliXRes / 2 + %1 + %2
      set !_cursorY #cliTop + #cliYRes / 2 + %1 - %2 - ( %3 - #charPosZ ) * 4
      return







      ;===============================
      ;* Clicks on the screen given by world coordinates (with displacement).
      ;* Initialize the following variables: %_cursorX, %_cursorY.
      ;*
      ;* @purpose Clicks on the screen given by world coordinates (with displacement).
      ;* @author ScriptFellow (namespace edit by Quintok)
      ;* @param %1 worldx req World x-coordinate.
      ;* %2 worldy req World y-coordinate.
      ;* %3 worldz req World z-coordinate.
      ;* %4 xdisp opt x displacement (to be added to the screen coordinate).
      ;* %5 ydisp opt y displacement (to be added to the screen coordinate).
      ;* %6 click1 opt click modifier: D, F, G, N, P, R or X (default if 'F')
      ;* %7 click2 opt X modifier
      ;* @return %outsideScreen (#true or #false )
      ;* @see worldXYZToScreenXY checkScreenXY openContextMenu


      sub clickScreenXYZ
      if %0 < 4 || %4 = N/A
      set !_dx 0
      else
      set !_dx %4
      if %0 < 5 || %5 = N/A
      set !_dy 0
      else
      set !_dy %5
      if %0 < 6 || _ , %6 , _ notIn _D_F_G_N_P_R_X_
      set !_clickType F
      else
      set !_clickType %6
      gosub worldXYZToScreenXY %1 %2 %3
      set !_cursorX !_cursorX + !_dx
      set !_cursorY !_cursorY + !_dy
      click !_cursorX !_cursorY !_clickType %clickMod
      return
      Questa è la sub presente nel bodder uppato da te in sticky a questo link http://lfarmer16.googlecode.com/files/Bod_Gather.txt

      Ti ho messo le sub nell'ordine in cui vengono chiamate...comunque il problema è questo:cosa sono quei -4 e -54 presenti nelle variabili !vendorx e !vendory ???Come li ha ricavati l'autore?? xD

      E più in generale avrei voluto avere qualche spiegazione sù questa conversione ^^

      Se hai un pò di tempo ne sarei felice xD

      Grazie mille.

      Commenta


      • #4
        è uno script vecchio ed è stato sviluppato con una vecchia versione di easyuo adesso c'è un semplice comando per quella sub...
        codice:
        ;===============================
        ;* @name useVendor
        ;* @author Quintok
        ;* @ver 1.0 13 march 04
        ;* @purpose opens context menu and clicks the correct option
        ;* @param %1 vendor id
        ;* %2 which option to pick on the context menu
        
        
        sub useVendor
        namespace push
        namespace local Quintok
        set !useVendorCnt 0
        set !vendorID %1
        set !_contextOption %2
        _useVendorLoop:
        finditem !vendorID G
        if #findkind = -1
        {
        namespace pop
        return #false
        }
        [COLOR="Red"]exevent Popup #findid !_contextOption[/COLOR]
        gosub clickContextMenuOption !_contextOption
        if ! #result
        {
        set !useVendorCnt !useVendorCnt + 1
        if !useVendorCnt > 6
        {
        namespace pop
        return #false
        }
        set !VendorX !VendorX + 2
        set !VendorY !VendorY + 2
        goto _useVendorLoop
        }
        namespace pop
        return #true
        il resto non serve
        Ultima modifica di fengyr; 10-04-2010, 18:52.
        ____________________________________________________________________

        Il p Fengyr
        ____________________________________________________________________
        : algander#6292

        Commenta


        • #5
          Quindi mi clicca sul vendor solo con la riga in rosso...

          chiamo l'azione:

          exevent popup

          gli passo l'id dove deve cliccare:

          #findid

          e sul gump che appare quale opzione cliccare !_contextmenuoption





          tutto così no?!

          Commenta


          • #6
            la sub si occupa di controllare che ci sia l'npc e prendere il bod, le altre due si occupano dei click ma tale funzione è svolta completamente dal comando exevent popup, quindi ti basta usare la sub che ti ho passato così com'è, le variabili vengono già passate correttamente al comando.

            se hai dubbi su cosa sia i dettagli sono qui Exevent Popup - Wiki .
            ____________________________________________________________________

            Il p Fengyr
            ____________________________________________________________________
            : algander#6292

            Commenta


            • #7
              Ok ok...grazie per l'aiuto...l'unica cosa che mi manca da capire è il kalocr xD (che con tutti quei lavoretti sui pixel non ci capisco molto).

              La domanda era per uno script dei bod che ho fatto...ed ora ultimato ^^.

              Ciauz.

              Commenta


              • #8
                se il tuo script funziona ed è stabile puoi considerare l'eventualità di pubblicarlo, lo script che ho messo in sticky sul è solo il recupero di un vecchio thread che non ho molto tempo per seguire.
                se sei interessato fammi sapere.
                ____________________________________________________________________

                Il p Fengyr
                ____________________________________________________________________
                : algander#6292

                Commenta

                Sto operando...
                X