|
Andrej
Member
Откуда: Srbija Регистрация: Июнь 2005
Всего: 12 сообщений
|
Hi. Im new to creating mods and stuff in Fallout2 so i dont know really much about it. I downloaded FMF Dialogue Tool and figured out how to make dialogues.Everything worked out good and i saved it as SSL+MSG (Thats how its supposted to be, right? ). Anyway, I dont know how to attach it to critter. I tried exporting it into master.dat using Data Explainer but thats not how its supposted to be done. Help please! Thanks in advance.
|
Отправлено: 17:00 - 26 Июня, 2005
|
|
Andrej
Member
Откуда: Srbija Регистрация: Июнь 2005
Всего: 12 сообщений
|
Ok, I used Fallout Script Editor 1.5a to register it into .h and made it into .lst.I started mapper and i managed to attach script to critter.I used it on Combat Slave.His name changed to what i changed it in FMF DT but the rest i modified wont work(example- description is you see nothing out of ordinary but thats not how i set it.) Here is script i made : /* Fan Made Fallout NPC Script Name: Luciano Location: Smear Description: Created: 26.6.2005 9:53:40 */ /* Include Files */ //Overrides the pickup p proc. //#define NPC_REACTION_TYPE REACTION_TC /* REACTION_TC REACTION_TG REACTION_C REACTION_G */ #define NPC_REACTION_VAR 7 /* same as thief variable */ #include "..\headers\define.h" //#include "..\headers\<TownName.h>" #define NAME SCRIPT_LUCIANO // NOTE: Uncomment this line and set the town reputation GVAR to the city // this NPC belongs to //#define TOWN_REP_VAR (GVAR_TOWN_REP_) #include "..\headers\command.h" #include "..\headers\ModReact.h" /* Standard Script Procedures */ procedure start; procedure critter_p_proc; procedure pickup_p_proc; procedure talk_p_proc; procedure destroy_p_proc; procedure look_at_p_proc; procedure description_p_proc; procedure use_skill_on_p_proc; procedure damage_p_proc; procedure map_enter_p_proc; /* Script Specific Procedure Calls */ procedure Node998; // This Node is Always Combat procedure Node999; // This Node is Always Ending // The next lines are added in by the Designer Tool. // Do NOT add in any lines here. //~~~~~~~~~~~~~~~~ DESIGNER TOOL STARTS HERE procedure smart; procedure smart2; procedure smart3; procedure smart4; procedure smart5; procedure stupid; procedure stupid2; procedure stupid3; procedure smart6; procedure smart7; procedure smart8; procedure gunmanJ1; procedure GunmanJ2; procedure GunmanJ3; procedure GunmanJ4; procedure GunmanJ5; //~~~~~~~~~~~~~~~~ DESIGN TOOL ENDS HERE // The Following lines are for anything that is not needed to be // seen by the design Tool /* Local Variables which are saved. All Local Variables need to be prepended by LVAR_ */ #define LVAR_Herebefore (4) #define LVAR_Hostile (5) #define LVAR_Personal_Enemy (6) #define LVAR_Caught_Thief (7) /* Imported variables from the Map scripts. These should only be pointers and variables that need not be saved. If a variable Needs to be saved, make it a map variable (MVAR_) */ /* Local variables which do not need to be saved between map changes. */ variable Only_Once:=0; procedure start begin end /* This procedure will get called each time that the map is first entered. It will set up the Team number and AI packet for this critter. This will override the default from the prototype, and needs to be set in scripts. */ procedure map_enter_p_proc begin Only_Once:=0; // critter_add_trait(self_obj,TRAIT_OBJECT,OBJECT_TEAM_NUM,TEAM_); // critter_add_trait(self_obj,TRAIT_OBJECT,OBJECT_AI_PACKET,AI_); end /* Every heartbeat that the critter gets, this procedure will be called. Anything from Movement to attacking the player on sight can be placed in here.*/ procedure critter_p_proc begin /* If the critter is mad at the player for any reason, it will attack and remember to attack the player should the game be saved and loaded repeatedly. Additionally, if any special actions need to be taken by the critter based on previous combat, the critter will remember this as well. */ if ((local_var(LVAR_Hostile) != 0) and (obj_can_see_obj(self_obj,dude_obj))) then begin set_local_var(LVAR_Hostile,1); self_attack_dude; //Macro made by Tom to keep the critter fleeing. end end /* Whenever the critter takes damage of any type, this procedure will be called. Things like setting ENEMY_ and LVAR_Personal_Enemy can be set here. */ procedure damage_p_proc begin /* If the player causes damage to this critter, then he will instantly consider the player his personal enemy. In Critter_Proc or through dialog, actions will be taken against the player for his evil acts. */ if (obj_in_party(source_obj)) then begin set_local_var(LVAR_Personal_Enemy,1); end end /* Any time that the player is caught stealing from this critter, Pickup_proc will be called. In here, various things can happen. The most common response is instant hostility which will be remembered. */ procedure pickup_p_proc begin if (source_obj == dude_obj) then begin set_local_var(LVAR_Hostile,2); end end /* The dialog system is setup and prepares the player to talk to this NPC. Where To Go written by designers are placed in here. Additionally, Reactions are generated and stored which affects player interactions. */ procedure talk_p_proc begin Evil_Critter:=0; Slavery_Tolerant:=SLAVE_TOLERANT; Karma_Perception:=KARMA_PERCEPTION1; CheckKarma; GetReaction; if (1) then begin start_gdialog(NAME,self_obj,4,-1,-1); gSay_Start; call smart; gSay_End; end_dialogue; end end procedure timed_event_p_proc begin end /* This procedure gets called only on the death of this NPC. Special things like incrementing the death count for reputation purposes and Enemy Counters are placed in here. */ procedure destroy_p_proc begin /* Increment the aligned critter counter*/ inc_good_critter /* inc_evil_critter */ /* inc_neutral_critter */ /* Set global_variable for Enemy status*/ end /* Look_at_p_proc gets called any time that the player passes the cursor over any object. This should only hold the most cursory of glances for the player. */ procedure look_at_p_proc begin script_overrides; if (local_var(LVAR_Herebefore) == 0) then display_mstr(100); else display_mstr(101); end /* The player will see more indepth descriptions from this procedure. They are actively looking at the critter and want more information. Things like names can be added here if the critter is known to the player. */ procedure description_p_proc begin script_overrides; display_mstr(102); end /* Any time a skill is used on a critter this call is made. This can be to give examinations for things like Doctor skill or messages for various other skills. */ procedure use_skill_on_p_proc begin end /* Should the Player ever cause the NPC too much discomfort that he desires to attack the player, this call will be made. Essentially, it stores the Hostile vaule so that the critter remembers he was once hostile towards the player.*/ procedure Node998 begin set_local_var(LVAR_Hostile,2); end /* Anytime that there is a need for an ending to dialog, this node is to be called. It will just exit from the dialog system without any reprisals from the NPC. */ procedure Node999 begin debug_msg("LVAR_Herebefore == "+local_var(LVAR_Herebefore)); if (local_var(LVAR_Herebefore)==0) then begin set_local_var(LVAR_Herebefore,1); end end // Not lines are allowed to be added below here // The Following lines are from the Design Tool //~~~~~~~~~~~~~~~~ DESIGN TOOL STARTS HERE procedure smart begin // [200] "Hello,traveler.I dont remember seeing you around here.Who are you?" if (dude_is_male) then Reply(200); else // [201] "Welcome to our city!May i help you with something?" if (dude_is_female) then Reply(201); // [202] "Thanks.Im " [variable: dude_name] [203] ".What do you do here?" if (get_critter_stat(dude_obj,STAT_ch)>=4) then NOption(mstr(202)+dude_name+mstr(203),smart2,6); // [204] "You dont need to know that.Goodbye." NOption(204,Node999,6); end procedure smart2 begin // [210] "Well mostly nothing going on right now,I sell guns and stuff ." Reply(210); // [211] "I see.I was wondering about your gun you have there.It looks kinda different." if (get_critter_stat(dude_obj,STAT_pe)>=8) then NOption(211,smart3,6); // [212] "Nothing at all?" NOption(212,smart6,6); // [213] "Well then,I guess I have nothing to do here.Bye." NOption(213,Node999,6); end procedure smart3 begin // [220] "Yeah, I added a few bit here and there to improve it ." Reply(220); // [221] "Could you upgrade mine too?" NOption(221,smart4,8); // [222] "Isnt that nice.Nice talking to you,but I gotta go.Bye!" NOption(222,Node999,6); end procedure smart4 begin // [230] "I probably could, but i dont have parts i need to do it." Reply(230); // [231] "What do you need?Maybe I could find it." NOption(231,smart5,8); // [232] "Oh.Ok then.Let me ask you something else though." NOption(232,smart7,6); // [233] "Suuuper.Bye!" NOption(233,Node999,6); end procedure smart5 begin // [240] "Well, I need a wrench first so i can work my magic on it.Then i need two pistols so I can get parts I need from it." Reply(240); // [241] "Thats all?Ok, ill try to find it.See you soon." NOption(241,Node999,4); end procedure stupid begin // [250] "Hello,tribal!Help ya with sumthin?" Reply(250); // [251] "Uh.Need job.U help?" if (get_critter_stat(dude_obj,STAT_iq)<4) then NOption(251,stupid2,-3); end procedure stupid2 begin // [260] "No,I dont need anything.Now if you excuse me,I have work to do." Reply(260); // [261] "No.I want to stay." if (get_critter_stat(dude_obj,STAT_iq)<4) then BOption(261,stupid3,-3); // [262] "Ok.I leave." if (get_critter_stat(dude_obj,STAT_iq)<4) then NOption(262,Node999,-3); end procedure stupid3 begin // [270] "Listen to me, you jerk!Im gonna kick your ass if you dont stop bothering me! Get out of here!" Reply(270); // [271] "NO!I kill you now!" if (get_critter_stat(dude_obj,STAT_iq)<4) then BOption(271,Node998,-3); // [272] "Ugg.I leave!Hateshkin!" if (get_critter_stat(dude_obj,STAT_iq)<4) then NOption(272,Node999,-3); end procedure smart6 begin // [280] "Well,I sure could use some help.Also I heard that doc is looking for someone to do some job." Reply(280); // [281] "What do you need help with?" NOption(281,gunmanJ1,6); // [282] "Thats fascinating.Let me ask you something else." NOption(282,smart7,6); // [283] "What about doc?" NOption(283,GunmanJ2,6); // [284] "I dont want to hear it.Bye." NOption(284,Node999,6); end procedure smart7 begin // [290] "What would you like to know?" Reply(290); // [291] "Are there some jobs to do here?" NOption(291,smart2,6); // [292] "Well, I guess thats all I needed to know." NOption(292,Node999,6); // [293] "You know what would I like to know? I'd like to know whats the sound when i spill your brain all over this fucking dump!" BOption(293,smart8,6); end procedure smart8 begin // [300] "Wha--?You want to kill me?" Reply(300); // [301] "Yes, I just recently cleaned my gun so i want to test is it firing propertly now.Sayonara!" BOption(301,Node998,6); // [302] "He he.Course not,my friend.I wanted to ask you something else though." GOption(302,smart7,6); // [303] "No.I was just kidding.See ya later." NOption(303,Node999,6); end procedure gunmanJ1 begin // [310] "I need someone to get me 3 miniguns.I want to experiment with them." Reply(310); // [311] "Hm.I could probably find them.Ok, its a deal." GOption(311,GunmanJ3,6); // [312] "Whats in it for me?" NOption(312,GunmanJ4,6); // [313] "Not interested.Bye." NOption(313,Node999,6); // [314] "Ill think about it.Let me ask you something else." NOption(314,smart7,6); end procedure GunmanJ2 begin // [320] "I really dont know that.You'll have to ask doc himself." Reply(320); // [321] "Ok.Let me ask you something else then." NOption(321,smart7,6); // [322] "Ok.Ill go ask doc then.have a good day." NOption(322,Node999,6); end procedure GunmanJ3 begin // [330] "Thank you kindly.[He shakes your hand real hard.You almost let your voice.]" Reply(330); // [331] "[Done]" NOption(331,Node999,4); end procedure GunmanJ4 begin // [340] "Ill try to patch something up,dont worry." Reply(340); // [341] "Ok,ok just asking.Its a deal." GOption(341,GunmanJ3,6); // [342] "Hm i need to think about it.Let me ask you something else." NOption(342,smart7,6); // [343] "I dont think i want to do it.Sorry." NOption(343,GunmanJ5,6); end procedure GunmanJ5 begin // [350] "Ok.No problem." Reply(350); // [351] "[Done]" NOption(331,Node999,4); // [352] "May I ask you something?" NOption(352,smart7,6); end //xxxxxxxxxxxxxxxxxxxx Sorry for such a long post but i really need help. Please send some advice.
|
Отправлено: 0:05 - 27 Июня, 2005
|
|
Strongholder
Прилипала MkII
Откуда: Nelly's Bar Регистрация: Май 2004
Всего: 393 сообщения
|
This script is awful. Sorry, just joking... AFAICS you just haven't compile it. That's all. It must work. SFMBE.
----- Живущий в стране эльфов. Несмотря ни на что.
|
Отправлено: 2:25 - 27 Июня, 2005
|
|
Andrej
Member
Откуда: Srbija Регистрация: Июнь 2005
Всего: 12 сообщений
|
No, I know it is horrible.It may be childish too,but thats probably cuz i am a child.About compiling,uh, can u tell me how to do it? Thanks
|
Отправлено: 21:48 - 27 Июня, 2005
|
|
Perceptron
Модератор
Откуда: Ivanovo Регистрация: Май 2003
Всего: 502 сообщения
|
Use "Script->Compile Script" (F9) in FSE.
|
Отправлено: 0:35 - 28 Июня, 2005
|
|
Andrej
Member
Откуда: Srbija Регистрация: Июнь 2005
Всего: 12 сообщений
|
Compiling file: "luciano.ssl" Starting preprocessor Precompilation successful! Compiling preprocessor output:"temp.i" Compiler encountered following error: ------------------------------------------------ TEMP.I(9582): Error! Undefined symbol TOWN_REP_VAR FSE info --> Compiler reports unknown command or character. "Please check whenever you have mistyped function or procedure name or not declared all variables." ------------------------------------------------ Compilation cannot complete due to critical error And when I delete that line TOWN_REP_VAR it still shows there is error because of that.
|
Отправлено: 11:04 - 28 Июня, 2005
|
|
DjUnique
Member
Откуда: Kouvola, Finland Регистрация: Июнь 2005
Всего: 2 сообщения
|
Change this line (or add the line since you deleted it): //#define TOWN_REP_VAR (GVAR_TOWN_REP_) to something like #define TOWN_REP_VAR 0 then it should compile OK. On a completely unrelated note: In the latest version (which is currently 0.24-beta2) it's also possible to compile scripts directly from the script exporter.
|
Отправлено: 11:39 - 28 Июня, 2005 | ИСПРАВЛЕНО: DjUnique - 11:40 - 28 June, 2005
|
|
Mynah
Модератор
Откуда: Пермь Регистрация: Окт. 2004
Всего: 469 сообщений
|
Just uncomment(remove double slash) this line:
Цитата:
//#define TOWN_REP_VAR (GVAR_TOWN_REP_)
and replace GVAR_TOWN_REP_ to one string from this list: GVAR_TOWN_REP_ARROYO GVAR_TOWN_REP_KLAMATH GVAR_TOWN_REP_THE_DEN GVAR_TOWN_REP_VAULT_CITY GVAR_TOWN_REP_GECKO GVAR_TOWN_REP_MODOC GVAR_TOWN_REP_SIERRA_BASE GVAR_TOWN_REP_BROKEN_HILLS GVAR_TOWN_REP_NEW_RENO GVAR_TOWN_REP_REDDING GVAR_TOWN_REP_NCR GVAR_TOWN_REP_BURIED_VAULT GVAR_TOWN_REP_VAULT_13 GVAR_TOWN_REP_COLUSA GVAR_TOWN_REP_SAN_FRANCISCO GVAR_TOWN_REP_ENCLAVE GVAR_TOWN_REP_ABBEY GVAR_TOWN_REP_EPA GVAR_TOWN_REP_PRIMITIVE_TRIBE GVAR_TOWN_REP_RAIDERS GVAR_TOWN_REP_VAULT_15 GVAR_TOWN_REP_GHOST_FARM GVAR_TOWN_REP_NAVARRO Sorry 4 my bad English.
----- Scio me nihil scire
|
Отправлено: 11:42 - 28 Июня, 2005
|
|
Andrej
Member
Откуда: Srbija Регистрация: Июнь 2005
Всего: 12 сообщений
|
WHATEVER I do it shows the error!Im going crazy now (Addition of 12:20 - 28 June, 2005.) I converted .ssl file to Noid and now it looks like this( with modification from Mynah): /* *** Script conwerted to Interplay format by Fallout Script Edytor (by Jargo) *** */ #include "C:\Games\Fallout2\Fallout 2 Mapper\scripts\HEADERS\define.h" //#include "C:\Games\Fallout2\Fallout 2 Mapper\scripts\HEADERS\<TownMapName.h>" #define NAME SCRIPT_LUCIANO //Script name from scripts.h #define GVAR_TOWN_REP (GVAR_TOWN_REP_ARROYO) #include "C:\Games\Fallout2\Fallout 2 Mapper\scripts\HEADERS\command.h" #include "C:\Games\Fallout2\Fallout 2 Mapper\scripts\HEADERS\ModReact.h" #include "C:\Games\Fallout2\Fallout 2 Mapper\scripts\HEADERS\partybkg.h" procedure start; procedure critter_p_proc; procedure pickup_p_proc; procedure talk_p_proc; procedure destroy_p_proc; procedure look_at_p_proc; procedure description_p_proc; procedure use_skill_on_p_proc; procedure damage_p_proc; procedure map_enter_p_proc; procedure timed_event_p_proc; WHATS WRONG NOW?
|
Отправлено: 12:11 - 28 Июня, 2005
|
|
Mynah
Модератор
Откуда: Пермь Регистрация: Окт. 2004
Всего: 469 сообщений
|
Цитата:
I converted .ssl file to Noid
It wasn't needed. But it can't be source of errors. Whats error shown now? I'm sure, it wasn't "Undefined symbol TOWN_REP_VAR "
----- Scio me nihil scire
|
Отправлено: 12:58 - 28 Июня, 2005 | ИСПРАВЛЕНО: Mynah - 14:59 - 28 Июня, 2005
|
|
DjUnique
Member
Откуда: Kouvola, Finland Регистрация: Июнь 2005
Всего: 2 сообщения
|
Цитата: Quote: from Andrej on 11:11 - 28 June, 2005 #define GVAR_TOWN_REP (GVAR_TOWN_REP_ARROYO)
The error is simply that you defined the town rep var as GVAR_TOWN_REP instead of TOWN_REP_VAR
|
Отправлено: 13:15 - 28 Июня, 2005
|
|
Mynah
Модератор
Откуда: Пермь Регистрация: Окт. 2004
Всего: 469 сообщений
|
Oh, yes. I have inattentively read through :( I'm agree with previous post. and... sorry 4 my bad english :)
----- Scio me nihil scire
|
Отправлено: 13:29 - 28 Июня, 2005
|
|
Andrej
Member
Откуда: Srbija Регистрация: Июнь 2005
Всего: 12 сообщений
|
Compiling file: "luciano.ssl" Starting preprocessor Precompilation successful! Compiling preprocessor output:"temp.i" Compiler encountered following error: ------------------------------------------------ TEMP.I(9758): Error! Undefined symbol TOWN_REP_VAR FSE info --> Compiler reports unknown command or character. "Please check whenever you have mistyped function or procedure name or not declared all variables." ------------------------------------------------ Compilation cannot complete due to critical error This is ridiculous. And when i press Show Errors whatever line in script my mouse was on,thats the error line.I think that its not the problem in TOWNREPGVAR. (Addition of 13:42 - 28 June, 2005.) No DJ unique,i writed TOWN_REP_VAR in script but i didnt write it correctly here.
|
Отправлено: 13:40 - 28 Июня, 2005
|
|
Mynah
Модератор
Откуда: Пермь Регистрация: Окт. 2004
Всего: 469 сообщений
|
Wooh... Copy&paste this code in to FSE and then compile. It will be work correctly. And please, study scripts language before try to modding fallout. Update: code removed. so big post no needed now.
----- Scio me nihil scire
|
Отправлено: 13:59 - 28 Июня, 2005 | ИСПРАВЛЕНО: Mynah - 16:28 - 28 Июня, 2005
|
|
Andrej
Member
Откуда: Srbija Регистрация: Июнь 2005
Всего: 12 сообщений
|
Nice code,Mynah. Sadly,It doesnt work either I copied it and still the same error. Do u know where to find good tutorials for scripting?
|
Отправлено: 14:15 - 28 Июня, 2005
|
|
Mynah
Модератор
Откуда: Пермь Регистрация: Окт. 2004
Всего: 469 сообщений
|
May be this code doesn't work because FMF Dialogue tool doesn't edit header files automaticaly. I don't use this program and can't know. Many tutorials you can find here. Oh... i'm sure, in my text so much errors, but i hope, you will understand my bad english :( PS: Code which i pasted here work correctly. It was tested.
----- Scio me nihil scire
|
Отправлено: 14:26 - 28 Июня, 2005 | ИСПРАВЛЕНО: Mynah - 16:31 - 28 Июня, 2005
|
|
Andrej
Member
Откуда: Srbija Регистрация: Июнь 2005
Всего: 12 сообщений
|
Your english is not bad. It doesnt work for me i assure you. Do u use FSe for making dialogues?
|
Отправлено: 14:34 - 28 Июня, 2005
|
|
Mynah
Модератор
Откуда: Пермь Регистрация: Окт. 2004
Всего: 469 сообщений
|
For making dialogues i use my brain, hands and notepad :) It's habit. IMHO, for beginner in fallout modding FMF Dialogue Tool - best program, but you must know fallout script language for use it. and... it's all offtop. sorry 4 moderators.
----- Scio me nihil scire
|
Отправлено: 14:42 - 28 Июня, 2005 | ИСПРАВЛЕНО: Mynah - 16:49 - 28 Июня, 2005
|
|
Andrej
Member
Откуда: Srbija Регистрация: Июнь 2005
Всего: 12 сообщений
|
dobro. thx for url Mynah [very confussed] (Addition of 15:25 - 28 June, 2005.) BTW which compiler/script editor is easiest and best for use for beginners? that tutorial for scripting isnt telling how to do something,its only about setting it to work propertly and some facts.
|
Отправлено: 15:12 - 28 Июня, 2005
|
|
Mynah
Модератор
Откуда: Пермь Регистрация: Окт. 2004
Всего: 469 сообщений
|
Recomended programs for beginners(it's just IMHO): FSE 1.5 (don't use version 2... this version doesn't complete and have many bugs) FMF Dialogue Tool Read so many documents on this page as u can. (Especially "Guide to Fallout Modding") And will B ready to many-many-many trubls. Modding fallout is hard business.
----- Scio me nihil scire
|
Отправлено: 15:36 - 28 Июня, 2005 | ИСПРАВЛЕНО: Mynah - 18:04 - 28 Июня, 2005
|
|
Andrej
Member
Откуда: Srbija Регистрация: Июнь 2005
Всего: 12 сообщений
|
Thank you guys for everything.
|
Отправлено: 15:59 - 28 Июня, 2005
|
|
|
|