ProjectsWhat's NewDownloadsCommunitySupportCompany
Forum Index » S.T.A.L.K.E.R.: Shadow of Chernobyl Forum » Mod discussion
What do I edit in the "Kill Lukash" mission

Posted by/on
Question/AnswerMake Newest Up Sort by Descending
  16:50:36  5 July 2018
profilee-mailreply Message URLTo the Top
optical_illusion
Senior Resident
 

 
On forum: 02/09/2013
 

Message edited by:
optical_illusion
07/06/2018 10:56:20
Messages: 176
What do I edit in the "Kill Lukash" mission

Basically I want to complete the quest for Duty but I dont want lukash to die(lol I know) i want to keep lukash alive to get the repeatable tasks and rewards, etc

what script do I edit ?(i presume) or text file so it leads to a random no name freedomer dying instead

edit:

question #2

how would I create spawners for Chimeras/burers, etc in all.spawn?
  00:08:34  11 July 2018
profilee-mailreply Message URLTo the Top
NatVac
Senior Resident
 

 
On forum: 06/15/2007
Messages: 4303
Heh, yeah, your first request is a pair of mutually-exclusive objectives, like asking how to make 1+1 not equal 2. The "Mission: Impossible" or "Deception" guys might help here.

Start by searching in all the gamedata extracted files for mil_kill_lukash. In config\gameplay\, edit tasks_military.xml. You'll see a "<function_complete>" entry that references mil_tasks.final_subtask_dolg_main. Edit scripts\mil_tasks.script and find function final_subtask_dolg_main (task_id, subtask). There you will see this line:

return has_alife_info("mil_lukash_dead") and (has_alife_info("mil_dolg_dead") or has_alife_info("mil_dolg_task_final"))

This means that you want the last info_portion there, and instead of the first "mil_lukash_dead" info_portion test, you want something like random_noname_freedom:alive() == false. You'll have to get the npc object, but that's relatively straight-forward.

Also search for any conflicts from not having the "mil_lukash_dead" info_portion, and resolve them in a similar manner.

For question 2: You have to have the creature definitions working properly in config\creatures\. (A good starting place is ZRP 1.09 or later, which has some working definitions that you can refine.) Then just create the spawner objects using spawner objects for other mutants as examples.

Having a spawner isn't enough; you'll need to create creature gulags to create the demand for the spawners to do their job.

The next release of ZRP 1.09 will have the ability to create free-roaming burers and chimeras without the need to change all.spawn, if your desire is just to wreak mayhem and havoc. If you use the XR2 version, you can put in your own spawn_types in _custom_ext_zrp_mm.script.
  12:20:14  12 July 2018
profilee-mailreply Message URLTo the Top
optical_illusion
Senior Resident
 

 
On forum: 02/09/2013
 

Message edited by:
optical_illusion
07/12/2018 12:20:26
Messages: 176
mil_Svoboda_specnaz

one more question ..what is NPC object?

for example kill "lukash" he is mil_freedom_member0012 and also mil_svoboda_leader yet how does the game "understand" he is the target for the mission?

its like a bunch of different people coded this quest confusing AF

I compared it to the generic sidequests like "kill Father Didodor" or whatever and so bascially lets say I want one of the mooks in the exo to die instead I would type in mil_stalker_0000 ?

like this in the script?


return has_alife_info(" mil_stalker_0000 _dead"

is this correct?


text>mil_kill_lukash</text>
<icon x="0" y="0" width="50" height="50">ui\ui_icons_task</icon>
<map_location_type hint="mil_kill_Svoboda_specnaz_hint">green_location</map_location_type>
<object_story_id>mil_Svoboda_specnaz</object_story_id>
<map_location_hidden>1</map_location_hidden>
<infoportion_complete>mil_Svoboda_specnaz_dead</infoportion_complete>
<infoportion_set_fail>mil_dolg_Svoboda_specnaz_kill_fail</i

?
  11:56:06  30 July 2018
profilee-mailreply Message URLTo the Top
NatVac
Senior Resident
 

 
On forum: 06/15/2007
 

Message edited by:
NatVac
07/30/2018 12:00:10
Messages: 4303

---QUOTATION---
for example kill "lukash" he is mil_freedom_member0012 and also mil_svoboda_leader yet how does the game "understand" he is the target for the mission?
...
I compared it to the generic sidequests like "kill Father Didodor" or whatever
---END QUOTATION---


The game understands how to find the targets by using the scripts. For example, killing Father Diodor is a task defined in config\misc\task_manager.ltx: tm_kill_stalker_5, given by Sidorovich (trader) with the target sim_stalker_master_diador.

Search with Notepad++ or some equivalent file search tool to see where that is in the extracted gamedata. I search only config\, scripts\ and the extracted all.spawn source files. I use *.ltx, *.xml and *.script to limit my searches. That target name is used "as is" for the specific_character id and the class in character_desc_simulation.xml, as the character id in npc_profile.xml, and in the all.spawn's alife_l07_military.ltx as the character_profile assignment.

It turns out that task_manager.script reads task_manager.ltx and builds a list of possible target objects for the "kill_stalker" type of tasks. Looking for all occurrences of "kill_stalker" in that script shows us that the function register_target() compares the profile_name() to the target name, and if it matches, this object is added to the target_objects table.

The way that the game handles mil_kill_lukash is quite different; the task is much more complex and uses quite a few XML attributes to set up the task. Only a couple of attributes are parsed by the script; see the mil_kill_lukash section in task_manager.ltx. Searching for it as above shows that the task is given when the info_portion mil_dolg_final_task is given (see info_l10military.xml). This task is a game_task, the same game_task I mentioned in my last reply.

Game task objectives can be resolved by matching a story_id, or getting an info_portion, or matching a script return value.

---QUOTATION---
and so bascially lets say I want one of the mooks in the exo to die instead I would type in mil_stalker_0000 ?

like this in the script?

return has_alife_info(" mil_stalker_0000 _dead" )
---END QUOTATION---


Don't return a new info_portion. Do what I said to do with the stalker you want to be the target. I'll show you the line in a moment.

---QUOTATION---
is this correct?

<text>mil_kill_lukash</text>
<icon x="0" y="0" width="50" height="50">ui\ui_icons_task</icon>
<map_location_type hint="mil_kill_Svoboda_specnaz_hint">green_location</map_location_type>
<object_story_id>mil_Svoboda_specnaz</object_story_id>
<map_location_hidden>1</map_location_hidden>
<infoportion_complete>mil_Svoboda_specnaz_dead</infoportion_complete>
<infoportion_set_fail>mil_dolg_Svoboda_specnaz_kill_fail</i>
---END QUOTATION---


No, that's just copying and pasting without knowing what is going on. Changing the names of references does not change the way the references work. One of the new references will not be found and this will crash the game.

Do a search (just like the searches done above) for all the references in the original task, before you changed their names, as I told you to do so in the post above.

Again, I suggest that you keep all the function names the same for now, but change their code to check for your random no-name stalker instead of Lukash.

You can get the object from the name with alife():object("random_noname_freedom") -- substitute the name in quotes with the one you want, for example like "mil_stalker_0000" and not the character_name, like "Lukash" or "Max" or "Skinflint".

So, to use your example, you would change the function I referenced from this:

return has_alife_info("mil_lukash_dead") and (has_alife_info("mil_dolg_dead") or has_alife_info("mil_dolg_task_final"))

to something like this:

return alife():object("mil_stalker_0000"):alive() == false

Now, if you want to move markers, you'll need a story_id for your new target, and substitute that for Mil_Lukash (see game_story_ids.ltx).

You have a long way to go, especially since you may have to re-write all this to make it work the way you want. This link might help you learn programming/modding STALKER:
http://sdk.stalker-game.com/en/index.php?title=Category:Articles

There's also a tutorial thread locked at the top of this discussion section.
 
Each word should be at least 3 characters long.
Search:    
Search conditions:    - spaces as AND    - spaces as OR   
 
Forum Index » S.T.A.L.K.E.R.: Shadow of Chernobyl Forum » Mod discussion
 

All short dates are in Month-Day-Year format.


 

Copyright © 1995-2022 GSC Game World. All rights reserved.
This site is best viewed in Internet Explorer 4.xx and up and Javascript enabled. Webmaster.
Opera Software products are not supported.
If any problem concerning the site functioning under Opera Software appears apply
to Opera Software technical support service.