Request for FO2 modding.

@ Morticia,
That information is in the items (drug) proto and not script based.
If you push edit on a drug in the Mapper, you'll see how it works.

If you want a different effect for drugs than was ever intended, that needs to be put in the script of all affected critters.
 
MIB88 said:
You know, you could just use the item editor to make it a drug that deals, say, 300 damage all at once. That should kill almost any critter.

did a little search...still have no idea what the "item editor" is. anybody?
 
TwinkieStabllis said:
i saw that and that shit was like ZOOM! way the fuck over my head.

Try Cubik's item editor. Very good and easy-to-use tool. Right now, poison affects poison level only. You could choose from the pull down menus to instead affect HP in the short term, mid term, and long term and assign negative hitpoints.
 
MIB88 said:
Right now, poison affects poison level only.

what's your opinion on this? doesn't that seem...well...a bit weak? i mean, who knows what kind of poison it is? the right kind of poison could kill a person in seconds.
 
TwinkieStabllis said:
what's your opinion on this? doesn't that seem...well...a bit weak? i mean, who knows what kind of poison it is? the right kind of poison could kill a person in seconds.

I think you're right: it should give a lot more damage than it does now. A few points of poison damage is useless. Of course, you'll find other people who will point out that there are some weak poisons too and that it shouldn't be changed. I think I will change it for the MM, to add lots of damage either middle or, more likely, long term. Definitely better for assassinations than stimpacking the critter to death.
 
Super Stim-ing something to death is something I believe a lot of people use simply because there is no competitive option for assassinations -- it's always seemed like a very stupid idea to me. Heal something to death? I'm actually surprised the poison hasn't already been made useful.
 
DGT said:
I'm actually surprised the poison hasn't already been made useful.

Agreed. I have a plan to make a poison & radiation mod when Killap releases RP 1.4. It will, essentially, make poison and radiation something to be feared....
 
Radiation and poison levels aren't tracked for critters other than the player, so except for scripted cases, the Poison item does nothing unless you jab yourself with it. To make it generally useful, it should be turned into a drug that does damage over time. Possibly reduce other stats as well, depending on what kind of poison you want to simulate. Robot scripts should be updated to prevent it from working on them.
 
^If you have silent death and no one else is in the same room and/or within several squares of you and your target, it *might* just count it as one. I think it also helps to use melee or unarmed attacks.

Also I'm wondering if it's a good idea to make the food items (except the quest-related ones) in FO2 heal small amounts of health (2-4 HP) as a cheap alternative to stims starting out?

DGT said:
Super Stim-ing something to death is something I believe a lot of people use simply because there is no competitive option for assassinations -- it's always seemed like a very stupid idea to me. Heal something to death? I'm actually surprised the poison hasn't already been made useful.

Well, in some real life murders, a type of medicine was used to kill the victim(s).
 
I tried to make an OD script thingie and I think it turned out rather well.

Code:
procedure use_obj_on_p_proc;  // Not always in scripts.
variable tolerance;
variable drugs;
variable dead;



procedure use_obj_on_p_proc
begin
        if ((obj_pid(obj_being_used_with) == 259) or (obj_pid(obj_being_used_with) == 110) or (obj_pid(obj_being_used_with) == 87) or (obj_pid(obj_being_used_with) == 53) or (obj_pid(obj_being_used_with) == 125) or (obj_pid(obj_being_used_with) == 469) or (obj_pid(obj_being_used_with) == 311) or (obj_pid(obj_being_used_with) == 144) or (obj_pid(obj_being_used_with) == 109) or (obj_pid(obj_being_used_with) == 40) or (obj_pid(obj_being_used_with) == 273)) then begin  // these are all on the same line.
                if local_var(16) <= 0 then begin
                        set_local_var(15, game_time);
                        if ((obj_pid(obj_being_used_with) == 259) or (obj_pid(obj_being_used_with) == 110) or (obj_pid(obj_being_used_with) == 87) or (obj_pid(obj_being_used_with) == 53)) then begin
                                set_local_var(16, 10);
                        end
                        if ((obj_pid(obj_being_used_with) == 125) or (obj_pid(obj_being_used_with) == 469) or (obj_pid(obj_being_used_with) == 311) or (obj_pid(obj_being_used_with) == 144)) then begin
                                set_local_var(16, 5);
                        end
                        if ((obj_pid(obj_being_used_with) == 109) or (obj_pid(obj_being_used_with) == 40) or (obj_pid(obj_being_used_with) == 273)) then begin
                                 set_local_var(16, 2);
                        end
                end
                else begin
                        if ((obj_pid(obj_being_used_with) == 259) or (obj_pid(obj_being_used_with) == 110) or (obj_pid(obj_being_used_with) == 87) or (obj_pid(obj_being_used_with) == 53)) then begin
                                set_local_var(16, local_var(16) +10);
                        end
                        if ((obj_pid(obj_being_used_with) == 125) or (obj_pid(obj_being_used_with) == 469) or (obj_pid(obj_being_used_with) == 311) or (obj_pid(obj_being_used_with) == 144)) then begin
                                set_local_var(16, local_var(16) +5);
                        end
                        if ((obj_pid(obj_being_used_with) == 109) or (obj_pid(obj_being_used_with) == 40) or (obj_pid(obj_being_used_with) == 273)) then begin
                                set_local_var(16, local_var(16) +2);
                        end
                end
        end
end

procedure critter_p_proc
begin
        tolerance := (100 + (5 * (get_critter_stat(self_obj, 2) - 10)));
        if (local_var(16) > 0 and local_var(16) < tolerance) and (drugs != 1) then begin
                if ((game_time - local_var(15)) >= (15 * (60 * 10))) then begin
                        drugs := 1;
                end
        end
        if (local_var(16) > 0 and local_var(16) < tolerance) and (drugs == 1) then begin
                set_local_var(16, local_var(16) - ((game_time - local_var(15)) / (15 * (60 * 10))));
                set_local_var(15, game_time);
                drugs := 0;
        end
        if local_var(16) >= tolerance then begin
                if drugs == 0 then begin
                        float_msg(self_obj,"Aaaaargh!",2);
                        set_local_var(15, game_time + game_ticks(3));
                        drugs := 1;
	        end
                else begin
                        if game_time >= local_var(15) then begin
                                dead := random(62, 63);
                                reg_anim_func(2, self_obj);
                                reg_anim_func(1, 1);
                                reg_anim_animate(self_obj, dead, -1);
                                reg_anim_func(3, 0);
                                call destroy_p_proc;
                                kill_critter(self_obj, dead);
                        end
                end
        end
end

procedure destroy_p_proc
begin
//	if (source_obj == dude_obj) then begin          // Replace this line with the following one.
	if ((source_obj == dude_obj) or (dead >= 62)) then begin    //  To get karma reaction for the OD kill, is this a good idea?
Sorry for the long lines that screw up the format.

How much the critter can handle is based on Endurance, up to a 100. Psycho, Jet, Buffout and Mentats will each add 10 to the drug count. Booze, Rot Gut, Roentgen Rum and Super stimpack adds 5. Finally Rad-X, Stimpack and Healing Powder adds only 2.
When the drug count reaches it's limit the critter will scream "Aaaaargh" and then drop down dead (bleeding). It will randomly fall on it's stomach or back. Also, you'll get the same karma drop as if you had killed the critter in a fight (though I don't know if this is a good thing).
If you change your mind about killing the critter or if you simply run out of drugs, your victim will lose one point to the drug count per 15 min (or 4 per hour or 96 per 24 h). I'm not saying all the values are perfect, but I needed something to play around with. I used Local variable 15 to handle time, and Local variable 16 as the drug count, but they can be changed to any available Lvars (have to be Lvars so the values gets saved, no?).

Any thoughts?
 
Needing at least 6 drug doses seems a bit too high to be practical. It would be great if you could make this trigger when critters use drugs. While it might take some effort to get them close to the limit beforehand, I think watching enemies and druggies OD themselves would be hilarious. If that's doable, it wouldn't make sense to count them as a player kill.
 
Kanhef said:
Needing at least 6 drug doses seems a bit too high to be practical. It would be great if you could make this trigger when critters use drugs. While it might take some effort to get them close to the limit beforehand, I think watching enemies and druggies OD themselves would be hilarious. If that's doable, it wouldn't make sense to count them as a player kill.
I was thinking of killing people with super stims and then just grabbed a figure I thought was close to that, but sure, it can be changed to whatever. As for enemies and druggies, you can drug them in combat (or they can take it themselves), but I don't think the death will happen while in combat mode. Maybe adding damage somehow could take care of that. Or did you mean when druggies can take it randomly on their own? I haven't looked how that works. About karma, I don't know if there is a way to distinguish between who drugged the critter to death while in combat mode, but besides that it might be doable.

That code if tweaked a bit would work very well for a food system if anyone would be interested.
 
Hmm, I was assuming use_obj_on_p_proc is only called when someone else uses an item on that critter, might be wrong about that. The only explicit cases of critters using items on themselves in scripts always call use_obj_on_obj. I can't figure out where critters use drugs in combat, doesn't seem to be in any script.

Edit: looks like it's handled by the functions ai_check_drugs() and item_d_take_drug(), which probably kills that idea unless Timeslip does something clever. On the plus side, the code for Flower Child is in there, exactly the same as the code in Fallout 1, so it should work. It's only 'disabled' by having a level requirement of 300 or so. Flower Child and Chem Resistant divide the addiction chance by 2, Chem Reliant multiplies it by 2. They are applied sequentially, so having the first two reduces the addiction chance to 1/4 normal, not zero.
 
Back
Top