[Release] Flyff-UDF: Reads Items

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • [Release] Flyff-UDF: Reads Items

      [FONT="Franklin Gothic Medium"][COLOR="Sienna"][SIZE="2"]Hi @ all
      Hier release ich eine UDF welche die Items aus den verschiedenen Dateien lädt.
      Die Anfrage kam von Cross aus diesem Fragethread.

      Zurückgegeben wird ein 2D Array mit:
      • ID
      • Name
      • Text
      • PackMax
      • ItemKind1
      • Job
      • Sex
      • Cost


      Als Parameter werden benötigt:
      • $PropItemFile: Pfad zur PropItem.txt
      • $PropItemFile_Txt: Pfad zur PropItem.txt.txt
      • $DefineItemFile: Pfad zur DefineItem.h


      Ist aber erweiterbar. Dafür einfach fragen :wink:
      UDF im Anhang ;)

      Vielleicht braucht es ja noch jemand.

      © by Me

      Beispielcode:

      C-Quellcode

      1. #include <GUIConstantsEx.au3>
      2. #include <ListViewConstants.au3>
      3. #include <WindowsConstants.au3>
      4. #include <Array.au3>
      5. #region ### START Koda GUI section ### Form=
      6. $Form1_1 = GUICreate("Form1", 626, 446, 192, 124)
      7. $ListView1 = GUICtrlCreateListView("ID|Name|Text|PackMax|ItemKind|Job|Sex|Cost", 0, 0, 617, 441)
      8. GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 50)
      9. GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 100)
      10. GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 100)
      11. GUISetState(@SW_SHOW)
      12. #endregion ### END Koda GUI section ###
      13. $Items=_Load_Items("propItem.txt","propItem.txt.txt","defineItem.h")
      14. _Arraydisplay($items)
      15. For $i=1 to Ubound($Items)-1
      16. GUICtrlCreateListViewItem($Items[$i][0] & '|' & $Items[$i][1] & '|' & $Items[$i][2]& '|' & $Items[$i][3]& '|' & $Items[$i][4]& '|' & $Items[$i][5]& '|' &$Items[$i][6]& '|' & $Items[$i][7], $ListView1)
      17. Next
      18. While 1
      19. $nMsg = GUIGetMsg()
      20. Switch $nMsg
      21. Case $GUI_EVENT_CLOSE
      22. Exit
      23. EndSwitch
      24. WEnd
      25. ;Copyright by Kogoro (mmorpg-core.com)
      Alles anzeigen
      [/SIZE][/COLOR][/FONT]
      Dateien
    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )

    • [FONT="Franklin Gothic Medium"][COLOR="Sienna"][SIZE="2"]Also ich dachte, es wäre klar mit dem Format, wenn ich es im Autoitbereich release.
      Der Code kann mit einem Arraydisplay eigentlich allein laufen. Sonst das Beispiel verwenden ;)
      @ internetfreak: Das ist doch einfacher Code, warum verstehst du ihn denn nicht ^^[/SIZE][/COLOR][/FONT]
    • hi ich habe da gleich mal ein problem mit deiner udf un zwar:
      Error log: von mein script
      Script:
      #include <GUIConstantsEx.au3>
      #include <ListViewConstants.au3>
      #include <WindowsConstants.au3>
      #include <Array.au3>
      #include <File.au3>
      #include <Flyff_ItemReaderUDF.au3>
      #region ### START Koda GUI section ### Form=
      $Form1_1 = GUICreate("Form1", 626, 446, 192, 124)
      $ListView1 = GUICtrlCreateListView("ID|Name|Text|PackMax|ItemKind|Job|Sex|Cost", 0, 0, 617, 441)
      GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 50)
      GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 100)
      GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 100)
      GUISetState(@SW_SHOW)
      #endregion ### END Koda GUI section ###

      $Items=_Load_Items("propItem.txt","propItem.txt.txt","defineItem.h")

      For $i=1 to Ubound($Items)-1
      GUICtrlCreateListViewItem($Items[$i][0] & '|' & $Items[$i][1] & '|' & $Items[$i][2]& '|' & $Items[$i][3]& '|' & $Items[$i][4]& '|' & $Items[$i][5]& '|' &$Items[$i][6]& '|' & $Items[$i][7], $ListView1)
      Next

      While 1
      $nMsg = GUIGetMsg()
      Switch $nMsg
      Case $GUI_EVENT_CLOSE
      Exit

      EndSwitch
      WEnd


      Error:
      >"C:\Programme\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.exe" /run /prod /ErrorStdOut /in "C:\Dokumente und Einstellungen\Systemroot\Desktop\Flyff Projekt\Itemread.au3" /autoit3dir "C:\Programme\AutoIt3" /UserParams
      +>20:16:26 Starting AutoIt3Wrapper v.2.0.0.3 Environment(Language:0407 Keyboard:00000407 OS:WIN_XP/Service Pack 2 CPU:X64 OS:X86)
      >Running AU3Check (1.54.19.0) from:C:\Programme\AutoIt3
      +>20:16:27 AU3Check ended.rc:0
      >Running:(3.3.6.0):C:\Programme\AutoIt3\autoit3.exe "C:\Dokumente und Einstellungen\Systemroot\Desktop\Flyff Projekt\Itemread.au3"
      C:\Programme\AutoIt3\Include\Flyff_ItemReaderUDF.au3 (48) : ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
      $NameLine = StringSplit($split[3], "_")
      $NameLine = StringSplit(^ ERROR
      ->20:16:28 AutoIT3.exe ended.rc:1
      +>20:16:29 AutoIt3Wrapper Finished
      >Exit code: 1 Time: 2.609


      Udf Error abteil:
      For $i = 1 To UBound($PropItemFile_Array) - 1
      $split = StringSplit($PropItemFile_Array[$i], @TAB)
      If IsNumber(StringIsInt($split[1])) Then
      $z = $z + 1
      $NameLine = StringSplit($split[3], "_")
      If $NameLine[$NameLine[0]] <> 0 Then
      $Name = StringRegExpReplace($PropItemFile_Txt_Array[$NameLine[$NameLine[0]] + 1], "IDS_PROPITEM_TXT_[0-9]+", '')
      $Text = StringRegExpReplace($PropItemFile_Txt_Array[$NameLine[$NameLine[0]] + 2], "IDS_PROPITEM_TXT_[0-9]+", '')
      $ID = StringRegExpReplace(search($DefineItemFile_Array, $split[2]), "#define" & $split[2], '')
      ReDim $Return_Array[UBound($Return_Array) + 1][8]
      $Return_Array[UBound($Return_Array) - 1][0] = $ID
      $Return_Array[UBound($Return_Array) - 1][1] = $Name
      $Return_Array[UBound($Return_Array) - 1][2] = $Text
      $Return_Array[UBound($Return_Array) - 1][3] = $split[5]
      $Return_Array[UBound($Return_Array) - 1][4] = $split[6]
      $Return_Array[UBound($Return_Array) - 1][5] = $split[9]
      $Return_Array[UBound($Return_Array) - 1][6] = $split[12]
      $Return_Array[UBound($Return_Array) - 1][7] = $split[13]
      EndIf
      EndIf
      Next
    • [FONT="Comic Sans MS"][COLOR="DeepSkyBlue"][SIZE="3"]wenn du sein Code nimmst, dann musste auch dafür sorgen, dass alle Dateien da sind, wo sie gebraucht werden^^
      Denke das hast du, von daher, woher der Fehler kommt ka, ich habe mich mit dem Code nich befasst bisher
      Und wann ich das evt mal mach, ka, bin eher an C# dran (XNA machts FUN^^[/SIZE][/COLOR][/FONT]
    • [FONT="Franklin Gothic Medium"][COLOR="Sienna"][SIZE="2"]Hast du die UDF im UDF Standartverzeichnis oder im Ordner, sonst musst du " verwenden bei include ;)
      Stimmen die Pfade?
      Kann sein, dass es auch am OS liegt. Bei mir geht es nämlich. (Vista)

      versuch mal folgenden Code:

      C-Quellcode

      1. #include-once
      2. #include <File.au3>
      3. ;=================================================================================================
      4. ; AutoIt Version: 3.3.6.1
      5. ; Language: German
      6. ; Platform: Vista,Win7
      7. ; Author: Kogoro
      8. ; Requirements: Stable,Beta
      9. ;=================================================================================================
      10. ; Credits: Kogoro
      11. ;=================================================================================================
      12. ;
      13. ; Functions:
      14. ; _Load_Items
      15. ;
      16. ;=================================================================================================
      17. ;==============================================================================
      18. ; Name...........: _Load_Items
      19. ; Version........: 1.0.0.0
      20. ; Description ...: Lädt alle Items aus der PropItem.txt, mitsamt der ID und dem Rest
      21. ; Parameters ....: $PropItemFile: Pfad zur PropItem.txt
      22. ; $PropItemFile_Txt: Pfad zur PropItem.txt.txt
      23. ; $DefineItemFile: Pfad zur DefineItem.h
      24. ; Return values .: Success : Gibt einen Array (2D) zurück mit folgenen Sachen
      25. ; [0]ID
      26. ; [1]Name
      27. ; [2]Text
      28. ; [3]PackMax
      29. ; [4]ItemKind1
      30. ; [5]Job
      31. ; [6]Sex
      32. ; [7]Cost
      33. ; No Success: Nichts
      34. ; Author ........: Kogoro
      35. ; Example .......: Nein
      36. ;=========================================================================================
      37. Func _Load_Items($PropItemFile, $PropItemFile_Txt, $DefineItemFile)
      38. Local $PropItemFile_Txt_Array, $PropItemFile_Array, $DefineItemFile_Array, $Return_Array[2][8]
      39. _FileReadToArray($PropItemFile_Txt, $PropItemFile_Txt_Array)
      40. _FileReadToArray($PropItemFile, $PropItemFile_Array)
      41. _FileReadToArray($DefineItemFile, $DefineItemFile_Array)
      42. For $i = 1 To UBound($PropItemFile_Array) - 1
      43. $split = StringSplit($PropItemFile_Array[$i], @TAB)
      44. If IsNumber(StringIsInt($split[1])) Then
      45. $NameLine = StringSplit($split[3], "_")
      46. If $NameLine[$NameLine[0]] <> 0 Then
      47. $Name = StringRegExpReplace($PropItemFile_Txt_Array[$NameLine[$NameLine[0]] + 1], "IDS_PROPITEM_TXT_[0-9]+", '')
      48. $Text = StringRegExpReplace($PropItemFile_Txt_Array[$NameLine[$NameLine[0]] + 2], "IDS_PROPITEM_TXT_[0-9]+", '')
      49. $ID = StringRegExpReplace(search($DefineItemFile_Array, $split[2]), "#define" & $split[2], '')
      50. ReDim $Return_Array[UBound($Return_Array) + 1][8]
      51. $Return_Array[UBound($Return_Array) - 1][0] = $ID
      52. $Return_Array[UBound($Return_Array) - 1][1] = $Name
      53. $Return_Array[UBound($Return_Array) - 1][2] = $Text
      54. $Return_Array[UBound($Return_Array) - 1][3] = $split[5]
      55. $Return_Array[UBound($Return_Array) - 1][4] = $split[6]
      56. $Return_Array[UBound($Return_Array) - 1][5] = $split[9]
      57. $Return_Array[UBound($Return_Array) - 1][6] = $split[12]
      58. $Return_Array[UBound($Return_Array) - 1][7] = $split[13]
      59. EndIf
      60. EndIf
      61. Next
      62. Return $Return_Array
      63. EndFunc ;==>_Load_Items
      64. ;=================================================================================================
      65. ;internal functions and infos
      66. ;=================================================================================================
      67. Func search($array, $suchwort)
      68. For $i = 0 To UBound($array) - 1
      69. If StringInStr($array[$i], $suchwort) > 0 Then
      70. Return StringStripWS($array[$i], 8)
      71. EndIf
      72. Next
      73. EndFunc ;==>search
      Alles anzeigen


      1.Post Beispiel geupdatet[/SIZE][/COLOR][/FONT]
    • neuer error^^:
      >"C:\Programme\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.exe" /run /prod /ErrorStdOut /in "C:\Dokumente und Einstellungen\Systemroot\Desktop\Flyff Projekt\Itemread.au3" /autoit3dir "C:\Programme\AutoIt3" /UserParams
      +>18:29:35 Starting AutoIt3Wrapper v.2.0.0.3 Environment(Language:0407 Keyboard:00000407 OS:WIN_XP/Service Pack 2 CPU:X64 OS:X86)
      >Running AU3Check (1.54.19.0) from:C:\Programme\AutoIt3
      +>18:29:36 AU3Check ended.rc:0
      >Running:(3.3.6.0):C:\Programme\AutoIt3\autoit3.exe "C:\Dokumente und Einstellungen\Systemroot\Desktop\Flyff Projekt\Itemread.au3"
      C:\Programme\AutoIt3\Include\Flyff_ItemReaderUDF.au3 (50) : ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
      $NameLine = StringSplit($split[3], "_")
      $NameLine = StringSplit(^ ERROR
      ->18:29:38 AutoIT3.exe ended.rc:1
      +>18:29:40 AutoIt3Wrapper Finished
      >Exit code: 1 Time: 4.603

      sry das ich sone probleme mache^^
    • [FONT="Comic Sans MS"][COLOR="DeepSkyBlue"][SIZE="3"]Wieder irgendwas mit nem Array.
      Du musst irgendwie was falsch machen^^
      Denn der kann nich auf das Array zugreifen, was er aber muss und daher gibts nen Error.
      Bzw das Array hat irgendwie nich die richtige Größe, so dass der Index drinvorkommt, den das Prog will[/SIZE][/COLOR][/FONT]
    • #include-once
      #include <File.au3>

      ;=================================================================================================
      ; AutoIt Version: 3.3.6.1
      ; Language: German
      ; Platform: Vista,Win7
      ; Author: Kogoro
      ; Requirements: Stable,Beta
      ;=================================================================================================
      ; Credits: Kogoro
      ;=================================================================================================
      ;
      ; Functions:
      ; _Load_Items
      ;
      ;=================================================================================================



      ;==============================================================================
      ; Name...........: _Load_Items
      ; Version........: 1.0.0.0
      ; Description ...: Lädt alle Items aus der PropItem.txt, mitsamt der ID und dem Rest
      ; Parameters ....: $PropItemFile: Pfad zur PropItem.txt
      ; $PropItemFile_Txt: Pfad zur PropItem.txt.txt
      ; $DefineItemFile: Pfad zur DefineItem.h
      ; Return values .: Success : Gibt einen Array (2D) zurück mit folgenen Sachen
      ; [0]ID
      ; [1]Name
      ; [2]Text
      ; [3]PackMax
      ; [4]ItemKind1
      ; [5]Job
      ; [6]Sex
      ; [7]Cost
      ; No Success: Nichts
      ; Author ........: Kogoro
      ; Example .......: Nein
      ;=========================================================================================
      Func _Load_Items($PropItemFile, $PropItemFile_Txt, $DefineItemFile)
      Local $PropItemFile_Txt_Array, $PropItemFile_Array, $DefineItemFile_Array, $Return_Array[2][8]
      _FileReadToArray($PropItemFile_Txt, $PropItemFile_Txt_Array)
      _FileReadToArray($PropItemFile, $PropItemFile_Array)
      _FileReadToArray($DefineItemFile, $DefineItemFile_Array)

      For $i = 1 To UBound($PropItemFile_Array) - 1
      $split = StringSplit($PropItemFile_Array[$i], @TAB)
      If IsNumber(StringIsInt($split[1])) Then
      $NameLine = StringSplit($split[3], "_")
      If $NameLine[$NameLine[0]] <> 0 Then
      $Name = StringRegExpReplace($PropItemFile_Txt_Array[$NameLine[$NameLine[0]] + 1], "IDS_PROPITEM_TXT_[0-9]+", '')
      $Text = StringRegExpReplace($PropItemFile_Txt_Array[$NameLine[$NameLine[0]] + 2], "IDS_PROPITEM_TXT_[0-9]+", '')
      $ID = StringRegExpReplace(search($DefineItemFile_Array, $split[2]), "#define" & $split[2], '')
      ReDim $Return_Array[UBound($Return_Array) + 1][8]
      $Return_Array[UBound($Return_Array) - 1][0] = $ID
      $Return_Array[UBound($Return_Array) - 1][1] = $Name
      $Return_Array[UBound($Return_Array) - 1][2] = $Text
      $Return_Array[UBound($Return_Array) - 1][3] = $split[5]
      $Return_Array[UBound($Return_Array) - 1][4] = $split[6]
      $Return_Array[UBound($Return_Array) - 1][5] = $split[9]
      $Return_Array[UBound($Return_Array) - 1][6] = $split[12]
      $Return_Array[UBound($Return_Array) - 1][7] = $split[13]
      EndIf
      EndIf
      Next
      Return $Return_Array
      EndFunc ;==>_Load_Items

      ;=================================================================================================
      ;internal functions and infos
      ;=================================================================================================

      Func search($array, $suchwort)
      For $i = 0 To UBound($array) - 1
      If StringInStr($array[$i], $suchwort) > 0 Then
      Return StringStripWS($array[$i], 8)
      EndIf
      Next
      EndFunc ;==>search

      immernoch^^
    • [FONT="Franklin Gothic Medium"][COLOR="Sienna"][SIZE="2"]Du solltest den folgenden Code laufen lassen:

      C-Quellcode

      1. #include-once
      2. #include <File.au3>
      3. #include <Array.au3>
      4. ;================================================= ================================================
      5. ; AutoIt Version: 3.3.6.1
      6. ; Language: German
      7. ; Platform: Vista,Win7
      8. ; Author: Kogoro
      9. ; Requirements: Stable,Beta
      10. ;================================================= ================================================
      11. ; Credits: Kogoro
      12. ;================================================= ================================================
      13. ;
      14. ; Functions:
      15. ; _Load_Items
      16. ;
      17. ;================================================= ================================================
      18. ;================================================= =============================
      19. ; Name...........: _Load_Items
      20. ; Version........: 1.0.0.0
      21. ; Description ...: Lädt alle Items aus der PropItem.txt, mitsamt der ID und dem Rest
      22. ; Parameters ....: $PropItemFile: Pfad zur PropItem.txt
      23. ; $PropItemFile_Txt: Pfad zur PropItem.txt.txt
      24. ; $DefineItemFile: Pfad zur DefineItem.h
      25. ; Return values .: Success : Gibt einen Array (2D) zurück mit folgenen Sachen
      26. ; [0]ID
      27. ; [1]Name
      28. ; [2]Text
      29. ; [3]PackMax
      30. ; [4]ItemKind1
      31. ; [5]Job
      32. ; [6]Sex
      33. ; [7]Cost
      34. ; No Success: Nichts
      35. ; Author ........: Kogoro
      36. ; Example .......: Nein
      37. ;================================================= ========================================
      38. Func _Load_Items($PropItemFile, $PropItemFile_Txt, $DefineItemFile)
      39. Local $PropItemFile_Txt_Array, $PropItemFile_Array, $DefineItemFile_Array, $Return_Array[2][8]
      40. _FileReadToArray($PropItemFile_Txt, $PropItemFile_Txt_Array)
      41. _FileReadToArray($PropItemFile, $PropItemFile_Array)
      42. _FileReadToArray($DefineItemFile, $DefineItemFile_Array)
      43. For $i = 1 To UBound($PropItemFile_Array) - 1
      44. $split = StringSplit($PropItemFile_Array[$i], @TAB)
      45. _arraydisplay($split)
      46. If IsNumber(StringIsInt($split[1])) Then
      47. $NameLine = StringSplit($split[3], "_")
      48. If $NameLine[$NameLine[0]] <> 0 Then
      49. $Name = StringRegExpReplace($PropItemFile_Txt_Array[$NameLine[$NameLine[0]] + 1], "IDS_PROPITEM_TXT_[0-9]+", '')
      50. $Text = StringRegExpReplace($PropItemFile_Txt_Array[$NameLine[$NameLine[0]] + 2], "IDS_PROPITEM_TXT_[0-9]+", '')
      51. $ID = StringRegExpReplace(search($DefineItemFile_Array, $split[2]), "#define" & $split[2], '')
      52. ReDim $Return_Array[UBound($Return_Array) + 1][8]
      53. $Return_Array[UBound($Return_Array) - 1][0] = $ID
      54. $Return_Array[UBound($Return_Array) - 1][1] = $Name
      55. $Return_Array[UBound($Return_Array) - 1][2] = $Text
      56. $Return_Array[UBound($Return_Array) - 1][3] = $split[5]
      57. $Return_Array[UBound($Return_Array) - 1][4] = $split[6]
      58. $Return_Array[UBound($Return_Array) - 1][5] = $split[9]
      59. $Return_Array[UBound($Return_Array) - 1][6] = $split[12]
      60. $Return_Array[UBound($Return_Array) - 1][7] = $split[13]
      61. EndIf
      62. EndIf
      63. Next
      64. Return $Return_Array
      65. EndFunc ;==>_Load_Items
      66. ;================================================= ================================================
      67. ;internal functions and infos
      68. ;================================================= ================================================
      69. Func search($array, $suchwort)
      70. For $i = 0 To UBound($array) - 1
      71. If StringInStr($array[$i], $suchwort) > 0 Then
      72. Return StringStripWS($array[$i], 8)
      73. EndIf
      74. Next
      75. EndFunc ;==>search
      Alles anzeigen


      Dann taucht bei jedem Eintrag ein Fenster auf und von einem Brauche ich den Inhalt.[/SIZE][/COLOR][/FONT]