Medieval 2 Total War
Discussione generale sul videogioco Medieval 2 : Total War
Cattedra
Guide & Tutorial a cura dei maggiori esperti di modding
Medieval 2 Total War Cantiere
Progettazione di Mod relativi al videogame Medieval 2 Total War

 

 

Nuova Discussione
Rispondi
 
Stampa | Notifica email    
Autore

Aiuto per script

Ultimo Aggiornamento: 09/09/2012 23:30
24/08/2012 00:20
 
Email
 
Scheda Utente
 
Modifica
 
Cancella
 
Quota
OFFLINE
Post: 2.101
Registrato il: 14/12/2009
Città: MILANO
Età: 52
Principe

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
25/08/2012 20:40
 
Email
 
Scheda Utente
 
Modifica
 
Cancella
 
Quota
OFFLINE
Post: 21.194
Registrato il: 10/02/2007
Principe

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





[Modificato da The Housekeeper 25/08/2012 20:43]








27/08/2012 00:18
 
Email
 
Scheda Utente
 
Modifica
 
Cancella
 
Quota
OFFLINE
Post: 2.101
Registrato il: 14/12/2009
Città: MILANO
Età: 52
Principe

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.
27/08/2012 10:26
 
Email
 
Scheda Utente
 
Modifica
 
Cancella
 
Quota
OFFLINE
Post: 21.194
Registrato il: 10/02/2007
Principe

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.)
[Modificato da The Housekeeper 27/08/2012 10:27]








27/08/2012 11:28
 
Email
 
Scheda Utente
 
Modifica
 
Cancella
 
Quota
OFFLINE
Post: 2.101
Registrato il: 14/12/2009
Città: MILANO
Età: 52
Principe

Ok, proverò, grazie.
03/09/2012 23:38
 
Email
 
Scheda Utente
 
Modifica
 
Cancella
 
Quota
OFFLINE
Post: 2.101
Registrato il: 14/12/2009
Città: MILANO
Età: 52
Principe

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 !?
04/09/2012 12:06
 
Email
 
Scheda Utente
 
Modifica
 
Cancella
 
Quota
OFFLINE
Post: 21.194
Registrato il: 10/02/2007
Principe

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








09/09/2012 02:18
 
Email
 
Scheda Utente
 
Modifica
 
Cancella
 
Quota
OFFLINE
Post: 2.101
Registrato il: 14/12/2009
Città: MILANO
Età: 52
Principe

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.
09/09/2012 11:14
 
Email
 
Scheda Utente
 
Modifica
 
Cancella
 
Quota
OFFLINE
Post: 21.194
Registrato il: 10/02/2007
Principe


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










09/09/2012 23:30
 
Email
 
Scheda Utente
 
Modifica
 
Cancella
 
Quota
OFFLINE
Post: 2.101
Registrato il: 14/12/2009
Città: MILANO
Età: 52
Principe

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]
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
Rispondi

Feed | Forum | Album | Utenti | Cerca | Login | Registrati | Amministra
Crea forum gratis, gestisci la tua comunità! Iscriviti a FreeForumZone
FreeForumZone [v.6.1] - Leggendo la pagina si accettano regolamento e privacy
Tutti gli orari sono GMT+01:00. Adesso sono le 07:32. Versione: Stampabile | Mobile
Copyright © 2000-2024 FFZ srl - www.freeforumzone.com