1. Questo sito utilizza i cookies. Continuando a navigare tra queste pagine acconsenti implicitamente all'uso dei cookies. Scopri di più.

Problema creazione eventi

Discussione in 'Mod e Patch' iniziata da Kompf, 25 Maggio 2011.

  1. Kompf

    Kompf

    Registrato:
    31 Luglio 2007
    Messaggi:
    82
    Ratings:
    +0
    Ciao a tutti,
    scusate ma ho dei problemi con la creazione degli eventi.

    (premetto sto cercando di modificare HoI 2 con il Compendium 1.1)

    Premetto che è la prima volta che li faccio quindi passatemi la "niubbagine".

    Allora ho trovato vari file di eventi per l'italia già fatti.
    ho sotituito il file italy.txt nella cartella del gioco ma quando vado a giocare e dovrebbero scattare gli eventi tipo "Bonifica Agro Pontino" il 25 aprile 1936 non scattano.

    Qualcuno sa dirmi se devo fare qualcos'altro? Forse devo cambiare anche il file Events.csv?

    Questo è uno degli eventi:
    event = {
    id = 2988
    random = no
    country = ITA
    trigger = {

    }

    name = "EVT_2988_NAME"
    desc = "EVT_2988_DESC"
    style = 0
    picture = "mod_bonifica"

    date = { day = 25 month = april year = 1936 }

    action_a = {
    name = "ACTIONNAME2988A"
    command = { type = energypool value = -2500 }
    command = { type = metalpool value = -2500 }
    command = { type = money value = -250 }
    command = { type = supplies value = -1500 }
    command = { type = manpowerpool value = -25 }
    ai_chance = 97
    }
    action_b = {
    name = "ACTIONNAME2988B"
    command = { type = manpowerpool value = 50 }
    command = { type = dissent value = 5 }
    command = { type = sleepevent which = 2909 }
    command = { type = sleepevent which = 2910 }
    ai_chance = 3
    }


    Grazie
     
  2. Friedrich

    Friedrich

    Registrato:
    26 Settembre 2010
    Messaggi:
    391
    Ratings:
    +0
    manca il trigger; se non inserisci le condizioni per cui debba scattare non può scattare.

    Nel caso di questo evento ti basta aggiungere al trigger ad esempio che l'italia sia fascista e che controlli Roma (è un esempio puoi inserire la condizione che preferisci)

    event = {
    id = 2988
    random = no
    country = ITA

    trigger = {
    exists = ITA
    }

    date = { day = 25 month = april year = 1936 }
    offset = 20



    (l'offset indica che ogni 20 giorni potrebbe scattare l'evento)
     
  3. ^_AC_^

    ^_AC_^ Moderator Membro dello Staff

    Registrato:
    20 Dicembre 2006
    Messaggi:
    3.744
    Ratings:
    +1.577
    Il trigger non è necessario.

    Per far funzionare l'offset serve anche la deathdate (data oltre il quale l'evento non scatta più):
    date = { day = 25 month = april year = 1936 }
    offset = 20

    deathdate = { day = 1 month = december year = 1963 }

    Cmq se scrivi 25 l'evento scatta il 26. Per farlo scattare l'1 devi scrivere 0.
     
  4. Kompf

    Kompf

    Registrato:
    31 Luglio 2007
    Messaggi:
    82
    Ratings:
    +0
    Grazie ora provo subito e vi faccio sapere!
     
  5. Friedrich

    Friedrich

    Registrato:
    26 Settembre 2010
    Messaggi:
    391
    Ratings:
    +0
    ottimo; involontariamente ho imparato pure io qualcosa :approved:
     
  6. Kompf

    Kompf

    Registrato:
    31 Luglio 2007
    Messaggi:
    82
    Ratings:
    +0
    Tu hai scritto alla voce offset 20. è un numero a caso o richiama qualche cosa?
    Posso usarlo per tutti gli eventi?
     
  7. Friedrich

    Friedrich

    Registrato:
    26 Settembre 2010
    Messaggi:
    391
    Ratings:
    +0
    no no è un numero che ho messo io a caso, tu puoi scegliere autonomamente l'offset; come ho gia scritto: indica che ogni 20 giorni potrebbe scattare l'evento
     
  8. Dark_Angel_Of_Sin

    Dark_Angel_Of_Sin

    Registrato:
    14 Novembre 2006
    Messaggi:
    2.339
    Ratings:
    +30
    più piccolo metti questo numero, più rallenti il gioco (se lo usi in tanti eventi :D )

    saluti
    DAoS
     
  9. Carlos V

    Carlos V

    Registrato:
    15 Dicembre 2010
    Messaggi:
    1.713
    Località:
    Puglia
    Ratings:
    +546
    Solo una piccola precisazione, ma doverosa.
    Quell'offset = 20 non indica che l'evento scatterà ogni 20 giorni ma che, non appena le condizioni (trigger) saranno state soddisfatte, potrebbe apparire entro un tempo massimo di 20 giorni.
    Mi spiego meglio: se hai impostato come data il 25 Aprile 1936 e se per quella data saranno state soddisfatte le condizioni l'evento ti dovrebbe apparire a caso in uno dei 20 giorni successivi, quindi entro la metà di Maggio. :D
     
  10. ^_AC_^

    ^_AC_^ Moderator Membro dello Staff

    Registrato:
    20 Dicembre 2006
    Messaggi:
    3.744
    Ratings:
    +1.577
    No, non credo.
    Dovrebbe essere ogni quanti giorni il motore di gioco controlla il trigger per verificare se l'evento può scattare (a partire dal primo giorno in cui è disponibile). Se venisse usate solo per scegliere il giorno di attuazione una volta che le condizioni sono soddisfatte non avrebbe un tale impatto sulle prestazioni.
     
  11. Friedrich

    Friedrich

    Registrato:
    26 Settembre 2010
    Messaggi:
    391
    Ratings:
    +0
    Vi invio un passo tratto dalla guida alla scrittura eventi di Luxor:

    3.6 Date, offset and deathdate
    This is the date when the event may first happen. The offset is a random offset in days,
    always used in conjunction with the date statement. It means that the event may happen on
    any of these days from the time specified in date.
    If the event has triggers it will start
    searching for triggers on this date.
    Example:
    date = { day = 1 month = january year = 1936 }
    offset = 30
    In this case the event will start checking for triggers on a random date within 30 days from
    the date specified.

    The deathdate is the deadline of an event, after which it may no longer be triggered. The
    deathdate statement is only useful if the event has a trigger condition. Events without a
    deathdate will fire if other triggers are valid on the date specified by the date/offset
    parameters above. If triggers are not valid on that date the event will never fire. If you
    want the event to keep looking for triggers you need to define a deathdate.


    Mi sa che Carlo V non sbagliava; buono a sapersi, ora dovrò modificare un pò di trigger di alcuni miei eventi :D
     
  12. ^_AC_^

    ^_AC_^ Moderator Membro dello Staff

    Registrato:
    20 Dicembre 2006
    Messaggi:
    3.744
    Ratings:
    +1.577
    Secondo me sta dando ragione a me, ovvero l'offset indica ogni quanti giorni controllare i trigger, non dopo quanti giorni far avvenire l'evento dopo che i trigger sono verificati.
     
  13. Luxor

    Luxor

    Registrato:
    7 Marzo 2007
    Messaggi:
    689
    Ratings:
    +54
    Ha ragione Carlos V. L'offset indica il tempo massimo entro cui l'evento puo' scattare, ma poi il giorno preciso e' casuale.
     
  14. Luxor

    Luxor

    Registrato:
    7 Marzo 2007
    Messaggi:
    689
    Ratings:
    +54
    Per togliervi il dubbio inserite questo evento :

    e vedete quando vi scatta.

    L'offset = 0 equivale a 1.
     
  15. ^_AC_^

    ^_AC_^ Moderator Membro dello Staff

    Registrato:
    20 Dicembre 2006
    Messaggi:
    3.744
    Ratings:
    +1.577
    Mi inchino alla tua superiore conoscenza. :)

    EDIT: ma scusa, quindi inserire offset alti non serve a ridurre il carico del motore di gioco?
     
  16. ^_AC_^

    ^_AC_^ Moderator Membro dello Staff

    Registrato:
    20 Dicembre 2006
    Messaggi:
    3.744
    Ratings:
    +1.577
    Test 1: 7 gennaio
    Test 2: 2 gennaio
    Test 3: 5 gennaio
    Test 4: 3 gennaio
    Test 5: 4 gennaio
    Test 6: 8 gennaio
    Test 7: 3 gennaio
    Test 8: 6 gennaio
    Test 9: 2 gennaio
    Test 10: 2 gennaio

    Ovviamente hai ragione tu. :)

    Cmq per favore fammi sapere se inserire offset alti non aiuta a ridurre il carico del motore (io credevo fosse ogni quanto viene controllato il trigger dell'evento per vedere se soddisfatto), perchè se è così sto facendo del lavoro inutile su KR for DH. :)
     
  17. Carlos V

    Carlos V

    Registrato:
    15 Dicembre 2010
    Messaggi:
    1.713
    Località:
    Puglia
    Ratings:
    +546
    Tranquillo, nemmeno io quando ero alle mie prime esperienze di modding sapevo a cosa servisse il comando offset :approved: ed infatti negli eventi da me creati usavo sempre la data singola per farlo apparire in un giorno preciso.
    Poi da quando l'ho capito ho potuto creare catene di eventi più verosimili e con il giusto tocco di imprevedibilità. Tipo se voglio che un evento compaia in un giorno a caso dell'anno metto:
    date = { day = 1 month = january year = 1936 }
    offset = 300 #oppure anche 365 va bene
    deathdate = { day = 29 month = december year = 1936 }

    Detto questo, dato che è tutto casuale penso che l'offset non incida molto sulle prestazioni, ma ovviamente non conoscendo a fondo i particolari tecnici potrei anche sbagliarmi. :cautious:
     
  18. Dark_Angel_Of_Sin

    Dark_Angel_Of_Sin

    Registrato:
    14 Novembre 2006
    Messaggi:
    2.339
    Ratings:
    +30
    usano l'anno commerciale, quindi di 360 giorni :D
    io ho sempre saputo che l'offset è ogni quanto il computer verifica i trigger.. quindi se li verifica ogni giorno consuma di più che se li consuma ogni 10..


    saluti
    DAoS
     
  19. Luxor

    Luxor

    Registrato:
    7 Marzo 2007
    Messaggi:
    689
    Ratings:
    +54
    Mi dispiace ma l'offset non influenza le prestazioni. Quello che appesantisce e' il numero di eventi e le date di inizio e fine. Se ci pensi, il motore di gioco analizza i trigger di tutti gli eventi che sono in un range di date valide. Questo e' quello su cui puoi in caso lavorare, non avere cioe' eventi che finiscono tutti al 1999 quando invece alcuni dopo una certa data non hanno piu' ragione di esistere.
     
  20. Luxor

    Luxor

    Registrato:
    7 Marzo 2007
    Messaggi:
    689
    Ratings:
    +54
    Questa e' una leggenda metropolitana molto diffusa, ma purtroppo non e' cosi'. I trigger sono verificati tutti i giorni se la data corrente e' maggiore della data di inizio e minore della deathdate. Poi utilizza l'offset per decidere se alla data corrente puo' avvenire l'evento, usando una distribuzione statistica uniforme, cioe' tutti i giorni definiti dall'offset hanno la stessa probabilita' di ricevere l'evento.
     

Condividi questa Pagina