64 bit compiling

Josan12

Vault Senior Citizen
I'm unable to compile scripts (through FSE) because i recently upgraded to a 64 OS (Win 7). Is there a 64 bit version of DOS4GW? Or some other solution?

Thanks guys.
 
Ok, hopefully anyone who's not busy playing FO4 can help me with this:

sbFpTnO.png


As you can probably see i'm trying to compile Suliks script using sfall's compiler. It's giving me an error in the condition.h header file. I have no idea how to solve this - can anyone help me? It's probably a basic mistake/omission on my part as i'm back to (vault) 101 scripting.

Thanks.

EDIT: i should probably also mention i'm editing killaps RP 2.3 source .ssl's as that probably has something to do with it.
 
Last edited:
Try removing any trailing spaces in the header. If you're using stock source code files from killap, in line 98 there should be a trailing space.
 
Nailed it. Why on earth does one BLANK space at the end of one line stop an entire script compiling?!?! :confused:
 
Ok who can tell me what elementary mistake i'm making here. As you can probably guess i'm trying to make Sulik use a different TH when wearing different armor:

Code:
else if ((Sulik_In_Party) or (party_is_waiting)) then begin
   if ((obj_pid(critter_inven_obj(self_obj,0))== 232) or (obj_pid(critter_inven_obj(self_obj,0))== 3 )) then begin
         start_gdialog(NAME,self_obj,4,HEAD_SULIK,PartyMemberBackground);
         gSay_Start;
         call Node1000;
         //call Node065;
         gSay_End;
         end_dialogue;
         end
         
         else
         if (obj_pid(critter_inven_obj(self_obj,0))== 0) then begin
         start_gdialog(NAME,self_obj,4,HEAD_SULIK,PartyMemberBackground);
         gSay_Start;
         call Node1000;
         //call Node065;
         gSay_End;
         end_dialogue;
         end
  end

It works fine when he is wearing PA (232, 3) but when i have him take it off and go to no armor (0) I can't talk to him at all.

Thanks guys.
 
Ok who can tell me what elementary mistake i'm making here. As you can probably guess i'm trying to make Sulik use a different TH when wearing different armor:

Code:
else if ((Sulik_In_Party) or (party_is_waiting)) then begin
   if ((obj_pid(critter_inven_obj(self_obj,0))== 232) or (obj_pid(critter_inven_obj(self_obj,0))== 3 )) then begin
         start_gdialog(NAME,self_obj,4,HEAD_SULIK,PartyMemberBackground);
         gSay_Start;
         call Node1000;
         //call Node065;
         gSay_End;
         end_dialogue;
         end
         
         else
         if (obj_pid(critter_inven_obj(self_obj,0))== 0) then begin
         start_gdialog(NAME,self_obj,4,HEAD_SULIK,PartyMemberBackground);
         gSay_Start;
         call Node1000;
         //call Node065;
         gSay_End;
         end_dialogue;
         end
  end

It works fine when he is wearing PA (232, 3) but when i have him take it off and go to no armor (0) I can't talk to him at all.

Thanks guys.
It looks like you are trying to call obj_pid on a null pointer, which I suspect is crashing the script.

Critter_inven_obj returns 0 if it cannot find an object (he is not wearing an armor). Then you are trying to get the obj_pid of an object stored at memory address 0, and of course this is an illegal operation. The script doesn't know what to do in this case, so it shuts down and Sulik stops working.

Remove the obj_pid call in the second branch and just check if critter_inv_obj returns 0 (actually, check if it returns <= 0, because I'm not sure if it returns 0 or -1).

Additionally, put the second branch first so that you determine if there actually is an armor before you try to get its ID. Otherwise it will still fail.
 
Last edited:
Back
Top