[Offi Files].dyo File Viewer & Saver

    • [Offi Files].dyo File Viewer & Saver

      [COLOR="White"][SIZE="6"][COLOR="Orange"]Hallo Leute[/COLOR][/SIZE]


      [COLOR="Orange"]Ich habe die Source von einem sogenannten .dyo Viewer in die hände bekommen.

      Nun werden bei dieser Version die .dyo dateien angezeigt sondern auch in einer txt datei gespeichert. Sodass man sie belibig ändern kann.

      Immoment sitzte ich gerade an einem sozusagen Converter der die txt Datei wieder in die .dyo Codierung zurück "verwandelt"



      immoment nütz das nicht viel aber so könnt ihr die Position der Npc's bestimmen.


      So müst ihr das benutzten :

      einfach eine beliebige .dyo datei nehmen und sie in data umbennen und den Viewer einfach starten[/COLOR]
      [/COLOR]

    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )

    • [COLOR="Orange"]Wen du lesen kannst siehste das dort eine dyo.log datei gespeichert wird und wen du die erste und zweite klasse bestanden hast kannste auch bestimmt den rest lesen das das immoment nich viel nützt und man nur die Posi sieht und später wen der back converter kommt das doch nützlich ist
      und auserdem steht da auch noch (vorsicht für die wo in der dritte klasse waren:) das ich die Source in die Hand bekommen habe.
      Es ist mir egal von wem oder egal wie: Sobald man eine Source hat versucht man das beste daraus zu machen.
      Und ich wurde nunmal gebeten , diesen "Viewer" weiterzuproggen sodass man die .dyo dateien ändern kann und immoment werden die die einträge gespeichert und später wen ich es schaffe und fertig bringen kann man das back convertieren.

      Soviel dazu
      [/COLOR]
    • Was denn noch für Beweise ?

      Eine Exe ? Damit die Leute schön Leechen können ? Nja.

      Den Namen hab ich absichtlich weichgezeichnet, ich kann aber gern nen Screen mit reintun, aber ich hab das Gefühl, dass Leute gern abgucken.

      [COLOR="SeaGreen"]EDIT (09.10.09) :[/COLOR]

      Hier ein Screen von ner bearbeiteten dyo (Ingameergebnis) :

    • Zack Angeal;36471 schrieb:

      [COLOR="Orange"]Weiste wen das juckt? zu dooof das der Name nich angezeigt wird. vll schnell ne aplication gemacht? und den mist da reingeschrieben? ;) wir wollen beweise und keine Noobigen Screens den das kennen wir schon von Gotenks[/COLOR]


      naja also im gegensatz zu "deinen" kleinen "serverfiles" hat twilight bis jetzt die fame
      datenbank + files releast, die Offi DB fast komplett rekonstruert und andere diverse
      releases gemacht. Ist für mich beweis genug.
    • Habs schon gefunden :

      Struktur

      Quellcode

      1. enum ObjectType
      2. {
      3. End = -1,
      4. Object = 0,
      5. CommonControl = 2,
      6. Item = 4,
      7. Mover = 5,
      8. Ship = 6
      9. }
      10. enum AIType
      11. {
      12. Monster = 2,
      13. ClockWorks = 4,
      14. Pet = 5,
      15. BigMuscle = 6,
      16. Krrr = 7,
      17. Bear = 8,
      18. Monster2 = 100,
      19. Meteonyker = 10
      20. }
      21. struct Vector3
      22. {
      23. float X;
      24. float Y;
      25. float Z;
      26. };
      27. struct DYO
      28. {
      29. while (true)
      30. {
      31. ObjectType[int] Type;
      32. if (Type == ObjectType.End)
      33. return;
      34. switch (Type)
      35. {
      36. case ObjectType.Object:
      37. case ObjectType.Item:
      38. case ObjectType.Ship:
      39. Object Object;
      40. break;
      41. case ObjectType.CommonControl:
      42. CommonControl Object;
      43. break;
      44. case ObjectType.Mover:
      45. Mover Object;
      46. break;
      47. }
      48. }
      49. };
      50. struct Object
      51. {
      52. float Angle;
      53. Vector3 AxisRotation;
      54. Vector3 Position;
      55. Vector3 Scale;
      56. int SetAI; // == 5
      57. int ObjectID;
      58. int Unknown;
      59. AIType[int] AI;
      60. int Unknown;
      61. };
      62. struct CommonControl
      63. {
      64. Object Base;
      65. uint UnknownConidition;
      66. if (UnknownConidition == 0x80000000)
      67. byte Unknown1[432];
      68. else if (UnknownConidition == 0x90000000)
      69. {
      70. byte Unknown1[88];
      71. byte Unknown2[280];
      72. }
      73. else
      74. byte Unknown2[392];
      75. };
      76. struct Mover
      77. {
      78. Object Base;
      79. byte Unknown1[64];
      80. byte Unknown2[32];
      81. byte Name[32];
      82. int Unknown3;
      83. int Unknown4;
      84. };
      Alles anzeigen


      Beispiel

      Brainfuck-Quellcode

      1. using System;
      2. using System.IO;
      3. using System.Text;
      4. namespace DYO_Reader
      5. {
      6. /// <summary>
      7. /// Reads and outputs the information from a DYO file
      8. /// </summary>
      9. class Program
      10. {
      11. /// <summary>
      12. /// Type of object to read
      13. /// </summary>
      14. enum ObjectType
      15. {
      16. End = -1,
      17. Object = 0,
      18. CommonControl = 2,
      19. Item = 4,
      20. Mover = 5,
      21. Ship = 6
      22. }
      23. /// <summary>
      24. /// AI type
      25. /// </summary>
      26. enum AIType
      27. {
      28. Monster = 2,
      29. ClockWorks = 4,
      30. Pet = 5,
      31. BigMuscle = 6,
      32. Krrr = 7,
      33. Bear = 8,
      34. Monster2 = 100,
      35. Meteonyker = 10
      36. }
      37. /// <summary>
      38. /// File name to load
      39. /// </summary>
      40. const string FILE_NAME = @"C:\Program Files (x86)\Gpotato\Flyff\World\WdMadrigal\WdMadrigal.dyo";
      41. /// <summary>
      42. /// Loads the specified DYO file and outputs the information
      43. /// </summary>
      44. /// <param name="args"></param>
      45. static void Main(string[] args)
      46. {
      47. BinaryReader fh = new BinaryReader(File.OpenRead(FILE_NAME));
      48. while (true)
      49. {
      50. ObjectType objectType = (ObjectType)fh.ReadInt32();
      51. if(objectType == ObjectType.End)
      52. break;
      53. Console.WriteLine("Type: {0}", objectType);
      54. switch (objectType)
      55. {
      56. case ObjectType.Object:
      57. case ObjectType.Item:
      58. case ObjectType.Ship:
      59. ReadObject(fh);
      60. break;
      61. case ObjectType.CommonControl:
      62. {
      63. ReadObject(fh);
      64. uint unknownCondition = fh.ReadUInt32();
      65. switch (unknownCondition)
      66. {
      67. case 0x80000000:
      68. fh.ReadBytes(432);
      69. break;
      70. case 0x90000000:
      71. {
      72. fh.ReadBytes(88);
      73. fh.ReadBytes(280);
      74. }
      75. break;
      76. default:
      77. fh.ReadBytes(392);
      78. break;
      79. }
      80. }
      81. break;
      82. case ObjectType.Mover:
      83. {
      84. ReadObject(fh);
      85. fh.ReadBytes(64);
      86. fh.ReadBytes(32);
      87. string moverName = Encoding.Default.GetString(fh.ReadBytes(32));
      88. moverName = moverName.Substring(0, moverName.IndexOf('\0'));
      89. Console.WriteLine("Name: {0}", moverName);
      90. Console.WriteLine("Unknown 10: {0}", fh.ReadInt32());
      91. Console.WriteLine("Unknown 11: {0}", fh.ReadInt32());
      92. }
      93. break;
      94. default:
      95. {
      96. Console.WriteLine("Invalid Type");
      97. goto exit;
      98. }
      99. }
      100. Console.WriteLine("--------------------");
      101. }
      102. exit:
      103. fh.Close();
      104. Console.Read();
      105. }
      106. /// <summary>
      107. /// Reads an object
      108. /// Used by all object types
      109. /// </summary>
      110. /// <param name="fh">File Handler</param>
      111. static void ReadObject(BinaryReader fh)
      112. {
      113. Console.WriteLine("Y Rotation: {0}", fh.ReadSingle());
      114. Console.WriteLine("Axis Rotation: X: {0}; Y: {1}; Z: {2}", fh.ReadSingle(), fh.ReadSingle(), fh.ReadSingle());
      115. Console.WriteLine("Position: X: {0}; Y: {1}; Z: {2}", fh.ReadSingle(), fh.ReadSingle(), fh.ReadSingle());
      116. Console.WriteLine("Scale: X: {0}; Y: {1}; Z: {2}", fh.ReadSingle(), fh.ReadSingle(), fh.ReadSingle());
      117. Console.WriteLine("Set AI: {0}", fh.ReadInt32() == 5);
      118. Console.WriteLine("Object ID: {0}", fh.ReadInt32());
      119. Console.WriteLine("Unknown: {0}", fh.ReadInt32());
      120. Console.WriteLine("AI Type: {0}", (AIType)fh.ReadInt32());
      121. Console.WriteLine("Unknown: {0}", fh.ReadInt32());
      122. }
      123. }
      124. }
      Alles anzeigen


      Naja wo ist da die Eigenleistung?
    • lol @Zack Angel

      Hast du auch mal vor irgendwann mal selber etwas zu schreiben?

      Uah! Du hast ein log writer dazu geaddet respekt hätte wahrscheinlich keiner mit 10minuten zeit geschafft.

      Achja die Position in der .Dyo ist meines wissens nach nicht die Reale Position die Ingame ist.