Stellar Blade Un'esclusiva PS5 che sta facendo discutere per l'eccessiva bellezza della protagonista. Vieni a parlarne su Award & Oscar!
 
Pagina precedente | 1 | Pagina successiva

Coding & Scripting

Ultimo Aggiornamento: 06/09/2017 14:36
Autore
Stampa | Notifica email    
OFFLINE
Post: 646
Città: FIRENZE
Età: 39
Sesso: Maschile
24/05/2016 21:31

Idee e pezzi di script in lavorazione
Test da fare:

Manipolare le elezioni papali.
Metodo 1. Ratio: check alla morte del papa; se ha un tratto biografico x (e.g. EugenioIV) allora spawna subito un cardinale con un tratto biografico y (e.g. NiccoloV) e un boost di Piety in modo da farlo eleggere "truccando" le elezioni papali.
Caveat: assicurarsi che esista la fazione per la quale si spawna il cardinale (spain=Siena). Forse risolvibile con if (se esiste siena) spawn... end_if; e if (se siena è caduta) spawn_character slave .... end_if

monitor_event CeasedFactionLeader FactionType papal_states
              and FactionLeaderTrait EugenioIV = 1 
              spawn_character spain, Niccolo, priest, age 50, x 200,	y 200
              console_command give_trait Niccolo NiccoloVParentucelli 1
              console_command give_trait Niccolo NextPope 1
terminate_monitor
end_monitor

(da testare)
[Modificato da Mylae 24/05/2016 21:46]
_____________________________________________

È pericoloso porre in modo sbagliato questioni sostanzialmente giuste.
Indro Montanelli
OFFLINE
Post: 454
Città: PESCIA
Età: 31
Sesso: Maschile
25/05/2016 12:59

Interessante
OFFLINE
Post: 646
Città: FIRENZE
Età: 39
Sesso: Maschile
25/05/2016 15:11

Conquista guidata
Rovistando il forum ho trovato una piccola scoperta di Housekeeper MOLTO interessante: in determinate condizioni si può dare la missione di conquistare una città. Appare tra le missioni normali.

ratio: check all'inizio del turno x, ordine di creare una missione.
caveat: nell'avanzare del gioco la fazione x potrebbe aver già preso possesso dell'insediamento, quindi l'evento dovrà attivarsi solo se la città non sarà in nostro possesso.

monitor_event FactionTurnStart FactionIsLocal 
              and I_TurnNumber = 1 
              if not I_SettlementOwner Napoli = normans
              create_mission council_take_settlement normans Napoli 
              end_if
terminate_monitor
end_monitor


TESTATA, FUNZIONA
[Modificato da Mylae 06/09/2017 10:30]
_____________________________________________

È pericoloso porre in modo sbagliato questioni sostanzialmente giuste.
Indro Montanelli
OFFLINE
Post: 646
Città: FIRENZE
Età: 39
Sesso: Maschile
25/05/2016 15:55

Ribellioni e territori indipendenti
Visto che determinate fazioni sono fondamentalmente delle città-stato, se al termine del turno non sono della fazione-madre (e quindi sono state conquistate da terzi o si sono ribellate) è da pensare che siano più turbolente, specialmente se non hanno una guarnigione abbastanza numerosa.


Ratio: check a fine turno se Firenze non è in mano ai fiorentini e non è sotto assedio; date queste condizioni, allora se la lealtà dell'insediamento è minore di disillusioned (scala: loyalty_revolting, loyalty_rioting, loyalty_disillusioned, loyalty_content, loyalty_happy) e se la percentuale di soldati rispetto alla popolazione è inferiore al 15%, la città si ribella.

caveat:

monitor_event FactionTurnEnd FactionIsLocal 
              and not I_SettlementOwner Firenze denmark
              and not I_SettlementUnderSiege Firenze

              if SettlementLoyaltyLevel < loyalty_disillusioned
              and GarrisonSettlementRatio < 0.15
                 add_settlement_turmoil Firenze 50
                 provoke_rebellion Firenze
              end_if

terminate_monitor
end_monitor




testato: non funziona. Il comando "provoke_rebellion" non è implementato.
[Modificato da Mylae 12/08/2016 12:39]
_____________________________________________

È pericoloso porre in modo sbagliato questioni sostanzialmente giuste.
Indro Montanelli
OFFLINE
Post: 646
Città: FIRENZE
Età: 39
Sesso: Maschile
25/05/2016 17:50

Cambio nomi delle città
script semplice, basta aggiungere una serie di nomi all'expanded.txt come segue:
{Venezia_ita}Venezia
{Venezia_ger}Venedig


caveat: Il monitor è di una condizione, quindi è sempre in attivo. Se fatto per variazione e per più città potrebbe rallentare i processi.

declare_counter GermanVenice

monitor_conditions I_SettlementOwner Venezia = hre
              and I_CompareCounter GermanVenice = 0
              set_counter GermanVenice 1
              change_settlement_name Venezia Venezia_ger
end_monitor

monitor_conditions I_SettlementOwner Venezia = venice
              and I_CompareCounter GermanVenice = 1
              set_counter GermanVenice 0
              change_settlement_name Venezia Venezia_ita
end_monitor


TESTATO, FUNZIONA
[Modificato da Mylae 06/09/2017 10:31]
_____________________________________________

È pericoloso porre in modo sbagliato questioni sostanzialmente giuste.
Indro Montanelli
OFFLINE
Post: 646
Città: FIRENZE
Età: 39
Sesso: Maschile
25/05/2016 18:37

Condottieri e reclutamenti storici
lo script è basato su quello della richiesta di crociata per edward nella campagna britannica.

Giocando con gli sforzeschi, se un personaggio (e.g. Michele Attendolo?) ha un determinato tratto (condottiere) e non è sotto assedio, ha una probabilità (30%) di ricevere un'offerta di condotta, per cui riceve un ingaggio di 5000 fiorini. Se accetta (l'AI accetta sempre) viene inviato offmap per un periodo variabile da 5 a 10 turni, durante i quali si riceve un pagamento di 1000 fiorini di mantenimento.
Nel caso in cui gli sforzeschi siano rimasti con un solo insediamento, la condotta viene richiamata dopo un turno.


	monitor_event CharacterTurnStart Trait Condottiere = 1
		and I_CompareCounter condotta_offered = 0
		and not IsUnderSiege	
		generate_random_counter	riposo_condotta 0 10
		if I_EventCounter riposo_condotta > 7
			add_events
				event	counter	condotta_invite_accepted
				event	counter	condotta_invite_declined
				event	counter	condotta_time
				event	counter edward_death_chance
	 			date	0
	 		end_add_events
			historic_event condotta_invite true
			set_counter condotta_offered 1
		
			if I_IsFactionAIControlled england
			set_event_counter condotta_invite_accepted 1
			end_if
		end_if
	end_monitor
	
	monitor_conditions I_EventCounter condotta_invite_accepted = 1
		send_character_off_map [label of Condottiere unit]
		add_money 5000
		set_counter condotta_in_corso 1
		generate_random_counter	condotta_time 5 10
		terminate_monitor
	end_monitor
	
	monitor_event FactionTurnStart FactionType england
		and	I_CompareCounter condotta_in_corso = 1
		inc_event_counter condotta_time 1
		add_money 1000
		if I_EventCounter condotta_time >= 15
			set_counter condotta_ready_to_return 1
			terminate_monitor
		end_if
		
		if I_NumberOfSettlements england = 1
			and I_EventCounter condotta_time >= 11
			set_counter condotta_ready_to_return 1
			terminate_monitor
		end_if
	end_monitor
	
	monitor_event CeasedFactionLeader FactionType england
		and I_CompareCounter condotta_in_corso = 1
		set_counter condotta_leader_dead 1
		terminate_monitor
	end_monitor
	
	monitor_conditions I_CompareCounter condotta_ready_to_return = 1
		generate_random_counter	condotta_time 5 10
		if I_EventCounter condotta_death_chance < 8
			historic_event condotta_returns
			if I_CompareCounter condotta_leader_dead = 1
			spawn_army 
				faction england
				character	random_name, named character, x 108, y 32, label [label of Condottiere unit]
				traits Condottiere 1
				unit		SE Late Bodyguard			exp 0 armour 0 weapon_lvl 0
				[...]
			end
			end_if
			
			if I_CompareCounter condotta_leader_dead = 0
			spawn_army 
				faction england
				character	[condottiere_name], named character, x 108, y 32, label [label of Condottiere unit]
				traits Condottiere 1
				unit		SE Late Bodyguard			exp 0 armour 0 weapon_lvl 0
				[...]
			end
			end_if
		end_if
		
		if I_EventCounter condotta_death_chance >= 8
			historic_event condotta_dies_on_leave
			spawn_army 
				faction england
				character	random_name, named character, x 108, y 32, label [label of Condottiere unit]
				traits Condottiere 1
				unit		SE Late Bodyguard			exp 0 armour 0 weapon_lvl 0
				[...]
			end
		end_if
		set_counter condotta_in_corso 0
		terminate_monitor
	
	end_monitor
	


(da testare)
[Modificato da Mylae 26/05/2016 17:31]
_____________________________________________

È pericoloso porre in modo sbagliato questioni sostanzialmente giuste.
Indro Montanelli
OFFLINE
Post: 646
Città: FIRENZE
Età: 39
Sesso: Maschile
25/05/2016 19:17

Reclutamento mercenari
Ci sono alcune fazioni/casate che storicamente hanno provveduto armate mercenarie nel nostro periodo. Nello specifico: Montefeltro, Malatesta, Sforzeschi, Bracceschi, Gonzaga, ecc.

rivedendo la campagna nuovo mondo c'è uno script interessante, che consente alla Spagna di reclutare unità mercenarie in base alle alleanze con varie fazioni.

Si può convertire lo stesso script in uno che permetta, ad esempio, a Firenze, Milano, Venezia, Papa, Aragonesi di reclutare condotte mercenarie in base alle proprie alleanze. Lo script è semplice, e si basa sulla presenza dei counter_event per permettere, limitare o impedire il reclutamento sia nel pool delle unità mercenarie, sia in quello delle unità normali.

Il reclutamento si interrompe al rompersi dell'alleanza - sia che si sia neutrali, sia altrimenti.


	monitor_event FactionTurnStart FactionType denmark
		and I_EventCounter Firenze_allied_Bracceschi == 0
		and DiplomaticStanceFromFaction saxons = Allied
		
		add_events
			event	counter	Firenze_allied_Bracceschi 
	   		date	0
	 	end_add_events

	end_monitor

	monitor_event FactionTurnStart FactionType denmark
		and I_EventCounter Firenze_allied_Bracceschi == 1
		and DiplomaticStanceFromFaction saxons > Allied
		
		set_event_counter Firenze_allied_Bracceschi 0

	end_monitor


e in descr_mercenaries.txt
pool Bracceschi
	regions [nome regione 1] [nome regione 2, etc]
	unit picchieri bracceschi			exp 0 cost 680 replenish 0.36 - 1.0 max 2 initial 2 religions { catholic } events { Firenze_allied_Bracceschi }
	[...]


TESTATO, FUNZIONA
è preferibile che sia modificata la recrutabilità nell'EDB
[Modificato da Mylae 06/09/2017 10:33]
_____________________________________________

È pericoloso porre in modo sbagliato questioni sostanzialmente giuste.
Indro Montanelli
OFFLINE
Post: 646
Città: FIRENZE
Età: 39
Sesso: Maschile
27/05/2016 18:49

Aurea Repubblica Ambrosiana e Ducato di Milano (Sforza)
Nel 1447 viene proclamata la repubblica alla morte di Filippo Maria Visconti.

Francesco Sforza viene assoldato come capitano per ricondurre all'ordine le terre ribellate (Parma, Pavia, Crema, Lodi, etc.)

Sforza si insignorisce di Pavia personalmente. L'avanzata veneziana è fermata. nel momento in cui si avventa verso Bergamo e Brescia, promessegli come bottino di guerra, Milano Ritira il suo supporto. Sforza si allea con Venezia contro Milano, marcia verso la città, Milano si allea con Venezia contro Sforza, ma questo riesce a entrare a Milano nel 1450.


Morte di Filippo Maria Visconti nel 1447
monitor_event FactionTurnStart FactionType milan
              and I_TurnNumber = 1
              campaign_wait 5
              if I_CharacterExists FilippoMariaVisconti1
              kill_character FilippoMariaVisconti1
              end_if
terminate_monitor
end_monitor


Alla morte di FMV, proclamazione della Repubblica (script separato per prevenire che una morte precedente causi inconsistenze) e stemma repubblicano con la croce rossa in campo bianco; spawn dei leader repubblicani all'interno di Milano (sì, è possibile avere più leader contemporaneamente!).
monitor_event CeasedFactionLeader FactionType milan
              and I_SettlementOwner Milano = milan
              and FactionLeaderTrait FilippoMariaVisconti = 1 
              historic_event 1447_Aurea_Repubblica_Ambrosiana
              set_event_counter Aurea_Repubblica_Ambrosiana 1
              set_faction_banner
              faction milan
              banner crusading_orders
              end_set_faction_banner

              spawn_army 
              	faction milan
              	character	Giorgio Lampugnano, leader, x 57, y 53, label GiorgioLampugnano1
              	unit		SE Late Bodyguard				exp 0 armour 0 weapon_lvl 0
              end

              spawn_army 
              	faction milan
              	character	Antonio Trivulzio, leader, x 57, y 53, label AntonioTrivulzio1
              	unit		SE Late Bodyguard				exp 0 armour 0 weapon_lvl 0
              end

              spawn_army 
              	faction milan
              	character	Teodoro Bossi, leader, x 57, y 53, label TeodoroBossi1
              	unit		SE Late Bodyguard				exp 0 armour 0 weapon_lvl 0
              end

              spawn_army 
              	faction milan
              	character	Innocenzo Cotta, leader, x 57, y 53, label InnocenzoCotta1
              	unit		SE Late Bodyguard				exp 0 armour 0 weapon_lvl 0
              end

              spawn_army 
              	faction milan
              	character	Vitaliano Borromeo, leader, x 57, y 53, label VitalianoBorromeo1
              	unit		SE Late Bodyguard				exp 0 armour 0 weapon_lvl 0
              end
terminate_monitor
end_monitor



Parma e Pavia proclamano l'indipendenza, Lodi e Piacenza si mettono sotto la protezione di Venezia. L'AI accetta sempre.

monitor_event FactionTurnStart FactionType venice
              if I_EventCounter Aurea_Repubblica_Ambrosiana = 1
              ;offer to take Lodi & Piacenza
              historic_event Lodi_Piacenza true factions { venice, }
              	if I_IsFactionAIControlled venice	
              	set_event_counter Lodi_Piacenza_accepted 1
              	end_if		
              end_if			
terminate_monitor
end_monitor

monitor_conditions I_EventCounter Lodi_Piacenza_accepted = 1
              if I_SettlementOwner Lodi = venice
;; Lodi è già veneziana!
              end_if

              if I_SettlementOwner Lodi != venice
              	if not I_IsFactionAIControlled venice	
;; se venezia siamo noi, c'è un comando per impossessarsi di una città se si è il local-player
              	end_if

              	if I_IsFactionAIControlled venice	
;; se venezia è l'IA allora, si spawna un esercito (moors) cui è dato il comando di assaltare la città, forzando la vittoria con un auto_win per poi cedere la fazione a venezia.
              	end_if
              end_if


TESTATO, FUNZIONA
[Modificato da Mylae 06/09/2017 10:34]
_____________________________________________

È pericoloso porre in modo sbagliato questioni sostanzialmente giuste.
Indro Montanelli
OFFLINE
Post: 454
Città: PESCIA
Età: 31
Sesso: Maschile
28/05/2016 13:41

Ottimo!
OFFLINE
Post: 646
Città: FIRENZE
Età: 39
Sesso: Maschile
31/05/2016 12:26

Il piccolo scisma d'Occidente e la Chiesa Uniate
Nel 1439 venne proclamata l'unione tra la Chiesa Cattolica e quella Ortodossa con la proclamazione, nella basilica di Santa Maria del Fiore, della bolla Laetentur Coeli il 6 luglio.

I padri conciliari riuniti a Basilea avevano scomunicato il Papa Eugenio IV come eretico (25 giugno 1439) e il novembre successivo avevano eletto come antipapa Amedeo VIII di Savoia, con il nome di Felice V, dando vita al piccolo scisma d'occidente.

Nel 1442 il consigliere pontificio, ed umanista, Enea Silvio Piccolomini, futuro papa Pio II, fece pace con Eugenio[14]. Il successivo riconoscimento da parte del Papa alle pretese su Napoli di re Alfonso V di Aragona, sottrasse l'ultimo importante appoggio all'ormai diviso concilio di Basilea, e permise a Eugenio di fare un trionfale ritorno a Roma il 26 settembre 1443, dopo un esilio durato quasi dieci anni.

Riunificazione cattolica della Savoia
monitor_event FactionTurnStart FactionType russia
            and I_TurnNumber = 1 ;(7 aprile 1449)
            and I_EventCounter savoy_conversion_accepted = 0

            historic_event russia_conversion true factions { russia, }
            
            ; AI accept
            if I_IsFactionAIControlled russia
                    set_event_counter savoy_conversion_accepted 1
            end_if
            terminate_monitor
end_monitor

monitor_conditions I_EventCounter savoy_conversion_accepted = 1
        set_religion russia catholic	;1 - Convert the people
        change_population_religion russia catholic 75 pagan

        destroy_buildings russia Christian_Church_schismatic true ;2 - Destroy the schismatic buildings
        [...]
        
        retire_characters russia priest	;3 - Disband the pagan units

        historic_event savoy_converts	;notify all factions that savoy has converted and become Catholic
        
        set_event_counter schismatic_savoy 0
        terminate_monitor
end_monitor
[Modificato da Mylae 31/05/2016 13:28]
_____________________________________________

È pericoloso porre in modo sbagliato questioni sostanzialmente giuste.
Indro Montanelli
OFFLINE
Post: 646
Città: FIRENZE
Età: 39
Sesso: Maschile
12/08/2016 21:32

Banche e prestiti
uno script creato da me, testato e funzionante!

SISTEMA PRESTITI BANCARI

Questo script è un concetto di base, può essere variato nelle cifre e nelle condizioni.

condizione: nel caso in cui mi trovo con solo 5000 fiorini, mi appare a inizio turno un messaggio si/no. Se accetto mi verranno prestati 5000 fiorini, da restituire in 6 turni con un interesse complessivo del 10% (totale al termine: 5500 fiorini).

alla scadenza del prestito, viene fatta una scelta: restituire tutto (anche se si rischia di tornare in rosso!) oppure rimandare di 4 turni il pagamento di 5.500 (pagando una penale di 500 fiorini una tantum per la dilazione)

declare_counter Loan_A_offered
declare_counter Loan_A_ongoing

monitor_event FactionTurnStart FactionIsLocal
	and Treasury > 0
	and Treasury < 5000
	and I_CompareCounter Loan_A_offered = 0
	historic_event Loan_A true
	set_event_counter Loan_A_offered 1
end_monitor

monitor_event EventCounter EventCounterType Loan_A_accepted == 1
	    historic_event Loan_A_accept
	    console_command add_money 5000
	    set_counter Loan_A_ongoing 1
	    set_counter Loan_A_offered 1
end_monitor

monitor_event EventCounter EventCounterType Loan_A_declined == 1
	    set_counter Loan_A_ongoing 0
	    set_counter Loan_A_offered 0
end_monitor
;;;;;;;;;;;
monitor_event FactionTurnEnd FactionIsLocal
	and I_CompareCounter Loan_A_ongoing > 0
		inc_counter Loan_A_ongoing 1
end_monitor
;;;;;;;;;;;
monitor_event FactionTurnStart FactionIsLocal
	and I_CompareCounter Loan_A_ongoing == 6
	historic_event Loan_A_restitution true 
end_monitor

monitor_event EventCounter EventCounterType Loan_A_restitution_accepted == 1
        console_command add_money -5500
	historic_event Loan_A_restitution_accept
	set_counter Loan_A_ongoing 0
	set_counter Loan_A_offered 0
end_monitor

monitor_event EventCounter EventCounterType Loan_A_restitution_declined == 1
	historic_event Loan_A_restitution_decline
        console_command add_money -500
	set_counter Loan_A_ongoing 2
end_monitor
_____________________________________________

È pericoloso porre in modo sbagliato questioni sostanzialmente giuste.
Indro Montanelli
OFFLINE
Post: 454
Città: PESCIA
Età: 31
Sesso: Maschile
06/09/2017 14:36

Re: Reclutamento mercenari
Mylae, 25/05/2016 19.17:

Ci sono alcune fazioni/casate che storicamente hanno provveduto armate mercenarie nel nostro periodo. Nello specifico: Montefeltro, Malatesta, Sforzeschi, Bracceschi, Gonzaga, ecc.

rivedendo la campagna nuovo mondo c'è uno script interessante, che consente alla Spagna di reclutare unità mercenarie in base alle alleanze con varie fazioni.

Si può convertire lo stesso script in uno che permetta, ad esempio, a Firenze, Milano, Venezia, Papa, Aragonesi di reclutare condotte mercenarie in base alle proprie alleanze. Lo script è semplice, e si basa sulla presenza dei counter_event per permettere, limitare o impedire il reclutamento sia nel pool delle unità mercenarie, sia in quello delle unità normali.

Il reclutamento si interrompe al rompersi dell'alleanza - sia che si sia neutrali, sia altrimenti.


	monitor_event FactionTurnStart FactionType denmark
		and I_EventCounter Firenze_allied_Bracceschi == 0
		and DiplomaticStanceFromFaction saxons = Allied
		
		add_events
			event	counter	Firenze_allied_Bracceschi 
	   		date	0
	 	end_add_events

	end_monitor

	monitor_event FactionTurnStart FactionType denmark
		and I_EventCounter Firenze_allied_Bracceschi == 1
		and DiplomaticStanceFromFaction saxons > Allied
		
		set_event_counter Firenze_allied_Bracceschi 0

	end_monitor


e in descr_mercenaries.txt
pool Bracceschi
	regions [nome regione 1] [nome regione 2, etc]
	unit picchieri bracceschi			exp 0 cost 680 replenish 0.36 - 1.0 max 2 initial 2 religions { catholic } events { Firenze_allied_Bracceschi }
	[...]


TESTATO, FUNZIONA
è preferibile che sia modificata la recrutabilità nell'EDB



Questo mi garba parecchio
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi

Feed | Forum | Bacheca | 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 17:48. Versione: Stampabile | Mobile
Copyright © 2000-2024 FFZ srl - www.freeforumzone.com