Sfall Extras

Hilfe bei der Erstellung von Fallout 1 / 2 Modifikationen, sowie Werbung und Ankündigungen.

Moderators: Newsposter, Global Moderator, Zugriff Intern, Moderator

User avatar
Helios2000
Paladin
Posts: 660
Joined: Tue Aug 15, 2006 2:35 pm
Contact:

Sfall Extras

Post by Helios2000 »

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]

Code: Select all

//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
[/spoiler]

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
Image
Si vis pacem, para bellum.
User avatar
Jordan
Bürger
Posts: 19
Joined: Tue May 06, 2008 11:38 am
Location: Россия
Contact:

Re: Sfall Extras

Post by Jordan »

Helios2000

Dies ist ein guter Job! #thumbsup
User avatar
Helios2000
Paladin
Posts: 660
Joined: Tue Aug 15, 2006 2:35 pm
Contact:

Re: Sfall Extras

Post by Helios2000 »

Danke Jordan  ;)
Image
Si vis pacem, para bellum.
User avatar
Mr.Wolna
Moderator
Posts: 12939
Joined: Sun Oct 28, 2007 8:54 pm

Re: Sfall Extras

Post by Mr.Wolna »

Ich hoffe das erkennen noch mehr Modder ;)
Last edited by Mr.Wolna on Sun Feb 08, 2009 5:02 pm, edited 1 time in total.
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!   <br />
Ashbury wrote: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)
User avatar
Jordan
Bürger
Posts: 19
Joined: Tue May 06, 2008 11:38 am
Location: Россия
Contact:

Re: Sfall Extras

Post by Jordan »

Helios2000
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);
Last edited by Jordan on Fri Jan 23, 2009 3:59 pm, edited 1 time in total.
User avatar
Helios2000
Paladin
Posts: 660
Joined: Tue Aug 15, 2006 2:35 pm
Contact:

Re: Sfall Extras

Post by Helios2000 »

Yes Jordan its correct ;)

Behind the Luck_STAT Offset come the other things, HitPoint(5358512), Armor(5358516), ActionPoints(5358520),......
Image
Si vis pacem, para bellum.
User avatar
Helios2000
Paladin
Posts: 660
Joined: Tue Aug 15, 2006 2:35 pm
Contact:

Re: Sfall Extras

Post by Helios2000 »

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:
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)
Image
Si vis pacem, para bellum.
User avatar
Lexx
Administrator
Posts: 27348
Joined: Sat Dec 10, 2005 6:27 pm

Re: Sfall Extras

Post by Lexx »

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
User avatar
Helios2000
Paladin
Posts: 660
Joined: Tue Aug 15, 2006 2:35 pm
Contact:

Re: Sfall Extras

Post by Helios2000 »

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...
Image
Si vis pacem, para bellum.
User avatar
le Chew
Atomsprengkopf
Posts: 2826
Joined: Mon May 14, 2007 1:35 pm
Location: Bärlin
Contact:

Re: Sfall Extras

Post by le Chew »

@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)
User avatar
Lexx
Administrator
Posts: 27348
Joined: Sat Dec 10, 2005 6:27 pm

Re: Sfall Extras

Post by Lexx »

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
User avatar
le Chew
Atomsprengkopf
Posts: 2826
Joined: Mon May 14, 2007 1:35 pm
Location: Bärlin
Contact:

Re: Sfall Extras

Post by le Chew »

@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 ^^.
User avatar
Lexx
Administrator
Posts: 27348
Joined: Sat Dec 10, 2005 6:27 pm

Re: Sfall Extras

Post by Lexx »

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
User avatar
Jordan
Bürger
Posts: 19
Joined: Tue May 06, 2008 11:38 am
Location: Россия
Contact:

Re: Sfall Extras

Post by Jordan »

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?
User avatar
Mr.Wolna
Moderator
Posts: 12939
Joined: Sun Oct 28, 2007 8:54 pm

Re: Sfall Extras

Post by Mr.Wolna »

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!   <br />
Ashbury wrote: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)
User avatar
Helios2000
Paladin
Posts: 660
Joined: Tue Aug 15, 2006 2:35 pm
Contact:

Re: Sfall Extras

Post by Helios2000 »

Mr.Wolna wrote: Jordan, Helios is not modding Fallout anymore.
Yes thats right.
Jordan wrote: 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.
Image
Si vis pacem, para bellum.
User avatar
Mr.Wolna
Moderator
Posts: 12939
Joined: Sun Oct 28, 2007 8:54 pm

Re: Sfall Extras

Post by Mr.Wolna »

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!   <br />
Ashbury wrote: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)
User avatar
batgilla
Scribe
Posts: 878
Joined: Tue Mar 10, 2009 6:31 pm

Re: Sfall Extras

Post by batgilla »

Wäre es eigentlich schwierig sfall auch für den BIS Mapper anzupassen - Sachen, wie die Mausradunterstützung wären wirklich unheimlich nützlich  :-\.
User avatar
Lexx
Administrator
Posts: 27348
Joined: Sat Dec 10, 2005 6:27 pm

Re: Sfall Extras

Post by Lexx »

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
User avatar
Helios2000
Paladin
Posts: 660
Joined: Tue Aug 15, 2006 2:35 pm
Contact:

Re: Sfall Extras

Post by Helios2000 »

Nein schwierig ist es nicht. Du musst nur die Adressen anpassen, die meisten Funktionen raus nehmen, alles neu kompilieren, fertig.
Image
Si vis pacem, para bellum.
Post Reply

Return to “Fallout Modding”