12/05/2012 09:53 |
|
| | | OFFLINE | Post: 2.047 | Registrato il: 07/11/2008
| Città: PATTI | Età: 33 | Principe | |
|
The Housekeeper, 12/05/2012 09.31:
in pratica fai apparire un'armatona ribelle, fai assediare la città (magari costringendo il giocatore a fare risoluzione automatica, mi pare si possa fare), e poi col comando "capture_settlement" la riconquisti automaticamente (anche se l'armata ribelle mi sa che rimanga lì vicino, e poi bisogna considerare gli edifici danneggiati), script da ripetere per ogni insediamento "speciale". Si può fare, un pò macchinoso...
Purtroppo la IA non sa usare gli agenti "comuni". Se noti, i rabbini (preti ribelli) non si muovono da dove appaiono, lo stesso succede con mercanti, assassini ecc.
Esatto l'idea è questa... per l'armata ribelle si potrebbe usare solo una unità e mettere console_comand auto_win attacker? e impostare che si faccia solo risoluzione automatica (non sapevo si potesse, è una gran cosa questa), dopo di che malus di bisanti (diciamo 500 bisanti?) e dopo che la "missione" è andata si fa tornare l'insediamento in mano nostra. Per gli edifici danneggiati si può fare qualcosa per evitarli?
Peccato per gli agenti eppure ricordo che nel vanilla una volta i francesi mi avevano assassinato l'erede vicino nei pressi di Parigi... avevo pensato ad una cosa simile, tipo assassini ribelli in punti strategici che facessero il lavoro sporco... ma effettiamente ho visto ad esempio i rabbini o meglio ancora il patriarca ecumenico che sta sempre fermo in costantinopoli... è davvero un peccato che non vengano sfruttati a dovere
|
|
15/05/2012 09:48 |
|
| | | OFFLINE | Post: 2.047 | Registrato il: 07/11/2008
| Città: PATTI | Età: 33 | Principe | |
|
Qual'è la condizione o comando per far tornare l'insediamento in mano nostra?
Lo script dovrebbe essere questo come suggerito da Glauco:
monitor_event SettlementSelected FactionType england
and FactionIsLocal
and I_SettlementSelected Rome
add_events
event counter General_kill_accepted
event counter General_kill_declined
date 0
end_add_events
historic_event General_kill true
end_monitor
monitor_event FactionTurnEnd FactionType england
and I_EventCounter General_kill_accepted = 1
spawn_army
faction slave
character Andrea, named character, age 39, x 128, y 160
traits GoodRiskyAttacker 1
unit SE Bodyguard exp 9 armour 0 weapon_lvl 0
unit Mailed Knights exp 3 armour 0 weapon_lvl 0
unit Mailed Knights exp 3 armour 0 weapon_lvl 0
unit Norman Knights exp 6 armour 0 weapon_lvl 0
sieging
siege_settlement Andrea, Rome, maintain
siege_settlement Andrea, Rome, attack
console_comand add_money -500 (per simulare il pagamento del manipolo)
terminate_monitor
end_monitor
Ho ridotto le unità dello script originale, perchè in sostanza dovrebbe rappresentare un piccolo manipolo di uomini (e non un esercito) assoldati da noi per il "lavoro sporco" e eliminato auto_attacker per dare la possibilità al geenrale di sopravviere (non tutti i tentativi andavano a buon fine XD)
Adesso manca appunto la condizione per far tornare l'insediamento in mano nostra una volta terminato tutto e mettere la risoluzione automatica.
[Modificato da Tancredi d'Altavilla 15/05/2012 09:51] |
15/05/2012 10:05 |
|
| | | OFFLINE | Post: 3.228 | Registrato il: 19/01/2009
| Principe | |
|
ci sono due modi:
console_command capture_settlement (codice insediamento)
oppure fai apparire un armata spawn.
Io consiglio il primo. |
15/05/2012 10:13 |
|
| | | OFFLINE | Post: 3.228 | Registrato il: 19/01/2009
| Principe | |
|
lo script potrebbe essere questo ad esempio
monitor_event FactionTurnStart FactionIsLocal
and I_SettlementOwner Rome = slave
and I_CharacterExists Andrea
console_command capture_settlement Rome
end_monitor |
15/05/2012 14:02 |
|
| | | OFFLINE | Post: 2.047 | Registrato il: 07/11/2008
| Città: PATTI | Età: 33 | Principe | |
|
Ottimo!
FactionTurnStart fa riferimento a quando inizia il turno oppure l'insediamento torna alla fazione nel turno stesso in cui abbiamo ammazzato il generale?
Per inserire la risoluzione automatica, cioè levare in questo caso la possibilità di combattere come si imposta? |
15/05/2012 14:47 |
|
| | | OFFLINE | Post: 3.228 | Registrato il: 19/01/2009
| Principe | |
|
Torna alla fazione al inizio del turno seguente, ma possiamo anche far partire lo script quando il giocatore fa il fine turno (FactionTurnEnd) oppure possiamo fare che lo script si attivi dopo che i ribelli conquistano la città, ma io preferisco i FactionTurn per non creare possibili conflitti (rischi che magari lo script si attivi il turno seguente, quindi secondo me conviene il FactionTurn, poi chiedi un attimo ad house).
Per la risoluzione automatica, se untilizzi il capture_settlement non ne hai bisogno, se ti riferisci al primo assedio, credo che non ci sia bisogno di mettere una condizione del genere visto che è il giocatore a decidere l' esecuzione, e non avrebbe motivo di giocare la battaglia. |
15/05/2012 14:58 |
|
| | | OFFLINE | Post: 2.047 | Registrato il: 07/11/2008
| Città: PATTI | Età: 33 | Principe | |
|
GlaucopideSophia1, 15/05/2012 14.47:
Torna alla fazione al inizio del turno seguente, ma possiamo anche far partire lo script quando il giocatore fa il fine turno (FactionTurnEnd) oppure possiamo fare che lo script si attivi dopo che i ribelli conquistano la città, ma io preferisco i FactionTurn per non creare possibili conflitti (rischi che magari lo script si attivi il turno seguente, quindi secondo me conviene il FactionTurn, poi chiedi un attimo ad house).
Per la risoluzione automatica, se untilizzi il capture_settlement non ne hai bisogno, se ti riferisci al primo assedio, credo che non ci sia bisogno di mettere una condizione del genere visto che è il giocatore a decidere l' esecuzione, e non avrebbe motivo di giocare la battaglia.
Ok allora usiamo il FactionTurn
Si mi riferivo al primo assedio, House mi aveva detto che era possibile. Sarebbe più comodo fare così, non per una questione funzionale ma più che altro per fare un lavoro più "pulito" e realistico. [Modificato da Tancredi d'Altavilla 15/05/2012 15:01] |
15/05/2012 23:03 |
|
| | | OFFLINE | Post: 2.047 | Registrato il: 07/11/2008
| Città: PATTI | Età: 33 | Principe | |
|
Spulciando il docudemons nel "ui elements" ho trovato queste stringhe:
prebattle_scroll
prebattle_fight_button
prebattle_auto_resolve_button
prebattle_withdraw_button
Si dovrebbero riferire ai bottini del "prebattaglia".
Ma ui elements cosa sarebbero? possono abilitare/disabilitare i bottoni ad esempio quelli che mi interessano della risoluzione automatica, manuale ecc.? |
16/05/2012 10:01 |
|
| | | OFFLINE | Post: 21.194 | Registrato il: 10/02/2007
| Principe | | |
|
sì sono i bottoncini della schermata pre-battaglia
In teoria sì, è possibile attivare\disattivare i bottoni col comando enable_ui\disable_ui, ad es. "disable_ui finances_button" disabilita il bottone del pannello finanziario e non ti permette di aprirlo.
Purtroppo però molti simboli elencati non funzionano (cioè la loro ui_element non viene riconosciuta dal gioco), bisogna fare delle prove per ciascuno di essi...
|
16/05/2012 15:00 |
|
| | | OFFLINE | Post: 2.047 | Registrato il: 07/11/2008
| Città: PATTI | Età: 33 | Principe | |
|
The Housekeeper, 16/05/2012 10.01:
sì sono i bottoncini della schermata pre-battaglia
In teoria sì, è possibile attivare\disattivare i bottoni col comando enable_ui\disable_ui, ad es. "disable_ui finances_button" disabilita il bottone del pannello finanziario e non ti permette di aprirlo.
Purtroppo però molti simboli elencati non funzionano (cioè la loro ui_element non viene riconosciuta dal gioco), bisogna fare delle prove per ciascuno di essi...
Mhm, quindi nello script dovrei scrivere ad esempio disable_ui prebattle_fight_button... ok proviamo!
ps: scordavo che per far attaccare l'armata serve serve almeno un pezzo di artiglieria per aprire le porte, non ricordo ad esempio come si mettono le catapulte nello script, ora do un occhiata e vedo [Modificato da Tancredi d'Altavilla 16/05/2012 15:02] |
16/05/2012 15:17 |
|
| | | OFFLINE | Post: 21.194 | Registrato il: 10/02/2007
| Principe | | |
|
come mi sembrava di ricordare, il comando non funziona
avevamo già provato qui
freeforumzone.leonardo.it/discussione.aspx?idd=10048641
se si vuole forzare il giocatore alla risoluzione automatica, bisogna sfruttare il sistema dei "clic simulati"
www.twcenter.net/forums/showthread.php?t=455375 |
16/05/2012 15:28 |
|
| | | OFFLINE | Post: 2.047 | Registrato il: 07/11/2008
| Città: PATTI | Età: 33 | Principe | |
|
Ottimo! allora è possibile! così dovrebbe andare
Quindi lo script dovrebbe venire così
monitor_event SettlementSelected FactionType england
and FactionIsLocal
and I_SettlementSelected Rome
add_events
event counter General_kill_accepted
event counter General_kill_declined
date 0
end_add_events
historic_event General_kill true
select_ui_element prebattle_auto_resolve_button (?)
simulate_mouse_click lclick_down (?)
simulate_mouse_click lclick_up (?)
end_monitor
monitor_event FactionTurnEnd FactionType england
and I_EventCounter General_kill_accepted = 1
spawn_army
faction slave
character Andrea, named character, age 39, x 128, y 160
traits GoodRiskyAttacker 1
unit Catapult exp 3 armour 2 weapon_lvl 1 (ho aggiunto adesos per aprire le porte)
unit SE Bodyguard exp 9 armour 0 weapon_lvl 0
unit Mailed Knights exp 3 armour 0 weapon_lvl 0
unit Mailed Knights exp 3 armour 0 weapon_lvl 0
unit Norman Knights exp 6 armour 0 weapon_lvl 0
sieging
siege_settlement Andrea, Rome, maintain
siege_settlement Andrea, Rome, attack
console_comand add_money -500 (per simulare il pagamento del manipolo)
terminate_monitor
end_monitor
Se è corretto lo metto in pratica e provo |
16/05/2012 18:05 |
|
| | | OFFLINE | Post: 2.047 | Registrato il: 07/11/2008
| Città: PATTI | Età: 33 | Principe | |
|
Non riesco a farlo funzionare.
Anzi, inserendo gli script spariscono tutti (video di incoronazione inglese, lo script di "benvenuto" e il feudal ad esempio, quelli che si notano subito).
Nel campaign_script ho scritto così:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;General_kill
monitor_event SettlementSelected FactionType england
and FactionIsLocal
and I_SettlementSelected Exeter
add_events
event counter General_kill_accepted
event counter General_kill_declined
date 0
end_add_events
historic_event General_kill true
select_ui_element prebattle_auto_resolve_button
simulate_mouse_click lclick_down
simulate_mouse_click lclick_up
end_monitor
monitor_event FactionTurnEnd FactionType england
and I_EventCounter General_kill_accepted = 1
spawn_army
faction slave
character Andrea, named character, age 39, x 128, y 160
traits GoodRiskyAttacker 1
unit Catapult exp 3 armour 2 weapon_lvl 1
unit SE Bodyguard exp 9 armour 0 weapon_lvl 0
unit Mailed Knights exp 3 armour 0 weapon_lvl 0
unit Mailed Knights exp 3 armour 0 weapon_lvl 0
unit Norman Knights exp 6 armour 0 weapon_lvl 0
sieging
siege_settlement Andrea, Exeter, maintain
siege_settlement Andrea, Exeter, attack
console_comand add_money -500
terminate_monitor
end_monitor
monitor_event FactionTurnStart FactionIsLocal
and I_SettlementOwner Exeter = slave
and I_CharacterExists Andrea
console_command capture_settlement york
end_monitor
Nel historic_event ho messo questo:
{GENERAL_KILL_BODY}Mio signore, in questo insediamento si è ritirato uno dei vostri generali che ha osato sfidare la vostra autorità, ogni sua azione è un insulto alla vostra corona! Volete assoldare un manipolo di uomini e dare loro loro l'ordine di attaccare?
{GENERAL_KILL_TITLE}Assassina Generale
dov'è l'erroe? |
16/05/2012 19:21 |
|
| | | OFFLINE | Post: 3.228 | Registrato il: 19/01/2009
| Principe | |
|
Per farlo funzionare l' ho fatto così:
monitor_event SettlementSelected FactionType england
and FactionIsLocal
and I_SettlementSelected Exeter
add_events
event counter General_kill_accepted
event counter General_kill_declined
date 0
end_add_events
historic_event General_kill true
select_ui_element prebattle_auto_resolve_button
simulate_mouse_click lclick_down
simulate_mouse_click lclick_up
end_monitor
monitor_conditions I_EventCounter General_kill_accepted = 1
and I_SettlementOwner Exeter = england
spawn_army
faction slave
character Andrea, named character, age 39, x 128, y 160
traits GoodRiskyAttacker 1
unit SE Bodyguard exp 9 armour 0 weapon_lvl 0
unit Mailed Knights exp 3 armour 0 weapon_lvl 0
unit Mailed Knights exp 3 armour 0 weapon_lvl 0
unit Norman Knights exp 6 armour 0 weapon_lvl 0
sieging
siege_settlement Andrea, Exeter, maintain
siege_settlement Andrea, Exeter, attack
terminate_monitor
end_monitor
monitor_conditions FactionTurnStart FactionIsLocal
and I_EventCounter General_kill_accepted = 1
and I_LocalFaction england
add_money england -500
terminate_monitor
end_monitor
monitor_event FactionTurnStart FactionIsLocal
and I_SettlementOwner Exeter = slave
and I_CharacterExists Andrea
console_command capture_settlement Exeter
end_monitor
Purtroppo su mtwi non trovo editor, ci sarebbero degli spazi, ma il forum gli toglie automaticamente. |
16/05/2012 19:26 |
|
| | | OFFLINE | Post: 2.047 | Registrato il: 07/11/2008
| Città: PATTI | Età: 33 | Principe | |
|
Grandissimo Glauco, grazie!!
Adesso provo
Che intendi per spazi?
Inserisco nel campaign_script e vedo che succede
[Modificato da Tancredi d'Altavilla 16/05/2012 19:28] |
16/05/2012 19:29 |
|
| | | OFFLINE | Post: 3.228 | Registrato il: 19/01/2009
| Principe | |
|
ecco:
Comunque guardavo, è fastidioso che ogni volta che clicchi sulla città ti compare il messaggio, potresti legarlo ad un tasto più che alla città, ad esempio ai consigli per gli edifici (si potrebbe cambiare appositamente ui). |
16/05/2012 19:52 |
|
| | | OFFLINE | Post: 2.047 | Registrato il: 07/11/2008
| Città: PATTI | Età: 33 | Principe | |
|
Grandissimo, ha funzionato!!!!
Pensavo la stessa cosa, infatti pensavo di legarlo alla lente di ingrandimento, pensavo che funzionasse così invece si attiva ogni volta che clicchi sull'insediamento.
Un buon inizio comunque, ora va perfezionato
Si potrebbe usare come dicevo la lente di ingrandimento dell'insediamento (come per gli eventi interattivi che riguardano gli agenti e i generali come i tornei)... oppure per lasciarlo libero non sarebbe male usare la lente di ingrandimento della taverna (come se il manipolo si reclutasse da lì)
Aggiungerei anche un altro historic_event che annuncia che la missione è stata compiuta, e magari un altro malus di 500 fiorini (come se i primi fossero come anticipo o come costo per averli assoldati e gli altri 500 per aver compiuti la missione. Che ne dici?
Non funziona (almeno da me) la risoluzione automatica, forse ho sbagliato qualcosa. E se clicco su bandiera bianca il generale si ritira dalla battaglia e finisce lì, è libero anche di uscire dall'insediamento. E il bello è che l'armata ribelle non si vede e che nell'albero genealogico del generale che ho fatto fuori risulta "morto nel suo letto"
Siamo sulla buona strada, qualche modifica e sarà perfetto XD
ps: ok adesos ho capito che intgendevi per spazi [Modificato da Tancredi d'Altavilla 16/05/2012 19:59] |
16/05/2012 20:28 |
|
| | | OFFLINE | Post: 3.228 | Registrato il: 19/01/2009
| Principe | |
|
buona idea i costi in più tempi, e anche il messaggio di riuscita missione |
16/05/2012 21:02 |
|
| | | OFFLINE | Post: 2.047 | Registrato il: 07/11/2008
| Città: PATTI | Età: 33 | Principe | |
|
Dimenticavo, vorrei levare il FactionType così possono utilizzare tutte le fazioni... ad esempio se la francia conquista Exter (città che abbiamo usato per l'esperimento) possono usarla per uccidere i prorpi generali
per inserire il secondo evento e il secondo malus devo aggiungere un altro script o aggiungo le stringhe a quelli già esistenti? |
16/05/2012 21:14 |
|
| | | OFFLINE | Post: 3.228 | Registrato il: 19/01/2009
| Principe | |
|
meglio aggiungere un altro script. |
|