È soltanto un Pokémon con le armi o è un qualcosa di più? Vieni a parlarne su Award & Oscar!

De Bello Mundi Forum

PROGRAMMARE CON PYTHON

  • Messaggi
  • OFFLINE
    johnwhile
    Post: 3.393
    Post: 2.643
    Registrato il: 05/07/2008
    Città: PORDENONE
    Età: 38
    Sesso: Maschile
    Gubernator
    Consul
    Team Modder
    00 23/01/2010 14:57
    la bounding sfere invece mi sono ricordato che bisognava metterla nei commenti dei file ms3d prima di convertirli
  • OFFLINE
    rhaymo
    Post: 8.178
    Post: 4.342
    Registrato il: 30/06/2008
    Città: NAPOLI
    Età: 40
    Sesso: Maschile
    Pontifex maximus
    Consul
    Team Leader
    Imperator
    00 23/01/2010 15:03
    Re:
    johnwhile, 23/01/2010 14.55:

    era l'ultima cosa che avrei pensato potesse causare l'errore, ero convinto di non poter aver sbagliato in quel punto dato che è uguale al linguaggio C...
    Comunque io lo messo nella discussione corrisposndente, se qualcuno troverà dei bug li correggerò immediatamente.
    Adesso proverò a fare anche qualche test con i file .modeltraversablenetwork utilizzati solo per le torri d'assedio mentre per gli altri sono vuoti, praticamente servono a descrivere le zone calpesabili come scale, pianerottoli ecc... chissà, forse servirà a qualcuno.

    Comunque adesso si può già creare i file per le nostre armi d'assedio e dare i giusti punti degli addetti, dovrebbe risolvere quel crash che mi dicevi tu a proposito della catapulta.
    Nel descr_engine.txt ci sarebbero queste cose da correggere:
    engine_radius 4.5
    engine_visual_radius 6.5
    engine_length 9
    engine_width 5
    engine_height 5.3
    engine_mass 15
    engine_dock_dist 5
    engine_mob_dist 10.5

    specialmente length width e height, mi sembra che se troppo grandi creano conflitto con i punti degli addetti alle armi, dovrebbe essere quell'effetto di spostamento degli addetti che a volte vedi quando caricano, sembra che scivolino all'esterno a volte.



    quale crash?

    "Ci vuole la carne nelle salsicce, il fumo se ne esce!" (proverbio)
    "Il potere é quando abbiamo ogni giustificazione per uccidere e non lo facciamo " (Schindler's list)



    Peninsula Italica Fan



  • OFFLINE
    johnwhile
    Post: 3.393
    Post: 2.643
    Registrato il: 05/07/2008
    Città: PORDENONE
    Età: 38
    Sesso: Maschile
    Gubernator
    Consul
    Team Modder
    00 23/01/2010 15:12
    non mi avevi detto che quando facevi ritirare gli addetti e poi gli riassegnavi l'arma d'assedio craschava ?
    -----------
    Eothese mi ha detto che il programmino gli si chiude dopo un secondo, a te fa lo stesso o è lui che è andicap... non sà usarlo ?
    www.twcenter.net/forums/showthread.php?p=6605682#post6605682
    E' il test5.zip
    [Modificato da johnwhile 23/01/2010 15:15]
  • OFFLINE
    johnwhile
    Post: 3.393
    Post: 2.643
    Registrato il: 05/07/2008
    Città: PORDENONE
    Età: 38
    Sesso: Maschile
    Gubernator
    Consul
    Team Modder
    00 23/01/2010 15:22
    o forse perchè ho importato tante librerie che non servivano come import numpy
    A me funzionano per il fatto che avevo scaricato tutti i plugin per far funzionare i world editor, forse lui non li ha.
  • OFFLINE
    rhaymo
    Post: 8.178
    Post: 4.342
    Registrato il: 30/06/2008
    Città: NAPOLI
    Età: 40
    Sesso: Maschile
    Pontifex maximus
    Consul
    Team Leader
    Imperator
    00 23/01/2010 15:33
    quel crash lo risolsi, avevo sbagliato ad assegnare le animazioni.
    per quanto riguarda il tuo programma, la versione con il bug per farla funzionare ho dovuto scaricarmi numpy..

    "Ci vuole la carne nelle salsicce, il fumo se ne esce!" (proverbio)
    "Il potere é quando abbiamo ogni giustificazione per uccidere e non lo facciamo " (Schindler's list)



    Peninsula Italica Fan



  • OFFLINE
    johnwhile
    Post: 3.393
    Post: 2.643
    Registrato il: 05/07/2008
    Città: PORDENONE
    Età: 38
    Sesso: Maschile
    Gubernator
    Consul
    Team Modder
    00 23/01/2010 16:40
    infatti, ho tolto l'import numpy e import time che non servivano, adesso va anche con la versione base di Python
  • OFFLINE
    johnwhile
    Post: 3.393
    Post: 2.643
    Registrato il: 05/07/2008
    Città: PORDENONE
    Età: 38
    Sesso: Maschile
    Gubernator
    Consul
    Team Modder
    00 24/01/2010 21:34
    mi potreste passare tutti i file.modeltraversablenetwork (sono solo un paio)
  • OFFLINE
    rhaymo
    Post: 8.178
    Post: 4.342
    Registrato il: 30/06/2008
    Città: NAPOLI
    Età: 40
    Sesso: Maschile
    Pontifex maximus
    Consul
    Team Leader
    Imperator
    00 24/01/2010 21:53
    Re:
    johnwhile, 24/01/2010 21.34:

    mi potreste passare tutti i file.modeltraversablenetwork (sono solo un paio)




    si si , sono solo un paio

    "Ci vuole la carne nelle salsicce, il fumo se ne esce!" (proverbio)
    "Il potere é quando abbiamo ogni giustificazione per uccidere e non lo facciamo " (Schindler's list)



    Peninsula Italica Fan



  • OFFLINE
    johnwhile
    Post: 3.393
    Post: 2.643
    Registrato il: 05/07/2008
    Città: PORDENONE
    Età: 38
    Sesso: Maschile
    Gubernator
    Consul
    Team Modder
    00 25/01/2010 00:00
    ops, avevo dimenticato di dire che quelli da 61Kb in realtà sono vuoti quindi quelli che mi servivano erano 6...
    :-P
  • OFFLINE
    johnwhile
    Post: 3.393
    Post: 2.643
    Registrato il: 05/07/2008
    Città: PORDENONE
    Età: 38
    Sesso: Maschile
    Gubernator
    Consul
    Team Modder
    00 25/01/2010 10:11
    non so se riesci ma puoi convertire un forte (una costruzione con delle torri) in testo con il tool WE9, dovrebbe convertirti il file da forte.world in forte.textrep, e mi potresti cercare la tabella o qualcosa di simile con titolo:

    ============================================================ Wacky Table ============================================================



    PS: Absinthia mi ha mandato un messaggio con una reskin, digli pure che te le mandi solo a te che io al momento non ho il pc e non posso moddare (quando riesco faccio solo una mezzora di Python per svago...)
    [Modificato da johnwhile 25/01/2010 10:16]
  • OFFLINE
    rhaymo
    Post: 8.178
    Post: 4.342
    Registrato il: 30/06/2008
    Città: NAPOLI
    Età: 40
    Sesso: Maschile
    Pontifex maximus
    Consul
    Team Leader
    Imperator
    00 25/01/2010 10:15
    dovrai aspettare stasera

    "Ci vuole la carne nelle salsicce, il fumo se ne esce!" (proverbio)
    "Il potere é quando abbiamo ogni giustificazione per uccidere e non lo facciamo " (Schindler's list)



    Peninsula Italica Fan



  • OFFLINE
    rhaymo
    Post: 8.178
    Post: 4.342
    Registrato il: 30/06/2008
    Città: NAPOLI
    Età: 40
    Sesso: Maschile
    Pontifex maximus
    Consul
    Team Leader
    Imperator
    00 25/01/2010 12:20
    quando potrai fare un paio di pezzi con 3ds?

    "Ci vuole la carne nelle salsicce, il fumo se ne esce!" (proverbio)
    "Il potere é quando abbiamo ogni giustificazione per uccidere e non lo facciamo " (Schindler's list)



    Peninsula Italica Fan



  • OFFLINE
    johnwhile
    Post: 3.393
    Post: 2.643
    Registrato il: 05/07/2008
    Città: PORDENONE
    Età: 38
    Sesso: Maschile
    Gubernator
    Consul
    Team Modder
    00 25/01/2010 16:21
    qualcosina riesco a fare, mi sono portato un mio vecchio portatile per studiare, quindi se ho tempo ti faccio qualcosa.
    Di cosa hai bisogno ?
  • OFFLINE
    rhaymo
    Post: 8.178
    Post: 4.342
    Registrato il: 30/06/2008
    Città: NAPOLI
    Età: 40
    Sesso: Maschile
    Pontifex maximus
    Consul
    Team Leader
    Imperator
    00 25/01/2010 16:34
    alcuni pezzi che ho recuperato dal mod di banzai hanno troppi poligoni.

    "Ci vuole la carne nelle salsicce, il fumo se ne esce!" (proverbio)
    "Il potere é quando abbiamo ogni giustificazione per uccidere e non lo facciamo " (Schindler's list)



    Peninsula Italica Fan



  • OFFLINE
    johnwhile
    Post: 3.393
    Post: 2.643
    Registrato il: 05/07/2008
    Città: PORDENONE
    Età: 38
    Sesso: Maschile
    Gubernator
    Consul
    Team Modder
    00 25/01/2010 17:23
    ok, allora dovrebbe essere semplice il lavoro, come per l'elefante con cui ho utilizzato uno script per facilitare questo tipo di lavoro
  • OFFLINE
    johnwhile
    Post: 3.393
    Post: 2.643
    Registrato il: 05/07/2008
    Città: PORDENONE
    Età: 38
    Sesso: Maschile
    Gubernator
    Consul
    Team Modder
    00 25/01/2010 19:31
    allora cos adevo fare ??
    Ps. lascia stare la wacky table ma mi passeresti un file world come stone_fort ??
    [Modificato da johnwhile 25/01/2010 19:37]
  • OFFLINE
    johnwhile
    Post: 3.393
    Post: 2.643
    Registrato il: 05/07/2008
    Città: PORDENONE
    Età: 38
    Sesso: Maschile
    Gubernator
    Consul
    Team Modder
    00 31/01/2010 17:20
    www.twcenter.net/forums/showthread.php?p=6691583#post6691583
    oggi, avendo un pò di tempo libero mi sono messo ad analizzare i file utilizzando l'opzione "compare" di "010 editor" e devo dire che mi stà spianando la strada per molte cose, non è un semplice comparatore ma analizza anche i possibili blocchi simili per numero di variabili dopo che è stata fatta un'analisi sommaria cercando tutte le possibili strutture o sequenze logiche di numeri (cioè escludendo numeri come 12345678,0 o numeri con esponenti tipo -40 o +40 che risultano insensati dato che nel gioco la maggior parte sono coordinate, numeri interi e stringhe di testo.

    Credo che forse tra un mesetto avrò finto l'analisi di tutti e 6 i file, e potremmo cominciare a capire come funzionano nel gioco, pensate che bello poter cambiare completamente le armi d'assedio per scalare le mura !!!
  • OFFLINE
    boboav
    Post: 5.956
    Post: 1.287
    Registrato il: 28/07/2009
    Città: NAPOLI
    Età: 29
    Sesso: Maschile
    Civis
    Team Modder
    00 06/02/2010 07:30
    Ho due domande:
    1)come funziona il comando "return" di python?
    2)Ho creato un programmino, ora come creo un bat o un exe, o qualcosa del genere per eseguirlo?
  • OFFLINE
    rhaymo
    Post: 8.178
    Post: 4.342
    Registrato il: 30/06/2008
    Città: NAPOLI
    Età: 40
    Sesso: Maschile
    Pontifex maximus
    Consul
    Team Leader
    Imperator
    00 06/02/2010 10:36
    il file che contiene il programma ha estensione py. cliccaci due volte sopra.
    il comando return, messo in una funzione, ti fa uscire da quella funzione e l'istruzione successiva che viene eseguita è quella che si trova subito dopo la chiamata alla funzione.

    es
    istruzione 1
    istuzione 2
    chiama funzione prova()
    istruzione 4



    funzione prova()
    bla
    bla
    return


    dopo l'esecuzione di return, l'istruzione successiva è istruzione 4

    "Ci vuole la carne nelle salsicce, il fumo se ne esce!" (proverbio)
    "Il potere é quando abbiamo ogni giustificazione per uccidere e non lo facciamo " (Schindler's list)



    Peninsula Italica Fan



  • OFFLINE
    boboav
    Post: 5.956
    Post: 1.287
    Registrato il: 28/07/2009
    Città: NAPOLI
    Età: 29
    Sesso: Maschile
    Civis
    Team Modder
    00 07/02/2010 19:03
    Scusate, qualcuno mi potrebbe fare una lista, o passarmi una dal web(possibilmente in italiano)con tutte le keyword valide con python, e magari con un esempio su come si usano e una descrizione scritta(una piccolissima, di un rigo basta e avanza)
  • OFFLINE
    johnwhile
    Post: 3.393
    Post: 2.643
    Registrato il: 05/07/2008
    Città: PORDENONE
    Età: 38
    Sesso: Maschile
    Gubernator
    Consul
    Team Modder
    00 07/02/2010 21:57
    Qui ad esempio è spiegato come fare funzioni con variabili di default
    docs.python.it/html/tut/node6.html#SECTION0067000000000...
    cioè una funzione che ha bisogno di due valori:

    def moltiplicazione(a,b)
    return a*b

    può essere scritta con la variabile facoltativa b
    def moltiplicazione(a,b=1)
    return a*b

    quindi quando "chiami" la funzione puoi chiamarla così:
    moltiplicazione(2,3)
    oppure
    moltiplicazione(2)

    funzione lo stesso ma mel secondo caso viene fatto 2*1 perchè b non è stata dichiarata quindi viene messa quella di default
  • OFFLINE
    johnwhile
    Post: 3.393
    Post: 2.643
    Registrato il: 05/07/2008
    Città: PORDENONE
    Età: 38
    Sesso: Maschile
    Gubernator
    Consul
    Team Modder
    00 07/02/2010 22:00
    non sono tanto esperto in Python dato che ho cominciato ad usarlo solo di recente ma preferirei che mi dicessi quello che vuoi fare e io cercherò di accontentarti, non posso perdere troppo tempo con i tutorial, il mio tempo libero si misura con il contagocce ultimamente
    [Modificato da johnwhile 07/02/2010 22:00]
  • OFFLINE
    boboav
    Post: 5.956
    Post: 1.287
    Registrato il: 28/07/2009
    Città: NAPOLI
    Età: 29
    Sesso: Maschile
    Civis
    Team Modder
    00 07/02/2010 22:45
    Allora martedì ti passo il programma che sto facendo, così ti dico quello che vorrei fare(domani purtroppo non posso)
  • OFFLINE
    boboav
    Post: 5.956
    Post: 1.287
    Registrato il: 28/07/2009
    Città: NAPOLI
    Età: 29
    Sesso: Maschile
    Civis
    Team Modder
    00 10/02/2010 18:29
    allora, questo è il programma http://rapidshare.com/files/348760346/rettangolo.py.html , praticamente alla fine vorrei aggiungere una cosa tipo questa:

    indietro = raw_input("Per tornare al menù principale digita 'indietro')
    #a questo punto un bel if, per definire la condizione
    if indietro == indietro:
    ???????ora che metto?????????come gli dico di tornare all' inizio del programma??????
    [Modificato da boboav 10/02/2010 18:33]
  • OFFLINE
    johnwhile
    Post: 3.393
    Post: 2.643
    Registrato il: 05/07/2008
    Città: PORDENONE
    Età: 38
    Sesso: Maschile
    Gubernator
    Consul
    Team Modder
    00 10/02/2010 18:56
    allegami il file perchè rapidshare oltre a dare problemi c'è un casino di gente che scarica dove sono io e non riesco mai ad avere lo slot libero
  • OFFLINE
    boboav
    Post: 5.956
    Post: 1.287
    Registrato il: 28/07/2009
    Città: NAPOLI
    Età: 29
    Sesso: Maschile
    Civis
    Team Modder
    00 10/02/2010 19:42
    Doh!!!Non sono più online con il pc, magari fallo uppare dal boss, tanto sono pochi kilobytes
  • OFFLINE
    johnwhile
    Post: 3.393
    Post: 2.643
    Registrato il: 05/07/2008
    Città: PORDENONE
    Età: 38
    Sesso: Maschile
    Gubernator
    Consul
    Team Modder
    00 11/02/2010 11:53
    ok, oggi rapidshare funziona, quando posso vedrò come si fà
  • OFFLINE
    johnwhile
    Post: 3.393
    Post: 2.643
    Registrato il: 05/07/2008
    Città: PORDENONE
    Età: 38
    Sesso: Maschile
    Gubernator
    Consul
    Team Modder
    00 11/02/2010 15:19
    1. Allora non ho trovato quello che volevi fare tu, in c c'era main() che faceva partire dall'inizio ma in python ho trovato solo root.mainloop(), funzione simile ma solo nelle interfacce grafiche (cioè come il convertitore che ho fatto).
    Per risolvere più chiaramente di rettangolo.py guarda rettangolo2.py ho messo due cose:
    una funzione "esterna" che si deve ripetere cioè def main()
    e nel programma ho usato un ciclo while infinito, che termina quando si verificano le condizioni, fai attenzione ai cicli while perchè se non si fermano più sei costretto a terminare di brutto il programma con Ctrl+Alt+Canc, ci sono virus casalinghi che adirittura usano questo modo per riempire la ram del computer o adirittura creano file che riempiono l'hard disk.
    Se ci metti dentro il ciclo
    var=raw_input("premi invio")
    almeno si ferma ogni volta per aspettare l'assegnazione di var... come in questo esempio.

    2. ho preferito mettere lettere invece che numeri per il menù, dà meno problemi

    3. ho organizzato meglio il tuo codice

    4. ho usato la funzione float() perchè in questo caso lavori con numeri con virgola, altrimenti approssima male i risultati

    5. alcune cose sono state notevolmente "compresse", semplifica meglio il tutto
    PS: sfera o cerchio sono due cose diverse !
  • OFFLINE
    boboav
    Post: 5.956
    Post: 1.287
    Registrato il: 28/07/2009
    Città: NAPOLI
    Età: 29
    Sesso: Maschile
    Civis
    Team Modder
    00 11/02/2010 21:00
    Ciao,
    1:Come dò uno sfondo a un programma in generale?
    2:come ordino al programma di aprire un altro file da cui prendere informazioni?Tipo, medieval quando avvia una campagna guarda tutta la cartella world e dà li prende le informazioni, come gli faccio fare una cosa del genere?
  • OFFLINE
    johnwhile
    Post: 3.393
    Post: 2.643
    Registrato il: 05/07/2008
    Città: PORDENONE
    Età: 38
    Sesso: Maschile
    Gubernator
    Consul
    Team Modder
    00 11/02/2010 21:15
    allora per sfondi immagini e quant'altro tocca utilizzare l'interfaccia grafica che è un ramo abbastanza difficile, se hai visto il mio convertitore capirai cosa intendo per interfaccie (bottoni, pulsanti finestre ecc...) le immagini le puoi caricare solo da li, non puoi farlo in dos (prot dei comandi).

    per far aprire i file non è difficile, è difficile estrarre i dati dal file, per il mio convertitore di file modelreferencepoint da tasto a binario e viceversa l'unico modo era leggere riga per riga dal testo e byte per byte dal file binario, l'unico ostacolo è che devi conoscere perfettamente come sono organizzati i dati, sia nel testo che nel binario.

    il fatto che medieval apre i file è perche durante il caricamento quello che fà è aprire file per file, estrarre i dati e metterli nella ram, per quello che ci impiega un pò.
    qui: www.java2s.com/Code/Python/File/CatalogFile.htm
    ci sono tanti esempi.
    Adesso ti faccio un esempio del tuo rettangoli.py che salva i dati in testo....
5