[Guide] Neue Npc´s adden - Creditz to Aiyuki

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

    • [Guide] Neue Npc´s adden - Creditz to Aiyuki

      Guten tag GodLikerz!
      In diesem Forum gibts diese Guide noch nciht da hab ich sie mal erstellt!
      Credits: Aiyuki


      OK, hier erkläre ich, wie man neue NPCs, einbaut, OHNE einen schon existierenden zu ÜBERSCHREIBEN. Soll heißen: ihr baut also einen völlig neuen NPC ein, gibt ihm nen schönen Namen und könnt ansonsten auch mit ihm anstellen, was euer Herz begehrt.
      Und um es auch etwas interessanter wird: ich zeig euch gleich noch, wie man daraus nen Shop basteln kann.

      Aber was genau wird hier egientlich im Groben gemacht? (Inhaltsverzeichnis):
      Schritt 0: Was brauche ich dafür?
      Schritt 1:. Ihr bastelt euch'n NPC
      Schritt 2a: Ihr baut die NPC Shop Files ein
      Schritt 2b: Ihr registriert den NPC in der DB
      Schritt 3: Ihr bastelt euch nen NPC Dialog - also da steht drin was der NPC sagt
      Schritt 4: Ihr baut den NPC in den Client ein
      Schritt 5: Ihr testet den NPC :P
      Zusammenfassung 6a: Welche Werte müssen verändert werden, wenn ich einen NPC mit anderem Namen einbauen will?
      Punkt 6b: Funkst nicht, warum?
      Punkt 7: Nachwort



      Schritt 0: Was brauche ich dafür?


      Ooooooooooooooooooooooook, dann fangen wir ma an:

      Zuerst: Ihr braucht 2 ganze Programme: (jaaa, ganze 2 Stück, ist das nicht toll?)
      FRM - Flyff Ressource Manager
      und
      NPC Shop Maker

      Ihr fragt euch: woher bekomm ich das Zeug?
      Ich sage: benutzt die Suchfunktion!
      Falls ihr immer noch nichts findet... Google ist dein Freund! Knuddel ihn doch einmal, er fühlt sich sicherlich einsam.



      Schritt 1: Ihr bastelt euch'n NPC

      Ich rate euch am besten für den Anfang einen schon vorgefertigten Shop NPC runterzuladen. Notfalls könnt ihr ihn dann noch etwas bearbeiten, wenn bedarf besteht. Ich werde aber nicht direkt erklären wie der NPC Shop Maker funktioniert, sondern nur was ihr damit machen MÜSST. Wenn ihr also euch nen eigenen NPC Shop machen wollt, müsst ihr schon selber herausfinden wie.

      Ihr besorgt euch also nun einen NPC Shop und öffnet ihn mit dem NPC Shop Maker.
      Dort seht ihr dann 2 nette Einträge:

      Und zwar die rot markierten...
      Dort findet ihr einmal die Location. Stellt Selfmade-NPCs ein.
      Ebenso NPC Name. In diesem Tut benutzen wir einfach mal den Namen "Verkaufsbimbo". Ihr könntet auch einen anderen nehmen, aber ihr müsstet ihn euch die ganze Zeit über merken. Ihr werdet sehen warum.
      Die Location auf Selfmade-NPC einzustellen ist nicht ein Muss... allerdings für mein Beispiel wichtig, da es den Suffix der Datei ändert.



      Schritt 2a: Ihr baut die NPC Shop Files ein

      Sobald dies getan, einfach auf speichern klicken und Programm beenden. Dort findet ihr dann 2 kleine, nette und süüüüße Dateien mit den Namen "MaCa_Verkaufsbimbo.cfs" und "MaCa_Verkaufsbimbo.sql". Da wir die sql Datei net wirklich brauchen, könnt ihr es löschen oder wie ich sagen würde: Ab in die Atommüllverarbeitungswerkstatt! (so heißt mein Papierkorp wirklich).
      Danach schnappt ihr euh die cfs Datei und legt sie in den Ordner NPCShops. Dort werdet ihr ebenfalls 2 Dateien finden: "npcshops.idx" und "npcshops.full.idx". Genau, mit ihnen müsst ihr auch was anstellen! Einfach mit den Editor öffnen. Das sollte dann wie folgt aussehen:

      Und wer genau hingeschaut hat, kann sich denken was nun gemacht werden muss. Ihr müsst den Namen der eben eingefügten Datei, mitsamt der Dateiendung einfügen. Heißt also ihr sollt dort "MaCa_Verkaufsbimbo.cfs" reinschreiben (wenn ihr den NPC nun wirklich so genannt habt) und abspeichern. Und das bei beiden Dateien.

      Schritt 2b: Ihr registriert den NPC in der DB

      Nun öffnet ihr euer Navicat und schaut euch eure Datenbank an. Dort öffnet ihr dann die Tabelle spawns_npc, wählt den untersten Eintrag aus und drückt die Pfeiltaste nach unten. Dann sollte ein neuer Eintrag erscheinen, allerdings leer.

      Dort gibt ihr dann die nötigen Werte selbst ein. Als spawn_id sucht ihr euch eine aus, welche noch nicht für einen anderen NPC vergeben worden ist, z.B. 777. Als model wählen wir einfach ma einen weiblichen Chara, die Nummer ist 12. SizeMod setzt ihr auf 1, außer ihr wollt ihn in eine andere Größe haben. Als name tragt ihr (oh wie solls anders sein) den Namen eures NPCs an. In diesem Fall z.B. "MaCa_Verkaufsbimbo" ein. speechtime ist eigentlich egal, das ist nur nötig, wenn ihr einstellt, dass euer NPC ab und an in Form von Sprechblasen irgendetwas sagt. Danach gibt ihr die Koordinaten ein. Diese sucht ihr selber aus! Diese tragt ihr bei posx, posy und posz ein und gibt ebenfalls die posWorldID ein. direction steht für die Richtung, in welche der NPC dann schauen wird, allerdings kann ich da euch net helfen - Probieren geht über Studieren! Wenn fertig, speichern und schließen.



      Schritt 3: Ihr bastelt euch nen NPC Dialog - also da steht drin was der NPC sagt

      Zuerst schaut ihr nach, welchen Ordner ihr habt. Es gibt 2 Varianten zur Auswahl: "NCDFiles" und "NPSFiles"
      Je nachdem welchen Ordner ihr habt, schaut euch die dazugehörige Beschreibung an.

      NCDFiles:
      Ihr öffnet den Ordner und eine Datei eurer Wahl mit dem Editor (welche Datei ist völlig egal). Und fügt Folgenden Code ein (das vorherige ersetzen):

      Code:
      "@@DATA@@"
      {
      SetNPCEquipment( 26, 15152 );
      SetNPCEquipment( 27, 15153 );
      SetNPCEquipment( 28, 15154 );
      SetNPCEquipment( 29, 15155 );
      SetNPCEquipment( 10, 6706 );
      };

      "main"
      {
      RemoveAllTextButtons( );
      AddText( "I wanna Pfefferkuchen!" );
      AddTextButton( "HILFE!" );
      AddTextButton( "Pfefferkuchen?" );
      };

      "HILFE!"
      {
      CloseWindow( );
      NPCChat( "I wanna Pfefferkuchen" );
      };

      "Pfefferkuchen?"
      {
      AddText( "I tell you what I want, what i really really want!" );
      AddText( "So tell me what you want, what you really, really want!" );
      AddText( "I tell you what I want, what i really really want!" );
      AddText( "So tell me what you want, what you really, really want!" );
      AddText( "I wanna Pfeffer-, Pfeffer-, Pfefferkuchen, bitte sag ja!" );
      };

      Dies speichert ihr dann als MaCa_Verkaufsbimbo.ncd ab, bzw mit dem Namen eures NPC Charas.

      Anmerkung: Alternativ könnt ihr auch ganz einfach ein .ncd File eurer Wahl einfach kopieren und umbenennen (keine .ncd.pre Dateien!), allerdings ist dann euer Charakter nackt (es sei denn ihr habt ein anderes Model gewählt, ihm klamotten gegeben oder per Zufall den Code von Flarine Major oder Laloa kopiert).
      Oder aber ihr schreibt euch selbst die Dialoge. Wie ihr das macht, wird in meinem anderen Thread erklärt (siehe signatur: Diverse Befehlslisten).

      NPSFiles:

      Ihr öffnet den Ordner und eine Datei eurer Wahl mit dem Editor. Und fügt Folgenden Code ein (das vorherige ersetzen):

      Code:
      function OnLoadData( )
      math.randomseed( os.time() )
      nps_SetNPCChatInterval(math.random(10000,20000))

      nps_SetNPCEquipment("PARTS_CAP","II_ARM_F_MAG_HELMET08")
      nps_SetNPCEquipment("PARTS_UPPER_BODY","II_ARM_F_MAG_SUIT08")
      nps_SetNPCEquipment("PARTS_HAND","II_ARM_F_MAG_GAUNTLET08")
      nps_SetNPCEquipment("PARTS_FOOT","II_ARM_F_MAG_BOOTS08")
      nps_SetNPCEyeStyle(2)
      nps_SetNPCHairStyle(0)
      nps_SetNPCHairColor(0xFF080808)
      return 1
      end

      function OnOpenWindow( )
      nps_RemoveAllTextButtons( )
      nps_AddText( nps_GetString("IDS_MaCa_Verkaufsbimbo_OPEN_WINDOW_TEXT") )
      nps_AddTextButton( nps_GetString("IDS_MaCa_Verkaufsbimbo_TB_HILFE"), "TB_HILFE" )
      nps_AddTextButton( nps_GetString("IDS_MaCa_Verkaufsbimbo_TB_Pfefferkuchen"), "BUTTON_Pfefferkuchen" )
      return 1
      end

      function OnButton(szButtonName)
      if( szButtonName == "TB_HILFE" ) then return OnButtonHILFE( )
      elseif( szButtonName == "BUTTON_Pfefferkuchen" ) then return OnButtonPfefferkuchen( )
      else return 0
      end
      end

      function OnButtonHILFE( )
      nps_CloseWindow( )
      nps_NPCChat( "I wanna Pfefferkuchen" )
      return 1
      end

      function OnButtonPfefferkuchen( )
      nps_AddText( nps_GetString("IDS_MaCa_Verkaufsbimbo_Pfefferkuchen1") )
      nps_AddText( nps_GetString("IDS_MaCa_Verkaufsbimbo_Pfefferkuchen2") )
      nps_AddText( nps_GetString("IDS_MaCa_Verkaufsbimbo_Pfefferkuchen3") )
      nps_AddText( nps_GetString("IDS_MaCa_Verkaufsbimbo_Pfefferkuchen4") )
      nps_AddText( nps_GetString("IDS_MaCa_Verkaufsbimbo_Pfefferkuchen5") )
      return 1
      end

      Dies speichert ihr dann als MaCa_Verkaufsbimbo.nps ab, bzw mit dem Namen eures NPC Charas.

      Da nach öffnet ihr den Ordner \Language\en_en\NPSFiles und öffnet wieder irgendeine Datei mit dem Editor und gibt nun diesen Code ein:

      Code:
      IDS_MACA_Verkaufsbimbo_OPEN_WINDOW_TEXT I wanna Pfefferkuchen!
      IDS_MACA_Verkaufsbimbo_Pfefferkuchen1 I tell you what I want, what I really, really want!
      IDS_MACA_Verkaufsbimbo_Pfefferkuchen2 So tell me what you want, what you really, really want!
      IDS_MACA_Verkaufsbimbo_Pfefferkuchen3 I tell you what I want, what I really, really want!
      IDS_MACA_Verkaufsbimbo_Pfefferkuchen4 So tell me what you want, what you really, really want!
      IDS_MACA_Verkaufsbimbo_Pfefferkuchen5 I wanna Pfeffer-, Pfeffer-, Pfefferkuchen, bitte sag ja!
      IDS_MACA_Verkaufsbimbo_TB_HILFE HILFE!
      IDS_MACA_Verkaufsbimbo_TB_Pfefferkuchen Pfefferkuchen?

      Dieses speichert ihr diesmal unter MaCa_Verkaufsbimbo, bzw den Namen eures NPCs und der Dateiendung .srt.

      Anmerkung: Alternativ könnt ihr auch ganz einfach ein .nps File eurer Wahl einfach kopieren und umbenennen, allerdings ist dann euer Charakter nackt (es sei denn ihr habt ein anderes Model gewählt, ihm klamotten gegeben oder per Zufall den Code von Flarine Major oder Laloa kopiert) und ihr müsst die gleiche .srt Datei ebenfalls kopieren und umbenennen.
      Oder aber ihr schreibt euch selbst die Dialoge. Wie ihr das macht, wird in meinem anderen Thread erklärt (siehe signatur: Diverse Befehlslisten).

      Als letztes geht ihr noch in den Hauptordner, wo ihr eine Datei namens "language.xml" findet. Öffnen mit Editor! :P
      Darin sollte nun folgendes schon drinstehen:
      Code:
      <?xml version="1.0" standalone=no>
      <LanguageConfiguration maxid="0">
      <Language id="0" dllname="Language\\en_en.dll">
      <StringTable filename="Language\en_en\NPSFiles\DuDk_Kazen.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Cell.str" />
      <StringTable filename="Language\en_en\NPSFiles\KePe_Ciel.str" />
      <StringTable filename="Language\en_en\NPSFiles\KePe_Rocbin.str" />
      <StringTable filename="Language\en_en\NPSFiles\KePe_Shun.str" />
      <StringTable filename="Language\en_en\NPSFiles\KePe_Yuna.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Amadolka.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Andre.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Bernard.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Bolpor.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Boneper.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Capafe.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Chenbing.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_CloneEshylop.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_CloneHachal.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Colar.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Condram.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Corel.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Cylor.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_DarMayor.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_DrEst.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Eliff.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Ellend.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Eshylop.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Fera.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_GateKeeper.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Hachal.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Haven.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Heedan.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Heingard.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Hent.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Homeit.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Horison.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Jeperdy.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Jinitte.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Kablloc.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Kailreard.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Karanduru.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Krinton.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Laloa.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Liekyen.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Lobiet.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Lorein.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Lurif.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Nein.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Ollien.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Pereb.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Phacham.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Pyre.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Rankashu.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_RedRobeGirl.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_RedRobeMan.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Remine.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Ride.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Romvoette.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Roocky.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Rupim.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Sencyrit.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Shyniff.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Stima.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Tailer.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Tandy.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Wendien.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Amos.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Ancimys.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Andy.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Annie.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Ata.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Bobochan.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Boboko.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Boboku.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Clamb.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_COLINSE.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Cuarine.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Cuzrill.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Dick.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Dior.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Domek.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Donaris.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_DrEstern.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_DrEstly.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Elic.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Eoners.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_FaceOff.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_FINDWORD.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_FIVESYSTEM.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_FlaMayor.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Gergantes.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Ghalade.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Goripeg.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Gornus.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Guabrill.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_GuildWar.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_HairShop.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Harold.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Hastan.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Himadel.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Hormes.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Hyuit.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Is.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Ismeralda.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Ispim.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Isruel.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Jeff.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Juria.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Kanane.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_KAWIBAWIBO.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Kidmen.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Kimel.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Kurumin.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Langdrong.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Losha.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Loyah.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Luda.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Lui.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Maki.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Marche.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Martinyc.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Mikyel.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Mustang.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Noier.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Official.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_PetTamer.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Phoho.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Postbox.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Radyon.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Ray.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_REASSEMBLE.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Rudvihil.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Ryupang.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Segho.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_SgRadion.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_SsoTta.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Teshar.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Tomba.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Tucani.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Ultimate.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaFl_Waforu.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaMa_Ancimys.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaMa_PKNPC01.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSa_Ann.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSa_Bill.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSa_Bowler.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSa_Bozman.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSa_Brodeay.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSa_Bulrox.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSa_Colack.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSa_Daz.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSa_Gothante.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSa_Hee.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSa_Helena.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSa_Helgar.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSa_Heltung.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSa_Herth.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSa_Janne.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSa_JeongHwa.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSa_Karin.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSa_Kimberley.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSa_Lancomi.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSa_Leann.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSa_Lopaze.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSa_Martin.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSa_MaYun.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSa_Parine.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSa_Porgo.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSa_QueerCollector.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSa_Rovanett.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSa_SainMayor.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSa_Tina.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSa_Troupemember1.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSa_Troupemember2.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSa_Troupemember3.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSa_Troupemember4.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSa_Troupemember5.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSa_Wingyei.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSC_SCArmor1.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSC_SCArmor10.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSC_SCArmor2.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSC_SCArmor3.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSC_SCArmor4.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSC_SCArmor5.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSC_SCArmor6.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSC_SCArmor7.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSC_SCArmor8.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSC_SCArmor9.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSC_SCGirl1.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSC_SCGirl10.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSC_SCGirl2.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSC_SCGirl3.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSC_SCGirl4.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSC_SCGirl5.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSC_SCGirl6.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSC_SCGirl7.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSC_SCGirl8.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSC_SCGirl9.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSC_SCWeapon1.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSC_SCWeapon10.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSC_SCWeapon2.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSC_SCWeapon3.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSC_SCWeapon4.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSC_SCWeapon5.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSC_SCWeapon6.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSC_SCWeapon7.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSC_SCWeapon8.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaSC_SCWeapon9.str" />
      <StringTable filename="Language\en_en\NPSFiles\DuDk_Drian.str" />
      <StringTable filename="Language\en_en\NPSFiles\DuDk_Nevil.str" />
      <StringTable filename="Language\en_en\NPSFiles\KePe_Heron.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaCa_Aizel.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaCa_Charlotte.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaCa_Ciceron.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaCa_DuFl_James.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaCa_Saville.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaCa_WdBeginner_Ahmed.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaCa_WdBeginner_Dwarf01.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaCa_WdBeginner_Dwarf02.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaCa_WdBeginner_Dwarf03.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaCa_WdBeginner_Flow.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaCa_WdBeginner_Hank.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaCa_WdBeginner_Jenny.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaCa_WdBeginner_Legolas.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaCa_WdBeginner_Linn.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaCa_WdBeginner_Mark.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaCa_WdBeginner_Misty.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaCa_WdBeginner_Nevell.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaCa_WdBeginner_Payan.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaCa_WdBeginner_Plim.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaCa_WdBeginner_Roy.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaCa_WdBeginner_Russell.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaCa_WdBeginner_SadAibatt.str" />
      <StringTable filename="Language\en_en\NPSFiles\MaDa_Achaben.str" />
      </Language>
      </LanguageConfiguration>

      Ihr könnt euch denken was reinkommt... einfach nur Folgendes reinkopieren:
      Code:
      <StringTable filename="Language\en_en\NPSFiles\MaCa_Verkaufsbimbo.str" />
      Speichern und beenden.



      Schritt 4: Ihr baut den NPC in den Client ein

      Soweit so gut. Euer NPC steht auf eurem Server in irgendeiner Ecke, welche ihr euch ausgesucht hat rum, hat Items innem Shop und er kann mit anderen Leuten reden. Allerdings gibt es ein Problem: der Client hat überhaupt keine Ahnung was dieser NPC eigentlich macht, bzw machen kann. Man kann weder mit dem NPC Handeln, Reden oder irgendwie mit ihn interagieren. Also stellen wir ein, DASS man es kann

      Hierzu öffnet ihr zunächst den FRM (Flyff Ressource Manager) und sucht euch die Datei "dataSub1.res" aus eurem Hauptverzeichnis, wo ihr Flyff installiert habt. Ist es offen findet ihr mehrere Dateien die ihr extrahieren (auspacken) könnt. Für uns sind nur die Dateien "character.inc" und "character.txt.txt" von belangen. Sobald dies getan einfach wieder beide mit Editor öffnen.
      Zuerst schauen wir uns die .txt.txt Datei an. Einfach gaaanz nach unten scrollen und fügt folgenen Code ein:
      Code:
      IDS_CHARACTER_INC_000744 Verkaufsbimbo
      IDS_CHARACTER_INC_000745 Slot 1
      IDS_CHARACTER_INC_000746 Slot 2
      IDS_CHARACTER_INC_000747 Slot 3
      IDS_CHARACTER_INC_000748 Slot 4

      Die Bezeichnungen für die Slots, sowie der name des NPCs könnt ihr austauchen bei Bedarf.
      Das würde dann ungefähr so aussehen:

      Wenn ihr mehrere NPCs einbauen wollt, müsst ihr logischerweise die nächst größere Zahl nehmen!

      Gesagt, getan. Als nächstes öffnet ihr die .inc Datei und kopiert Folgendes rein:
      Code:
      MaCa_Verkaufsbimbo
      {
      Setting
      {
      AddMenu( MMI_DIALOG );
      AddMenu( MMI_TRADE );
      AddVendorItem( 0, IK3_SWD, 1, 15, 27, 50 );
      SetImage
      (
      IDS_CHARACTER_INC_000541
      );
      m_szDialog= "MaCa_Verkaufsbimbo.txt";
      }

      SetName
      (
      IDS_CHARACTER_INC_000744
      );

      AddVendorSlot( 0,
      IDS_CHARACTER_INC_000745
      );

      AddVendorSlot( 1,
      IDS_CHARACTER_INC_000746
      );

      AddVendorSlot( 2,
      IDS_CHARACTER_INC_000747
      );

      AddVendorSlot( 3,
      IDS_CHARACTER_INC_000748
      );
      }

      MaCa_Verkaufsbimbo ersetzt ihr gegebenfalls durch den Namen eures NPC, falls ihr einen anderen genommen habt. das gleiche gilt für die Mitte "MaCa_Verkaufsbimbo.txt". IDS_CHARACTER_INC_000744 gegebenfalls auch austauschen, wenn ihr eine andere ID benutzt habt.

      AddVendorItem( 0, IK3_SWD, 1, 15, 27, 50 ); hat im Grunde keine wirkliche Bedeutung. Normalerweise würde es im Client festlegen, welche Items verkauft werden, aber bei unserem P Server ist es nicht von Belangen. Wir brauchen das lediglich drin stehend, damit Flyff nicht abschmiert, wenn man auf Handeln klickt, bzw das er das Tradefenster überhaupt erst öffnet.

      Code:
      AddVendorSlot( 0,
      IDS_CHARACTER_INC_000745
      );

      Dieser Code legt fest, wie die 4 einzelnen Slots heißen sollen. Der Name wird in den .txt.txt Dateien festgelegt, wurd also etws weiter oben mit der Bezeichnung "Slot1" gekennzeichnet.

      Beide Dateien speichern und dann beenden!
      Nun öffnet ihr wieder euren FRM und wählt wieder die 2 Dateien aus. Diesmal müsst ihr diese löschen. Danach auf Commands klicken, dann auf Add und die 2 eben bearbeiteten Dateien auswählen und bestätigen. Programm schließen und abspeichern.

      P.S.: Alternativ könnte man auch character-etc.inc und character-etc.txt.txt, bzw character-school.inc und character-school.txt.txt nehmenn. Macht eigentlich im Grunde keinen Unterschied, ihr könnt auch Namen und Pic aus anderen txt.txt Dateien Laden.
      Z.B. ist euer NPC in character-school.inc gespeichert, bezieht aber sein Bild dennoch aus der Character.txt.txt Datei und den Namen, sowie die Slotbezeichnungen aus character-etc.txt.txt

      ACHTUNG! Es empfiehlt sich, vorher ein Backup der Datei zu machen, denn es kann sein, das euer Spiel nicht mehr startet!



      Schritt 5: Ihr testet den NPC :P

      Habt ihr nun alles richtig gemacht, dann sollte euer NPC endlich funktionieren. Worauf wartet ihr noch verdammt?! Öffnet den Server und startet euer Flyff um gleich mal zu testen!
      Wenn er funktioniert: Halleluja, freut euchn Keks und gibt mirn Thanks :P
      Wenn er nicht funktioniert: Überprüt noch einmal ob ihr auch wirklich alles richtig gemacht habt. Sollte dies dann immer noch der Fall sein, schau unten bei Schritt 6 vorbei "Funkst nicht, warum?"



      Zusammenfassung 6a: Welche Werte müssen verändert werden, wenn ich einen NPC mit anderem Namen einbauen will?

      Schritt 1: NPC Name - hier trägt ihr dann den Namen der Datei an - KEINE LEERZEICHEN ODER SONSTIGE SONDERZEICHEN
      Schritt 2: Ebenfalls die in den "npcshops.idx" und "npcshops.full.idx" Dateien den neuen Namen eintragen.
      In der Datenbank den name des NPCs ändern
      Schritt 3: Die .ncd oder .npd und .str Dateien umbenennen.
      Schritt 4: bei der .inc Datei die 2 Variablen für den NPC austauschen und bei der .txt.txt Datei den gewünschten Anzeigename einbauen

      Punkt 6b: Funkst nicht, warum?

      Hier noch ein kleines FAQ, welches ich ab und an erweitern werde:

      F: Flyff scheißt beim start ab?!
      A: Löscht die Datei "Flyff.a" und schließt euren FRM (falls noch offen).

      F: Wenn ich den NPC anklicke, passiert einfach nichts.
      A: Dann überprüfe noch einmal Schritt 4. Hast du die Namen richtig angegeben?
      Schau auch, ob du den namen in der Datenbank richtig angegeben hast.

      F: Es kommen keine Dialoge.
      A: Das selbe wie immer: nachschauen ob alle Variablen richtig geschrieben sind.
      Wenn eigene Dialoge geschrieben: Schau noch einmal in meinen Thread mit den Befehlen nach. Vielleicht findest du dann einen Fehler.

      F: Es öffnet sich der Shop nicht, obwohl ich auf Handeln geklickt habe oder Flyff stürtzt ab.
      A: Wenn du viele Items im Shop hast dauert das Laden ziemlich lange - einfach mal ne weile warten und nichts machen.
      Sollte der Shop sich immer noch nicht öffnen, noch einmal genau nachschauen, ob du die NPCShop Dateien Richtig benannt. hast, und dort auch Richtig bei npcshops.idx und npcshops.full.idx eingetragen. hast. Ebenfalls überprüfen ob du beim Einfügen des Codes in. die characters.inc Datei "AddVendorItem" eingetragen hast und "AddVendorSlot" dort ebenfalls richtig registriert hast.

      F: Flyff scheißt ab, wenn ich mich dem NPC nähere.
      A: Du hast wohl ein Model gewählt, welches deinem Flyff nicht gut tut. versuch ein anderes Model!

      F: Der NPC steht einfach nicht im Server rum.
      A: Dann liegt es rein an der Datenbank. 1. Überprüfe ob du ihn richtig eingetragen hast und ob die Koordinaten stimmen. Die World ID is auch wichtig. Eventuell aber hast du auch ein falsches Model gewählt. Versuch auch mal ein anderes.

      F: Hat aber immer noch nichts gebracht...
      A: Dann frag hier im Thread nach, vlt kann ich oder jemand anderes dir helfen.



      Punkt 7: Nachwort

      Da ich dieses Tutorial selbst geschrieben habe, bitte ich euch es NICHT ZU KLAUEN!
      Das hat mich wieder fast 2 Stunden gekostet und ich hab es schon zum 2. mal geschrieben (beim ersten Mal waren es 3 Stunden).
      Wenn ihr dieses Tutorial irgendwo anders verwendet wollt, fragt bitte erst einmal nach. Danke.

      Ich würd zwar auch die schon zu bearbeiten Dateien in den Anhang setzen, aber irgendwie kann ich keine Dateien uploaden. Und ich weiß nicht wieso oO
      Falls aber der Wunsch dennoch besteht, kann ich es ja bei Rapidsahre Uploaden.
      Sowohl die zu bearbeitenden Dateien (nps, srt, ncd, txt.txt, .inc), als auch die dataSub1.res selber.

      Ich hoffe, ich konnte jemandem damit helfen
      Viel spaß beim ausprobieren!
    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )