Aiuto per script

auc162
00venerdì 24 agosto 2012 00:20
Ciao, devo far scomparire un personaggio e farlo ricomparire dal turno 32 in poi, quando si verificano certe condizioni. L'ho scritto così, ma il personaggio ricompare immediatamente. Cosa sbaglio?


monitor_event FactionTurnStart FactionType portugal
send_character_off_map Harrold Hardyng
terminate_monitor
end_monitor

monitor_event FactionTurnStart FactionType portugal
and I_SettlementOwner The_Eyrie = portugal
and I_TurnNumber > 32
and not I_CharacterExists Robert Arryn
spawn_army
faction portugal
character Harrold Hardyng, named character, x 123, y 244, battle_model northern_general_X
traits Biografia_Harrold_Hardyng 1, GoodCommander 1, Combattente 1
ancillaries eyrie
army
unit NE Late Bodyguard_X exp 2 armour 0 weapon_lvl 0
terminate_monitor
end_monitor
The Housekeeper
00sabato 25 agosto 2012 20:40
devi usare i label

esempio:

;;;;;12) RANSOM SCRIPT

;;;;; Marganus_II

declare_counter Marganus_II
set_counter Marganus_II 0

monitor_event PostBattle IsGeneral
and not WonBattle
and FactionIsLocal
;and BattleSuccess >= clear
;and RandomPercent > 50
and I_CharacterExists 1Marganus_II
and Trait Biografia_Marganus = 1
send_character_off_map 1Marganus_II
add_events
event counter Marganus_II_accepted
event counter Marganus_II_declined
date 0
end_add_events
historic_event Marganus_II true
set_counter Marganus_II 1
terminate_monitor
end_monitor

monitor_conditions I_EventCounter Marganus_II_accepted = 1
console_command add_money -10000
spawn_army
faction england
character Marganus_II, named character, x 57, y 234, label 1Marganus_II
unit Britons_Bodyguard exp 0 armour 0 weapon_lvl 0
end
set_counter Marganus_II 0
historic_event Marganus_II_freedom
terminate_monitor
end_monitor

monitor_event FactionTurnEnd FactionIsLocal
and I_CompareCounter Marganus_II = 1
generate_random_counter ransom_accept 0 9
if I_EventCounter ransom_accept = 9
spawn_army
faction england
character Marganus_II, named character, x 57, y 234, label 1Marganus_II
unit Britons_Bodyguard exp 0 armour 0 weapon_lvl 0
end
historic_event Marganus_II_freedom
set_counter Marganus_II 0
end_if
if I_EventCounter ransom_accept = 8
historic_event Marganus_II true
end_if
if I_EventCounter ransom_accept = 0
spawn_army
faction england
character Marganus_II, named character, x 57, y 234, label 1Marganus_II
unit Britons_Bodyguard exp 0 armour 0 weapon_lvl 0
end
kill_character 1Marganus_II
historic_event Marganus_II_execution
set_counter Marganus_II 0
end_if
end_monitor





ricorda di mettere il label anche nel descr_strat!
metti un numero qualsiasi all'interno del label (nell'esempio 1Marganus_II) per evitare crash





auc162
00lunedì 27 agosto 2012 00:18
E' la prima volta che mi "imbatto" in una label. Mi spiegheresti perché in questo script è necessario inserire una label e più in generale quando si utilizzano? Grazie.
The Housekeeper
00lunedì 27 agosto 2012 10:26
In generale i label permettono di evitare che lo script venga applicato ad altri personaggi omonimi,
inoltre aggirano il problema di alcune condizioni che non supportano il cognome, ad es. send_character_offmap funziona solo se metti solo il nome senza cognome,
infine permettono di far ricomparire il personaggio esattamente com'era al momento della sparizione (tratti, ancillari ecc.)
auc162
00lunedì 27 agosto 2012 11:28
Ok, proverò, grazie.
auc162
00lunedì 3 settembre 2012 23:38
Sembra così facile, eppure non mi funziona lo script:

monitor_event FactionTurnStart FactionType milan
I_TurnNumber = 1
send_character_off_map 1Willas_Tyrell
terminate_monitor
end_monitor

Ho messo anche il label nel descr_strat, ma perché non va !?
The Housekeeper
00martedì 4 settembre 2012 12:06
Re:
auc162, 03/09/2012 23.38:

Sembra così facile, eppure non mi funziona lo script:

monitor_event FactionTurnStart FactionType milan
I_TurnNumber = 1
send_character_off_map 1Willas_Tyrell
terminate_monitor
end_monitor

Ho messo anche il label nel descr_strat, ma perché non va !?




metti "and" davanti a I_TurnNumber
auc162
00domenica 9 settembre 2012 02:18
Allora, sono riuscito a fare funzionare il primo script usando una label:

monitor_event FactionTurnStart FactionType portugal
send_character_off_map 1Harrold_Hardyng
terminate_monitor
end_monitor

Mentre non funziona il secondo:

monitor_event FactionTurnStart FactionType portugal
and I_SettlementOwner The_Eyrie = portugal
and I_TurnNumber > 2
and not I_CharacterExists Robert Arryn
spawn_army
faction portugal
character Harrold Hardyng, named character, x 123, y 244, label 1Harrold_Hardyng, battle_model northern_general_X
traits Biografia_Harrold_Hardyng 1, GoodCommander 1, Combattente 1
ancillaries eyrie
unit NE Late Bodyguard_X exp 2 armour 0 weapon_lvl 0
terminate_monitor
end_monitor

In questo caso, anzicché arrivare a partire dal secondo turno, il personaggio Harrold Hardyng ricompare immediatamente, alla partenza del gioco. Idee? Grazie.
The Housekeeper
00domenica 9 settembre 2012 11:14

Probabilmente c'è un errore nel secondo script che costringe il gioco a ignorare l'intero file, quindi anche il primo script non viene letto (quindi non è che il personaggio scompare e riappare subito, semplicemente non scompare proprio!).

Il file log segnala qualcosa? In questi casi dovrebbe indicarti esattamente dov'è l'errore.

Ipotesi:
se non ricordo male non puoi dare l'ancillare come hai fatto tu, infatti nel campaign_script non è consentito (a differenza del descr_strat). Dovresti usare il comando:

console_command give_ancillary 1Harrold_Hardyng eyrie


auc162
00domenica 9 settembre 2012 23:30
Che dire, come al solito avevi ragione! Il bello è che in tutti gli altri script avevo assegnato tratti ed ancillari tramite il consolle_command e qui me ne sono dimenticato [SM=g27978]
Questa è la versione 'lo-fi' del Forum Per visualizzare la versione completa clicca qui
Tutti gli orari sono GMT+01:00. Adesso sono le 12:24.
Copyright © 2000-2024 FFZ srl - www.freeforumzone.com