Si ma questo codice serve a prevenire che obj sia nil qualora l'npc sia offline, ma se la funzione è richiamata all'interno del binder stesso, allora l'entità sarà sempre online :sisi:
Visualizzazione Stampabile
ho effettuato un ulteriore test e il gioco non crasha più ( ho reinstallato tutto)
ho provato a scrivere alla funzione al posto di freedom prima duty e poi dolg perchè non sapevo che mettere tra i due in modo da poter effettuare un test rapido però ha avuto esito negativo in quanto mi dice il solito messaggio appena ammazzo un duty..cioè c'è un assassino nel territorio duty ecc ecc...
sono sicuro di aver fatto una cagata facendo questa prova perchè sicuramente per la duty andrebbero modificate altre funzioni..cmq continuo a fare test aspettando che qualcuno attacchi il bar..vi tengo aggiornati;)
Un saluto a tutti gli Stalker della Zona.
Allora ho un problema che non so come risolvere:
Qualche giorno fa noto uno stalker che mi sta portando via da dei cadaveri tutte le armi, senza lasciarmene neppure una (uso AMK 1.4 ITA): ma non è questo il problema, il fatto è che ne portava con se almeno 20, direi troppe per una persona normale.
Cosi vado a modificare in un file .ltx la variabile del massimo peso trasportabile per gli npc (mi pare inv_max_weight ma non sono sicuro) da 1000 a 50 kg. Ed ecco che cominciano i problemi. :facepalm:
Mi dirigo alla base dei Freedom e, circa all'entrata della base, il frame-rate cala a picco a 1-2 frame/sec.
Provo a raggiungere lo Spilorcio avendo intuito il problema, e così è: avendo il limite dei 50kg ha fatto cadere a terra centinaia, se non migliaia (un vero e proprio cumulo di oggetti) con almeno 5 stalker in contemporanea a raccoglierli.
E questo il mio computer non lo regge.
Ripristino quindi il valore di prima a 1000 e mi dirigo a far altro nella speranza che questi oggetti scompaiano da soli.
Qualche ora dopo ritorno e riecco il problema, gli oggetti sono ancora lì per terra. x(
La mia domanda è: è possibile far sparire questi oggetti in qualche modo per poter rientrare nella base dei Freedom?
Devi ricominciare da un save precedente alla tua modifica :sisi:
Questo è successo perché lo spilorcio è uno stalker normale con le capacità di commerciare, quando sei andato a cambiare le possibilità di carico degli npcs, hai modificato pure quella degli npc-commercianti (ma non quella di sakarov,sido e del barista in quanto sono entità a parte), e quindi non sono stati + in grado di mantenere tutti gli oggetti nel loro inventario :sisi:
Eh mmmm...:stress:
Il problema è che in effetti sono passate PARECCHIE ore da quando il problema è avvenuto e perderei molti progressi.
Siamo sicuri che non ci sia un altra soluzione?
Qualcosa tipo impostare un limite di tempo dopo di che gli oggetti scompaiano da terra, non so....
Ringraziandoti ancora una volta per il supporto, ti riferisco i risultati delle prove che ho fatto fino adesso.
Prima ho provato effettuando le modifiche iniziali che avevi suggerito: ho sperimentato anche io il CTD ma solo nell'istante in cui ho ucciso un bandito al Bar. Non appena è morto, CTD.
Allora ho modificato ulteriormente secondo le ultime indicazioni e, dopo aver ricaricato il save, ho ripetuto la prova uccidendo lo stesso bandito: il gioco non è più crashato ma l'allarme al Bar è scattato comunque. La differenza rispetto al gioco "liscio" è che a diventarmi ostili sono stati solo i Duty presenti nei pressi della loro base mentre, ad esempio, i Duty presenti nel piccolo check-point a sud vicino alle tane dei cani mi sono rimasti neutrali. Inoltre, nonostante sia comparsa la scritta "Allarme, un assassino si aggira in quest'area", non è scattata la sirena di allerta generale (anzi il barista continuava a parlare al megafono cercando di reclutare stalker veterani e cacciatori).
Darimar ma la tua mod ha in gamedata il file "config\scripts\bar_territory_zone.ltx??
E il file config\gameplay\info_l07rostok.xml???
---------------------------------------------
Avrei un ultima strada da proporre allora:
in xr_effects.script cambiare la funzione get_community in questo modo:
e sempre nello stesso file trovare la funzione bar_territory_logic e sostituitela con questa:Codice:function get_community(npc_id)
if level.name() == "l05_bar" then
local obj=level.object_by_id(npc_id)
if obj then
if (obj:relation(db.actor) == game_object.enemy and not obj:character_community() == "dolg") then
if has_alife_info("set_allarm_1") then
db.actor:give_info_portion("deactive_allarm_1")
elseif has_alife_info("set_allarm_2") then
db.actor:give_info_portion("deactive_allarm_2")
elseif has_alife_info("set_allarm_3") then
db.actor:give_info_portion("deactive_allarm_3")
end
else
if has_alife_info("set_allarm_1") then
db.actor:give_info_portion("bar_dolg_territory_1_hit")
elseif has_alife_info("set_allarm_2") then
db.actor:give_info_portion("bar_dolg_territory_2_hit")
elseif has_alife_info("set_allarm_3") then
db.actor:give_info_portion("bar_dolg_territory_3_hit")
end
end
end
end
end
che sarebbe l'originale.Codice:function bar_territory_logic(actor, npc)
local level = level.name()
if level == "l05_bar" then
if dialogs.actor_in_dolg(actor,npc) then
if has_alife_info("bar_dolg_territory_kill") then
news_manager.send_tip(actor, "bar_territory_dolg_kill", nil, "dolg", nil, 507)
xr_gulag.setGulagEnemy("bar_dolg_general", db.actor)
xr_gulag.setGulagEnemy("bar_dolg_veterans", db.actor)
xr_gulag.setGulagEnemy("bar_dolg_bunker", db.actor)
xr_gulag.setGulagEnemy("bar_dolg_zastava", db.actor)
xr_gulag.setGulagEnemy("bar_dolg_zastava_2", db.actor)
xr_gulag.setGulagEnemy("bar_visitors", db.actor)
return
end
if has_alife_info("bar_dolg_territory_3_hit") then
news_manager.send_tip(actor, "bar_territory_dolg_3_hit", nil, "dolg", nil, 507)
xr_gulag.setGulagEnemy("bar_dolg_general", db.actor)
xr_gulag.setGulagEnemy("bar_dolg_veterans", db.actor)
xr_gulag.setGulagEnemy("bar_dolg_bunker", db.actor)
xr_gulag.setGulagEnemy("bar_dolg_zastava", db.actor)
xr_gulag.setGulagEnemy("bar_dolg_zastava_2", db.actor)
return
end
if has_alife_info("bar_dolg_territory_2_hit") then
news_manager.send_tip(actor, "bar_territory_dolg_2_hit", nil, "dolg", nil, 507)
return
end
if has_alife_info("bar_dolg_territory_1_hit") then
news_manager.send_tip(actor, "bar_territory_dolg_1_hit", nil, "dolg", nil, 507)
return
end
else
if has_alife_info("bar_dolg_territory_kill") then
db.actor:give_info_portion("bar_territory_nodolg_kill")
news_manager.send_tip(actor, "bar_territory_nodolg_kill", nil, "dolg", nil, 507)
xr_gulag.setGulagEnemy("bar_dolg_general", db.actor)
xr_gulag.setGulagEnemy("bar_dolg_veterans", db.actor)
xr_gulag.setGulagEnemy("bar_dolg_bunker", db.actor)
xr_gulag.setGulagEnemy("bar_dolg_zastava", db.actor)
xr_gulag.setGulagEnemy("bar_dolg_zastava_2", db.actor)
xr_gulag.setGulagEnemy("bar_visitors", db.actor)
return
end
if has_alife_info("bar_dolg_territory_2_hit") then
db.actor:give_info_portion("bar_territory_nodolg_2_hit")
news_manager.send_tip(actor, "bar_territory_nodolg_2_hit", nil, "dolg", nil, 507)
xr_gulag.setGulagEnemy("bar_dolg_general", db.actor)
xr_gulag.setGulagEnemy("bar_dolg_veterans", db.actor)
xr_gulag.setGulagEnemy("bar_dolg_bunker", db.actor)
xr_gulag.setGulagEnemy("bar_dolg_zastava", db.actor)
xr_gulag.setGulagEnemy("bar_dolg_zastava_2", db.actor)
xr_gulag.setGulagEnemy("bar_visitors", db.actor)
return
end
if has_alife_info("bar_dolg_territory_1_hit") then
db.actor:give_info_portion("bar_territory_nodolg_1_hit")
news_manager.send_tip(actor, "bar_territory_nodolg_1_hit", nil, "dolg", nil, 507)
return
end
end
end
return
end
Andate al file config\scripts\bar_territory_zone.ltx
troverete un lunga riga che inizia consostituitela completamente con questa:Codice:territory_hit = {-bar_dolg_territory_1_hit
salvate e chiudete il file.Codice:territory_hit = {-bar_dolg_territory_1_hit -bar_arena_fight_begin -bar_arena_fight} %+set_allarm_1 =bar_territory_logic%, {-bar_dolg_territory_2_hit -bar_arena_fight_begin -bar_arena_fight} %+set_allarm_2 =bar_territory_logic%, {-bar_dolg_territory_3_hit -bar_arena_fight_begin -bar_arena_fight} %+set_allarm_3 =bar_territory_logic%
Andate in config\gameplay\info_l07rostok.xml e in uno spazio vuoto inserite queste righe:
Credo non ci sia altro modo se non questo per raggiungere i nostri scopi, spero davvero che non ci siano dei CTD e se non è troppo vi chiederei di avviare una nuova partita per sicurezza perchè alcune "cose" dei save attuali potrebbe andare in conflitto con le nuove funzioni.Codice:<info_portion id="set_allarm_1"></info_portion>
<info_portion id="set_allarm_2"></info_portion>
<info_portion id="set_allarm_3"></info_portion>
<info_portion id="deactive_allarm_1">
<disable>set_allarm_1</disable>
</info_portion>
<info_portion id="deactive_allarm_2">
<disable>set_allarm_2</disable>
</info_portion>
<info_portion id="deactive_allarm_3">
<disable>set_allarm_3</disable>
</info_portion>
Per "vanilla" intendi che non sono stati modificati??
Onestamente non avrebbe logica trovare dei file non modificati in gamedata,:look:.
Comunque ho aggiornato il post precedente, spero funzioni adesso
---------------
Griph io vorrei inserire un nuovo png al bar ma se come posso inserire nuove sezioni senza problemi nel file dedicato al livello dell' all.spawn??
Per capirci, per esempio, tra un oggetto e l'altro con numero di sezione diversi ma consecutivi come [3268] e [3269]?
Esatto. Ora provo a eseguire le ultime modifiche che hai suggerito e a ricominciare con una nuova partita: il fatto che si possa partire fin da subito in freeplay e procedere rapidamente verso il Bar col teletrasporto dello ZRP dovrebbe facilitare e velocizzare le cose. Appena ho novità ti avviso, grazie mille ancora!
So che sei impegnato con Lost Alpha (lo aspetto con impazienza) quindi ti capisco.
Se dovesse venirti in mente una soluzione fammela sapere perchè non so veramente più cosa fare.
Ho provato a mettere in system.ltx tutte i valori di "remove_time" su 1 ed aspettare, ma niente.
Per curiosità ho provato a misurare il tempo che impiego a superare il primo ponte nella base dei Freedom: 4 minuti x(
Dadox se ti destreggi bene con i file .ltx potresti, temporaneamente, portare il peso delle armi che si trovano li nel gioco a 0.0 così che potresti portartene un bel pò al barista.
TI escono pure un bel pò di quattrini:jfs2:
Oppure se semplicemente vuoi disfartene puoi andare in script\bind_stalker.script,
sotto questa riga:
inserisci questa parte di codiceCodice:function actor_binder:on_item_take(obj)
Adesso fai attenzione, in teoria ogni arma che adesso raccogli da terra viene eliminata dal game, quindi ora vai subito ai magazzini e droppa tutto, come prenderai le armi esse verranno cancellate.Codice:local obj_id = alife():object(obj:id())
if obj_id and isWeapon(obj) then
alife():release(obj_id, true)
end
Una volta che ti sarai liberato di tutte le armi, salva, esci dal gioco, torna in bind_stalker.script cancella le righe che avevi aggiunto, salva il file e tutto dovrebbe tornare come prima.
Darimar per cortesia mi puoi dire che mod stai usando??
Così effettuo le prove di persona, almeno cerco di fare del mio meglio aspettando "Lo specialista":).
Questo è il mod "liscio"
http://www.moddb.com/mods/stalker-co...2009/downloads :sisi:
Ci ho sovrascritto il FW 1.0:
http://www.gsc-game.com/main.php?t=c...6864&sec_id=16
http://stalker.filefront.com/file/Faction_Wars;97459
E ho sostituito l'all.spawn con quello reso compatibile con lo ZRP:
http://gsc-game.com/main.php?t=commu...&page=1#304992
Grazie infinite!
La complete è 1.4.4? cioè l'ultima??
Esatto.
Il .exe è autoinstallante (molto comodo), altrimenti c'è il downloand subito sotto che permette l'installazione manuale.
Dannazione, non riesco a far funzionare la mod.
Qualcosa che mai mi è successo, il gioco non si avvia e ho un CTD appena aperto il game, prima della comparsa del menu.:sad:
Ca... vorrei aiutarvi Darimar ma ho bisogno di vedere personalmente gli effetti della modifica, accidenti:muroblu:
----
Comunque anche se alla cieca ti propongo un altra soluzione sempre se te la senti ancora:
in xr_effects.script
in bind_monster.scriptCodice:function get_community(npc)
if level.name() == "l05_bar" then
if npc and IsStalker(npc) then
if (npc:relation(db.actor) == game_object.enemy) and
(npc:character_community() == "bandit" or
npc:character_community() == "freedom" or
npc:character_community() == "zombied" or
npc:character_community() == "military" or
npc:character_community() == "killer") then
if has_alife_info("set_allarm_1") then
db.actor:disable_info_portion("set_allarm_1")
elseif has_alife_info("set_allarm_2") then
db.actor:disable_info_portion("set_allarm_2")
elseif has_alife_info("set_allarm_3") then
db.actor:disable_info_portion("set_allarm_3")
end
else
if has_alife_info("set_allarm_1") then
db.actor:give_info_portion("bar_dolg_territory_1_hit")
elseif has_alife_info("set_allarm_2") then
db.actor:give_info_portion("bar_dolg_territory_2_hit")
elseif has_alife_info("set_allarm_3") then
db.actor:give_info_portion("bar_dolg_territory_3_hit")
end
end
end
end
end
in config\scripts\bar_territory.ltxCodice:xr_effects.get_community(self.object)
sostituire completamente il contenuto con questo:
in config\gameplay\info_l07rostok.xml sostituire le vecchie righeCodice:[logic]
active = sr_territory@outside
[sr_territory@outside]
on_actor_inside = sr_territory@inside
[sr_territory@inside]
on_actor_outside = sr_territory@outside
territory_hit = {-bar_dolg_territory_1_hit -bar_arena_fight_begin -bar_arena_fight} %+set_allarm_1 =bar_territory_logic%, {-bar_dolg_territory_2_hit -bar_arena_fight_begin -bar_arena_fight} %+set_allarm_2 =bar_territory_logic%, {-bar_dolg_territory_3_hit -bar_arena_fight_begin -bar_arena_fight} %+set_allarm_3 =bar_territory_logic%
territory_death = {-bar_dolg_territory_kill -bar_arena_fight_begin -bar_arena_fight} %+bar_dolg_territory_kill =bar_territory_logic%
inserite con queste:Codice:<info_portion id="set_allarm_1"></info_portion>
<info_portion id="set_allarm_2"></info_portion>
<info_portion id="set_allarm_3"></info_portion>
<info_portion id="deactive_allarm_1">
<disable>set_allarm_1</disable>
</info_portion>
<info_portion id="deactive_allarm_2">
<disable>set_allarm_2</disable>
</info_portion>
<info_portion id="deactive_allarm_3">
<disable>set_allarm_3</disable>
</info_portion>
salva tutto e prova. Dopo questa non so davvero più come aiutarti. Spero davvero non ci siano più problemi perchè mi dispiacerebbe averti fatto fare tutto questo casino per poi avere solo problemi.Codice:<info_portion id="set_allarm_1"></info_portion>
<info_portion id="set_allarm_2"></info_portion>
<info_portion id="set_allarm_3"></info_portion>
Agg.:
Darimar nella documentazione della Mod Complete, tra i fix di Bardak ho trovato questi righi:
Che quindi in teoria starebbe a significare che al bar i nemici li puoi uccidere senza problemi.Codice:5) Fixed the problem when player becomes an enemy to everybody if
he/she kills the stalker from the hostile faction in the Bar location.
Onestamente, se puoi, io ti consiglio di provare il complete da liscio e vedere se al bar il realmente non ti diventano nemici se uccidi un nemico.
Scusa la banalità del suggerimento: hai installato il language-pack ITA (Il Complete nasce "ENG" e per renderlo compatibile con la versione ITA occorre smanettare con il localization.ltx oppure installare l'add-on aggiuntivo)?
http://www.moddb.com/mods/stalker-co...l-localization
E' che in versione "liscia" è molto molto molto improbabile beccare un nemico al Bar. A meno di non joinare una determinata Fazione (es.: Mercenari) e poi provare a uccidere qualche nemico (es.: un Solitario): anche in questo caso l'intero Bar entra in allarme.
Grazie per il suggerimento ma sono risucito risolverlo in un altro modo che in effetti è banale: ho lasciato che i freedom raccogliessero automaticamente tutti gli oggetti droppati dallo Spilorcio (ci hanno messo 1 ora circa), et voilà, rallentantamenti spariti.
Chissà perchè non mi era venuto in mente prima. :lol:
Magari proprio perchè troppo banale non l'avevo fatto:facepalm:. Ora funge bene, ma mi chiedo quando vedrò un bandito o un freedom al bar??
Ps: Ho inserito le righe del mio codice aggiornato e il gioco va bene quindi non resta che aspettare
Felice per te, ma chissà quanto peseranno ora quei PNG:jfs2: