bloccare un evento se un altro si e' verificato

Discussione in 'Darkest Hour' iniziata da Terminator, 14 Aprile 2023.

  1. Terminator

    Terminator

    Registrato:
    24 Aprile 2006
    Messaggi:
    155
    Ratings:
    +0
    se voglio far scattare un evento e come condizione c' e' che un altro evento non sia scattato questo comando e' corretto?

    NOT = { event = { id = 8341000 }}

    cioe' se l'evento 8341000 e' scattato questo comando evita che un nuovo evento scatti dove l'ho inserito?
    grazie
     
  2. ^_AC_^

    ^_AC_^ Moderator Membro dello Staff

    Registrato:
    20 Dicembre 2006
    Messaggi:
    3.783
    Ratings:
    +1.602
    NOT = { event = 8341000 }

    Ma dipende anche dalla natura dell'evento 8341000. Se 8341000 ha persistent = yes (oppure altro di particolare che al momento mi sfugge) allora non viene registrato nella storia come accaduto e quindi il trigger del secondo evento non funziona.
     
  3. Terminator

    Terminator

    Registrato:
    24 Aprile 2006
    Messaggi:
    155
    Ratings:
    +0
    ok, grazie
    ti chiedo un'altra cosa e' possibile far esplodere un'atomica su una provincia tramite evento?
     
  4. ^_AC_^

    ^_AC_^ Moderator Membro dello Staff

    Registrato:
    20 Dicembre 2006
    Messaggi:
    3.783
    Ratings:
    +1.602
    No.
     
  5. Terminator

    Terminator

    Registrato:
    24 Aprile 2006
    Messaggi:
    155
    Ratings:
    +0
    peccato!
    ascolta se inserisco nella cartella ''ai'' un nuovo file ai preso da un mod (per esempio GER_1948, che in origine non esiste in quanto arriva fino a GER_1942) per attivarlo devo creare un qualche collegamento (come in caso di un nuovo file evento creato ex novo nella cartella events che va poi trascritto in db\events.txt) per farlo funzionare? oppure basta inserire il file in ai e funziona?
     
  6. ^_AC_^

    ^_AC_^ Moderator Membro dello Staff

    Registrato:
    20 Dicembre 2006
    Messaggi:
    3.783
    Ratings:
    +1.602
    Non ne sono sicuro al 100% ma direi di sì. Però deve essere invocato da un evento (a meno che l'IA non sia settata per cogliere automaticamente i file di quell'anno). Diciamo che è complicato e non ricordo bene.
    C'è da qualche parte, credo su misc.txt, un modo per attivare un log dei file AI caricati in una partita, quindi puoi provare a vedere se funziona o no.
     
  7. Terminator

    Terminator

    Registrato:
    24 Aprile 2006
    Messaggi:
    155
    Ratings:
    +0
    ciao,
    l'evento evocativo potrebbe essere questo?



    event = {
    id = 114200001 # Germany AI 1948
    random = no
    country = GER

    trigger = {
    exists = GER

    control = { province = 163 data = GER }
    control = { province = 207 data = GER }
    control = { province = 195 data = GER }
    control = { province = 179 data = GER }
    control = { province = 181 data = GER }
    control = { province = 184 data = GER }
    control = { province = 261 data = GER }
    control = { province = 107 data = GER }

    }

    date = { day = 1 month = January year = 1948 }

    name = "Germany AI 1948"
    desc = "Germany AI 1948"
    style = 2
    Picture = "Rhineland"


    action_a = {
    ai_chance = 100
    name = ACTION_NAME_OK
    command = { trigger = { ai = yes } type = ai which = "switch/GER_1948.ai" }

    }
    }
    con il file GER-1948 dentro la cartella ai/switch
     
  8. ^_AC_^

    ^_AC_^ Moderator Membro dello Staff

    Registrato:
    20 Dicembre 2006
    Messaggi:
    3.783
    Ratings:
    +1.602
    Ci sono un po' di errori o cose che non hanno senso:
    • mettere ai = yes come prima riga del trigger, è inutile far perdere tempo a valutare gli altri valori se GER è umano
    • day = 1 probabilmente dovrebbe essere day = 0, a meno che non si voglia davvero che funzioni il 2 gennaio invece che l'1
    • name = "AI_EVENT", togliere desc, togliere picture e mettere style = 0
    • togliere ai_chance = 100 dall'unica azione
    • togliere ai = yes dal comando di switch (dopo averlo messo nel trigger, vedi primo passo)
     
  9. Terminator

    Terminator

    Registrato:
    24 Aprile 2006
    Messaggi:
    155
    Ratings:
    +0
    grazie come al solito rapido e gentilissimo
     
    Ultima modifica: 6 Maggio 2023
  10. Terminator

    Terminator

    Registrato:
    24 Aprile 2006
    Messaggi:
    155
    Ratings:
    +0
    rieccomi qui!!!!
    ho completato cosi' l'evento di richiamo:

    event = {
    id = 7714200001 # Germany AI 1948
    random = no
    country = GER

    trigger = {ai = yes
    exists = GER
    control = { province = 163 data = GER }
    control = { province = 163 data = GER }
    control = { province = 207 data = GER }
    control = { province = 195 data = GER }
    control = { province = 179 data = GER }
    control = { province = 181 data = GER }
    control = { province = 184 data = GER }
    control = { province = 261 data = GER }
    control = { province = 107 data = GER }

    }

    date = { day = 0 month = January year = 1948 }

    name = "AI_EVENT"
    style = 0


    action_a = {
    name = ACTION_NAME_OK
    command = { trigger = type = ai which = "switch/GER_1948.ai" }

    }
    }
    devo sbagliare qualcosa perche' il gioco crasha al caricamento e dal savelog il problema e' qui
    dove puo' essere?
    grazie
     
  11. ^_AC_^

    ^_AC_^ Moderator Membro dello Staff

    Registrato:
    20 Dicembre 2006
    Messaggi:
    3.783
    Ratings:
    +1.602
    command = { type = ai which = "switch/GER_1948.ai" }
     
  12. Terminator

    Terminator

    Registrato:
    24 Aprile 2006
    Messaggi:
    155
    Ratings:
    +0
    grazie!!!!
     
  13. Terminator

    Terminator

    Registrato:
    24 Aprile 2006
    Messaggi:
    155
    Ratings:
    +0
    ciao,
    se voglio dare dei garrison tramite evento in una determinata provincia ma non voglio che l'ai poi li sposti a suo piacimento e' giusto questo comando?


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


    name = "Ridotta Abissina"
    desc = "Defensive line to protect Addis Adeba"
    style = 2
    picture = "Destroy_Maginot"
    trigger = {
    ai = yes
    war = { country = ITA country = ENG }
    }

    date = { day = 2 month = january year = 1940 }
    offset = 30
    deathdate = { day = 30 month = december year = 1963 }

    action_a = {
    name = ACTION_NAME_OK #
    command = { type = add_corps which = "Italy Army" value = land where = 825}

    command = { type = lock_division which = garrison value = 5 }
    command = { type = lock_division which = garrison value = 5 }
    command = { type = lock_division which = garrison value = 5 }
    command = { type = lock_division which = garrison value = 5 }
    command = { type = lock_division which = garrison value = 5 }
    command = { type = lock_division which = garrison value = 5 }

    }
    }

    grazie
     
    Ultima modifica: 22 Maggio 2023
  14. ^_AC_^

    ^_AC_^ Moderator Membro dello Staff

    Registrato:
    20 Dicembre 2006
    Messaggi:
    3.783
    Ratings:
    +1.602
    No, non è fattibile. Value vuole l'ID della divisione e l'unico modo per averla è che sia presente nello scenario iniziale.
     
  15. Terminator

    Terminator

    Registrato:
    24 Aprile 2006
    Messaggi:
    155
    Ratings:
    +0
    peccato
    grazie comunque della risposta
    ciao
     
  16. Terminator

    Terminator

    Registrato:
    24 Aprile 2006
    Messaggi:
    155
    Ratings:
    +0
    ciao,
    mi crasha il gioco e il messaggio d'errore in savedebug e'
    ERROR : (Missing = in statement.) '7776419 = {' Line = 790433 file = Mods\All in one\scenarios\save games\autosave.eug
    sicuramente e' colpa di qualche modifica che ho fatto, da questo messaggio si capisce dove puo' essere l'errore?
    grazie
     
  17. ^_AC_^

    ^_AC_^ Moderator Membro dello Staff

    Registrato:
    20 Dicembre 2006
    Messaggi:
    3.783
    Ratings:
    +1.602
    Bisogna andare a guardare nel savegame, controllare quella riga (790433) e quelle intorno, in particolare cosa c'è vicino a 7776419.
     
  18. Terminator

    Terminator

    Registrato:
    24 Aprile 2006
    Messaggi:
    155
    Ratings:
    +0
    ciao,
    non riesco a capire, apro il file autosave con blocco note poi come faccio a trovare la riga giusta?
    per esempio ho un nuovo crash

    ERROR : (Missing = in statement.) '7776960 = {' Line = 690549 file = Mods\All in one\scenarios\save games\autosave.eug

    la ''riga'' e la ''line'' sono la stessa cosa?
    la riga e' dove c'e' l' ''id''?

    immagino ci sia un evento da me creato o modificato dove manca qualche punteggiatura, pero' non dovrebbe crashare al caricamento all' inizio? li non ci sono problemi.
     
  19. ^_AC_^

    ^_AC_^ Moderator Membro dello Staff

    Registrato:
    20 Dicembre 2006
    Messaggi:
    3.783
    Ratings:
    +1.602
    La apri con Notepad++ che a lato mostra la riga giusta e che premendo CTRL+G ti permette di andare direttamente alla riga voluta.

    Credo che la riga sia la 690549 e che il problema sia '7776960 = {'.
    Non è detto che sia necessariamente 7776960, può essere qualcosa a destra o sinistra.

    Ci sono problemi che si evidenziano solo al momento dell'avvio dell'evento o della sua registrazione nella storia.
     
  20. Terminator

    Terminator

    Registrato:
    24 Aprile 2006
    Messaggi:
    155
    Ratings:
    +0
    Dunque con notepad++ alla riga 690549 ho trovato
    history = { migliaia di id eventi poi -202982159 7776960 7776961 ecc ecc

    strano il simbolo - prima di 202982159 ha qualche significato?
    l'errore dovrebbe essere nell' evento 202982159?
     

Condividi questa Pagina