Autor Thema: Sfall Extras  (Gelesen 8647 mal)

Offline Helios2000

  • BoS Neuling
  • Beiträge: 551
  • Si vis pacem, para bellum
Sfall Extras
« am: 22. Januar 2009, 17:54:01 Uhr »
So der Vollständig halt halber werde ich hier auch noch mein Pack hin setzen  ;D

Es geht vorallem um 2 neue Befehle die ich in sfall eingebaut habe:

1. write_int(Offset, Value)
Mit diesem Befehl ist es möglich direkt Werte in der Engine per Script zu verändern. Theoretisch ist es sogar möglich ganz neue Funktionen in das laufende Fallout zu schreiben.

Der Befehl braucht in der Klammer 2 Variablen. Als erstes gibt man die Offset Adresse in dezimal an und als zweites die Zahl welche auf die Offset geschrieben werden soll.

2. call_offset(Offset)
Durch diesen Befehl ist es möglich alle Engine Funktionen direkt aufzurufen. Oft müssen allerdings mehrer Funktionen aufgerufen werden um ein korrektes Ergebnis zu erzielen.

Diese Befehl braucht lediglich die Offset Adresse der Funktion, auch wieder als dezimal Wert. Außerdem ist darauf zu achten das es zu Abstürzen kommen kann durch unsachgemäße Adressen oder durch mehrfaches aufrufen einer Funktion. Das liegt in der natur der Sache und ist nicht zu ändern. Aber durch ordentlich geschriebene Script's kann man das vermeiden ;)


Um den Einstieg leichter zu gestalten habe ich eine Header mit vordefinierten Funktionen geschrieben welche diese beiden Befehle benutzen.
Darunter sind Funktionen für den Maus Input, Goris animation und vieles mehr.

Hier erstmal das Packet: http://www.file-upload.net/download-1395976/Pack.rar.html
Es enthält die sfall Version, den neuen Compiler und natürlich die extra.h.

Darüber hinaus kann jeder diese Header erweitern. Es gibt mehrer Möglichkeiten neue Offsets zu bekommen:

1.Die Effektivste Möglichkeit ist einen Disassembler zu verwenden, empfehlen kann ich IDA Pro. Vor allem ist dieser nützlich um sich ein Bild der über 3600 Engine Funktionen zu machen. Allerdings wären dafür Programmiererfahrungen sinnvoll.

2.Habe ich einen Script geschrieben mit dem es möglich ist "Ingame" nach Werten suchen zu lassen und diese in die debug.log schreiben zu lassen. Aktiviert wird das ganze durch drücken der Taste Q. Voraussetzungen dafür sind allerdings das der debug Modus von Fallout aktiviert ist und das man grob weiß in welchem Bereich man suchen muss.
Es können die Start Offset, End Offset und der Wertebereich definiert werden:

Spoiler for Hiden:
//Gl Script to Scan the Ram and wrote it in the debug.log ;)

procedure start;

variable read_start;
variable read_end;
variable value;
variable offset;
variable count;
variable mod;


procedure start begin
if (game_loaded) then begin
      set_global_script_repeat(100);
      set_global_script_type(0);
   end
   
   if (key_pressed(16)) then begin
      read_start := 5340000;
      read_end := 5350000;

      while (mod != 2) do begin
         if (read_int(read_start) >= 0) and (read_int(read_start) <= 999) then begin
            value := read_int(read_start);
            offset := read_start;
            display_msg("Offset" + count + ": " + offset);
            display_msg("Value" + count + ": " + value);
            value := 0;
            count := (count + 1);
            read_start := (read_start + 1);
            if (read_start == (read_end + 1)) then begin
               display_msg("Ende erreicht!");
               mod := 2;
            end
         end else if (not(read_int(read_start) >= 0)) or (not(read_int(read_start) <= 999)) then begin
            read_start := (read_start + 1);
            if (read_start == (read_end + 1)) then begin
               display_msg("Ende erreicht!");
               mod := 2;
            end
         end
      end
   end
end

3. Möglichkeit ist ein Memory Editor. Empfehlen würde ich da Cheat Engine, da mit diesem Programm sehr viel möglich ist. Direktes injecten von Assembler Code, Memory Disassembler, Pointer suche usw. Das ist wohl das einfachste verfahren für Leute die sich nicht mit Assembler auskennen und auch sonst nicht viel Programmiererfahrung haben. Eigentlich ist es ganz einfach man startet Fallout und Cheat Engine, gibt in Cheat Engine ein welchen Wert man suchen möchte(unbekannt ist auch möglich) danach wieder in Fallout und den Wert verändern, Cheat Engine das mitteilen und aussieben lassen. Im Idealfall bleibt dann der Wert übrig nach dem man gesucht hat. Die Adresse des Wertes muss noch in dezimal umgewandelt werden und schon kann man ihn mit write_int() im Script verwenden ;)

Bei Fragen Anregungen oder Probleme stehen ich gerne zur Verfügung.

Viel Spaß damit wünsche ich euch  :D

Si vis pacem, para bellum.

Offline Jordan

  • Bürger
  • Beiträge: 18
Re: Sfall Extras
« Antwort #1 am: 22. Januar 2009, 18:36:39 Uhr »
Helios2000

Dies ist ein guter Job! #thumbsup

Offline Helios2000

  • BoS Neuling
  • Beiträge: 551
  • Si vis pacem, para bellum
Re: Sfall Extras
« Antwort #2 am: 22. Januar 2009, 18:41:41 Uhr »
Danke Jordan  ;)

Si vis pacem, para bellum.

Offline Mr.Wolna

  • Moderator
  • Heilige Granate
  • Beiträge: 7.049
  • >>>FALLOUT4EVER<<<
Re: Sfall Extras
« Antwort #3 am: 22. Januar 2009, 19:01:21 Uhr »
Ich hoffe das erkennen noch mehr Modder ;)
« Letzte Änderung: 08. Februar 2009, 17:02:36 Uhr von Mr.Wolna »
RPÜ/German Restoration Project Tanslation
Ich habe ein Gewehr, eine Schaufel und 5 Hektar Land hinter dem Haus. Man wird dich nie finden - leg dich also nicht mit mir an!  
P.s. Nein es ist nicht die Gewalt was mich an der Fallout Reihe gereizt hat,aber sie war immer die Kirsche auf der Sahnetorte ( Und ich will verdammt nochmal ne Kirsche oben drauf haben)

Offline Jordan

  • Bürger
  • Beiträge: 18
Re: Sfall Extras
« Antwort #4 am: 23. Januar 2009, 14:58:01 Uhr »
Helios2000

Zitat
If (read_int(5358484) != 1) then begin //when strength is not 1 begin
      write_int(5358484, 1);           //set strength to 1, 5358484 is the decimal address of the offset that contains the strength value
end

How to identify all the values of properties?

sample

write_int(5358484, 1); // strength


write_int(???, 1); // perception
write_int(???, 1); // endurance
write_int(???, 1); // charisma
write_int(???, 1); // intelligence
write_int(???, 1); // agility

All 0-38

EDIT:
5358484 - strength (num 0)
5358484+4 - perception (num 1)

sample

#define OFFSET_STAT (5358484)

#define OFFSET_STAT_STRENGTH       (OFFSET_STAT + 0)
#define OFFSET_STAT_PERCEPTION     (OFFSET_STAT + 4)
#define OFFSET_STAT_ENDURANCE      (OFFSET_STAT + 8)
#define OFFSET_STAT_CHARISMA       (OFFSET_STAT + 12)
#define OFFSET_STAT_INTELLIGENCE   (OFFSET_STAT + 16)
#define OFFSET_STAT_AGILITY        (OFFSET_STAT + 20)
#define OFFSET_STAT_LUCK           (OFFSET_STAT + 24)

write_int(OFFSET_STAT_STRENGTH, 1);
write_int(OFFSET_STAT_PERCEPTION, 1);
write_int(OFFSET_STAT_ENDURANCE, 1);
write_int(OFFSET_STAT_CHARISMA, 1);
write_int(OFFSET_STAT_INTELLIGENCE, 1);
write_int(OFFSET_STAT_AGILITY, 1);
write_int(OFFSET_STAT_LUCK, 1);
« Letzte Änderung: 23. Januar 2009, 15:59:44 Uhr von Jordan »

Offline Helios2000

  • BoS Neuling
  • Beiträge: 551
  • Si vis pacem, para bellum
Re: Sfall Extras
« Antwort #5 am: 23. Januar 2009, 16:29:30 Uhr »
Yes Jordan its correct ;)

Behind the Luck_STAT Offset come the other things, HitPoint(5358512), Armor(5358516), ActionPoints(5358520),......

Si vis pacem, para bellum.

Offline Helios2000

  • BoS Neuling
  • Beiträge: 551
  • Si vis pacem, para bellum
Re: Sfall Extras
« Antwort #6 am: 24. Januar 2009, 14:17:06 Uhr »
So timeslip hat doch reagiert, es ist jetzt sfall 1.38a draußen mit insgesamt 12 neuen Funktionen.
Write_int ist so geblieben aber zusätzlich hat er noch write_byte und write_short gemacht... Meine write_int hatte nach länger der Value unterschieden also unterm Strich nichts neues.
Allerdings sind seine call_offset funktionen ausgereifter als meine eine. Was halt auch am Zeitmangel lag, hab da ja nur einen Tag dran geschrieben. Also unterm Strich eine Verbesserung, ich frage mich nur warum er das damals nicht schon eingebaut hat als abzusehen war das er sich nicht mehr so stark um das Projekt kümmert... Habe ihn ja damals nach ner write_int gefragt und als da nichts kam hab ich es halt in die Hand genommen. Naja egal Hauptsache es ist drin :)

Hier der Auszug:
Zitat
0x81cf - void  write_byte(int address, int value)
0x81d0 - void  write_short(int address, int value)
0x81d1 - void  write_int(int address, int value)

0x81d2 - void  call_offset_v0(int address)
0x81d3 - void  call_offset_v1(int address, int arg1)
0x81d4 - void  call_offset_v2(int address, int arg1, int arg2)
0x81d5 - void  call_offset_v3(int address, int arg1, int arg2, int arg3)
0x81d6 - void  call_offset_v4(int address, int arg1, int arg2, int arg3, int arg4)
0x81d7 - int   call_offset_r0(int address)
0x81d8 - int   call_offset_r1(int address, int arg1)
0x81d9 - int   call_offset_r2(int address, int arg1, int arg2)
0x81da - int   call_offset_r3(int address, int arg1, int arg2, int arg3)
0x81db - int   call_offset_r4(int address, int arg1, int arg2, int arg3, int arg4)

Si vis pacem, para bellum.

Offline Lexx

  • Administrator
  • Auserwähltes Wesen
  • Beiträge: 17.726
Re: Sfall Extras
« Antwort #7 am: 24. Januar 2009, 14:25:02 Uhr »
Er hat auch nicht reagiert, als ich damals nach mehreren *.dat-Dateien/ Patch Dateien gefragt habe. Jetzt plötzlich kam eine Antwort auf einen Beitrag von jemand anderes, Sprichwörtlich: "Whut? Geht doch gar nicht", etc.

Finde ich ehrlich gesagt etwas blöd.
only when you no-life you can exist forever, because what does not live cannot die

Offline Helios2000

  • BoS Neuling
  • Beiträge: 551
  • Si vis pacem, para bellum
Re: Sfall Extras
« Antwort #8 am: 24. Januar 2009, 14:32:27 Uhr »
Jep ich finde das auch nicht fein von ihm...  :(

Ist meiner Motivation echt nicht gerade zuträglich....
Überlege echt alles was ich habe zu Posten, sprich die Script Buttons und die Module eventuell noch ne komplette Befehlsliste und dann sense mit Fallout Modding  :wall1cf:

Es war schon damals mit Smackrazor so das alle anderen sich immer die Lohrbeeren einheimsen und ich wie das letzte Arsch dastehe. Das kotzt mich echt an...

Si vis pacem, para bellum.

Offline le Chew

  • Vertibirdpilot
  • Beiträge: 1.808
    • zero-projekt.net
Re: Sfall Extras
« Antwort #9 am: 24. Januar 2009, 14:50:13 Uhr »
@Helios

Jo, lass es sein - kocht eh jeder sein eigenes Süppchen. Und Faulheit ruled auch - du hast zwar ne Möglichkeit geschaffen, aber sie nicht vorgekaut.

Timeslip baut das in sein Tool ein von dem sich alle Modder abhängig gemacht haben, also schaut keiner deine bzw. andere Lösungen an.

(Randnotiz: SFall an sich halte ich wie schon oft gesagt nicht für den heiligen Gral)

Offline Lexx

  • Administrator
  • Auserwähltes Wesen
  • Beiträge: 17.726
Re: Sfall Extras
« Antwort #10 am: 24. Januar 2009, 14:53:29 Uhr »
Sfall ist besser als Fallouto blanko. Man hat einfach mehr Möglichkeiten und muss nicht jeden Scheiß in die exe hexen.
only when you no-life you can exist forever, because what does not live cannot die

Offline le Chew

  • Vertibirdpilot
  • Beiträge: 1.808
    • zero-projekt.net
Re: Sfall Extras
« Antwort #11 am: 24. Januar 2009, 15:17:07 Uhr »
@Lexx

Meine persönliche Meinung ist da halt anders - SFall ist kein Community-Projekt sondern abhängig von einer Person. Fällt dies Person weg, ist sie nicht ersetzbar (durch die Community). Sind alle Mods auf SFall umgestellt und hört Timeslip auf, steht man mit nem riesigen Scherbenhaufen da ;-)

Zudem läuft SFall nicht ohne Anpassungen unter Wine - was bei Fallout Blanko aber der Fall ist. (Und ja, blablub, ich hab dir nen Link gegeben wo steht wie man es mit Wine zum laufen bekommt. Der Punkt ist halt das es ohne Anpassung nicht geht)

Kann ja jeder sehen wie er will - ich persönlich finde diese Entwicklung wie gesagt nicht gut, und das aus mehreren Gründen.

Mir wäre es ehrlich gesagt lieber wenn Fallout ne OpenSource-Engine verpasst bekommt - mit ner einfachen Scriptsprache ohne diesen ganzen Hax0r-Offset Kram. Aber die Community sieht das wohl anders. Gut - jedem das Seine. Ich hab meine Spielwiese ^^.

Offline Lexx

  • Administrator
  • Auserwähltes Wesen
  • Beiträge: 17.726
Re: Sfall Extras
« Antwort #12 am: 24. Januar 2009, 15:27:36 Uhr »
Das passiert aber eben nicht, also muss man mit dem leben, was man hat.
only when you no-life you can exist forever, because what does not live cannot die

Offline Jordan

  • Bürger
  • Beiträge: 18
Re: Sfall Extras
« Antwort #13 am: 07. Februar 2009, 20:33:46 Uhr »
Helios2000

You will continue to work on sfall?
I saw that Timeslip did the same work as you do. Maybe you need to work together to sfall?

Offline Mr.Wolna

  • Moderator
  • Heilige Granate
  • Beiträge: 7.049
  • >>>FALLOUT4EVER<<<
Re: Sfall Extras
« Antwort #14 am: 07. Februar 2009, 21:01:03 Uhr »
Jordan, Helios is not modding Fallout anymore.
RPÜ/German Restoration Project Tanslation
Ich habe ein Gewehr, eine Schaufel und 5 Hektar Land hinter dem Haus. Man wird dich nie finden - leg dich also nicht mit mir an!  
P.s. Nein es ist nicht die Gewalt was mich an der Fallout Reihe gereizt hat,aber sie war immer die Kirsche auf der Sahnetorte ( Und ich will verdammt nochmal ne Kirsche oben drauf haben)

Offline Helios2000

  • BoS Neuling
  • Beiträge: 551
  • Si vis pacem, para bellum
Re: Sfall Extras
« Antwort #15 am: 08. Februar 2009, 16:52:56 Uhr »
Jordan, Helios is not modding Fallout anymore.

Yes thats right.

I saw that Timeslip did the same work as you do. Maybe you need to work together to sfall?

timeslip is f****** bit**, no chance that I work with him.
Also is there anything still to be done? I do not think so. sfall has all the features you needs for a total conversion of Fallout.
The only problems are, a complet function List, a good team and time for hard work. Ok a seond Problem is that the most (or all) modders dont understand the opportunities of these commands.

Si vis pacem, para bellum.

Offline Mr.Wolna

  • Moderator
  • Heilige Granate
  • Beiträge: 7.049
  • >>>FALLOUT4EVER<<<
Re: Sfall Extras
« Antwort #16 am: 08. Februar 2009, 17:02:06 Uhr »
Zitat
Ok a seond Problem is that the most (or all) modders dont understand the opportunities of these commands.


yeah, thats right bro!  #lachen# and all who do or the most are sick of fo modding.  ;)
RPÜ/German Restoration Project Tanslation
Ich habe ein Gewehr, eine Schaufel und 5 Hektar Land hinter dem Haus. Man wird dich nie finden - leg dich also nicht mit mir an!  
P.s. Nein es ist nicht die Gewalt was mich an der Fallout Reihe gereizt hat,aber sie war immer die Kirsche auf der Sahnetorte ( Und ich will verdammt nochmal ne Kirsche oben drauf haben)

Offline batgilla

  • Ranger
  • Beiträge: 443
Re: Sfall Extras
« Antwort #17 am: 18. März 2009, 12:40:58 Uhr »
Wäre es eigentlich schwierig sfall auch für den BIS Mapper anzupassen - Sachen, wie die Mausradunterstützung wären wirklich unheimlich nützlich  :-\.

Offline Lexx

  • Administrator
  • Auserwähltes Wesen
  • Beiträge: 17.726
Re: Sfall Extras
« Antwort #18 am: 18. März 2009, 12:47:04 Uhr »
Technisch definitiv möglich, aber es muss halt das meiste extra angepasst werden, weil die mapper.exe nicht mit der fallout2.exe identisch ist.

Wenn jemand Ahnung davon hat, ist es wohl kein Problem. Wenn jemand keine Ahnung davon hat, lohnt es sich nicht mal, auch nur über das Anfangen nachzudenken. :>
only when you no-life you can exist forever, because what does not live cannot die

Offline Helios2000

  • BoS Neuling
  • Beiträge: 551
  • Si vis pacem, para bellum
Re: Sfall Extras
« Antwort #19 am: 19. März 2009, 16:11:45 Uhr »
Nein schwierig ist es nicht. Du musst nur die Adressen anpassen, die meisten Funktionen raus nehmen, alles neu kompilieren, fertig.

Si vis pacem, para bellum.