Unmantained Guida [Release Epicixima!1!1!]Rain System. Facciamo piovere un po' in Metin

Una guida contrassegnata come Unmantained contiene informazioni su un argomento obsoleto, non più utile o files non aggiornati da parte del creatore.
Stato
Discussione chiusa ad ulteriori risposte.

Luscha

Utente Platinum
21 Dicembre 2009
1,908
118
2,737
1,149
Ultima modifica da un moderatore:
Download qui

Pass: UniversalElements

Dentro troverete tutto il necessario per far piovere (compreso il "cielo" fatto DA ME solo per voi)

Curiosità

La pioggia è in realtà una gif che viene visualizzata quando ci si trova in una certa mappa, nulla di più. Quindi se fisserete il pg dall'alto vedrete comunque piovere in verticale LOL (se non vi va bene come soluzione potete evitare di scaricare)

Essendo un ani_image non può essere ridimensionata (se qualcuno vuole scrivere il metodo in ui.py libero di farlo), quindi anche se siete in 800x600 le immagini verranno caricate nella loro dimensione completa (le ho fatte 1920 x 1080, oltre penso sarebbero state superflue).

Se volete cambiare le immagini per cambiare l'effetto pioggia, o cambiare il numero di immagini (sono 15 ora) potete benissimo farlo, basta cambiare un po' di cazzate nel file rainsistem.py. Potete ad esempio far piovere meteoriti, grandine, far girare delle farfalline per lo schermo, lucciole ecc ecc

Lagga?????'!1!1!1
Sinceramente io mi aspettavo che laggasse molto di più poi ovviamente dipenderà dal pc che avete, poco posso farci.

Si sto facendo un po' di pubblicità per UniversalElements, problems???



How to Implement

_ Mettete uirainsistem.py root e poi packate
_ Mettete i contenuti di ui e environment nelle rispettive cartelle del client e ripackate
_ Aprite interfacemodule.py (sta in root) e:

incollate
Codice:
import uiRainSystem

sotto tutti gli altri import a inizio file

cercate
Codice:
def __MakeChatWindow(self):

e incollate subito sotto alla funzione (NON dentro __MakeChatWindow)

Codice:
def __MakeRain(self):
        wndRain = uiRainSystem.uiRainSystem()
        wndRain.LoadWindow()    
        self.wndRain = wndRain

cercate
Codice:
def MakeInterface(self):
e incollate subito sotto (DENTRO la funzione (quindi sopra " self.__MakeMessengerWindow() "))

Codice:
self.__MakeRain()

FATE ATTENZIONE ALLA TABULAZIONE, fatela copiando dai metodi già presenti

Configurazione

Ho fatto in modo che voi stessi possiate scegliere in quale mappe "attivare" la pioggia, per configurare in quali mappe far piovere basta estendere la tupla

Codice:
UE_RAIN_MAPS_LIST

che si trova in cima al file uirainsistem.py, aggiungendo il percorso della mappa dove volete far piovere (lo trovate in atlasinfo.txt) seguendo gli esempi preimpostati.

Ho anche già inserito un metodo per "togliere" la pioggia, decidete voi come gestirlo

Codice:
DisableRain()

Bug conosciuti:
Al primo login l'environment non viene settato perfettamente, ho provato per ore a risolvere ma niente, rimando a chiunque sappia il python meglio di me il compito di risolvere (questo bug si può aggirare mettendo l'environment direttamente nel stting.txt della mappa, ma così il fatto di poter scegliere in quali mappe far piovere non servirebbe a nulla asd)

Dopo ore di tentativi ho rinunciato a cambiare canzone quando viene attivata la pioggia o settare un effetto sonoro per rendere la pioggia reale, se qualcuno sa come fare e me lo spiegasse sarei davvero felice.

Enjoy ^_^

Changelog:
-Pulito lo script
-Sistemato l'environment
-Eliminato il file da mettere in uiscript per renderlo più pulito e comodo
-Cambiato il dizionario in tupla
-Fixato il fatto che si settasse la pioggia in ogni mappa
 
Abio, stai ormai diventando petulante D:
Non hai i minimo diritto di lamentarti se metto UniversalElements come password, sappilo, e sai come la penso su questi post [Cit.]
 
0601 21:35:22525 :: Failed to load script file : uiscript/rainsystem.py
0601 21:35:22529 ::
ui.py(line:3148) LoadScriptFile
system.py(line:192) execfile
system.py(line:163) Run
uiscript/rainsystem.py(line:2) ?
system.py(line:137) __pack_import


LoadScriptFile - exceptions.ImportError:No module named uiScriptWiki


0601 21:35:22530 :: ============================================================================================================
0601 21:35:22530 :: Abort!!!!


Any solution?
 
Grande luscha ^_^ i tuoi lavori mi piacciono sempre. Grazie per la release <3
 
Vedo un sacco di gente che che usa il plurale parlando con me... la cosa inizia a darmi fastidio.
Non stiamo parlando di effetti, non è il mio campo, e li non saprei neanche dove iniziare, questa è una release dove ho preso spunto dal lavoro di un altro e l'ho realizzato io da 0, nulla di più nulla di meno. Non è stato mai rilasciato quindi non vedo il problema, a parte che chi voleva tenerselo tutto per se ora rimane male.
Non ho fatto nulla di diverso da chi ha tentato di riprodurre il Costume System dell'ita, se non che io rilascio invece di vendere.

Lucifer, a dire il vero penso che l'effetto è meno comodo poichè va appunto messo nella mappa, invece così si può far piovere quando vuoi e dove vuoi, anche come evento volendo.

Il risultato in game è buono, e vi invito a provarlo prima di parlare... Se poi a effetto viene bene, tanto meglio per chi ha l'effetto.


0601 21:35:22525 :: Failed to load script file : uiscript/rainsystem.py
0601 21:35:22529 ::
ui.py(line:3148) LoadScriptFile
system.py(line:192) execfile
system.py(line:163) Run
uiscript/rainsystem.py(line:2) ?
system.py(line:137) __pack_import


LoadScriptFile - exceptions.ImportError:No module named uiScriptWiki


0601 21:35:22530 :: ============================================================================================================
0601 21:35:22530 :: Abort!!!!


Any solution?

Sorry, my foult, i've reupped the right file :)
 
Inanzitutto non ti odia nessuno io ti voglio tanto bene. :pedobear:

E bravo comunque il fatto che sia una Gif mi lascia perplesso :\
ora guardo :D

P.s. Ci godo che li hai smerdati quelli.
 
The problem is you import a module doesn't exist in the uiscript, for repair only need quit the import and the system function.

One Screen:

pTyHg.jpg
 
Per la musica effetto temporale ti basta un : snd.SetMusicVolume(systemSetting.GetMusicVolume()) snd.FadeInMusic("BGM/musicablablabla")
 
È mezzanotte, non ho la minima voglia di leggermi tutte le pagine.

Nonostante l'implementazione sia semplice, devo dire che l'idea è originale, poi magari usando un "effect" (chiamarli effetti particellari è diventato troppo mainstream, addirittura c'è gente che ci si specializza... lol) ha un'apparenza più realistica, ma siamo qui per commentare quello che è stato rilasciato no?

Mi piace, probabilmente lo adatterò un po' e lo userò.
 
Per la musica effetto temporale ti basta un : snd.SetMusicVolume(systemSetting.GetMusicVolume()) snd.FadeInMusic("BGM/musicablablabla")

Ho tentato svariate volte, ho anche riprodotto come viene settata la musica natalizia e come viene impostata la musica al login ma niente, il client se ne sbatte di quel snd.FadeInMusic.... probabilmene essendo settata al login del pg, il client da priorità al comando del server di mettere la musica di default... provate e sappiatemi dire
 
Non dico niente sulla relaese, ma luscha, se volevi farla SERIAMENTE potevi rendere il post un pò meno serio, senza troppe spiegazioni sul motivo, e varie frecciatine... La relaese è importante, lasciando stare la pioggia, soprattutto per la potenzialità dello script.
Ma non so se lagghi di meno in effect o in py.
 
Solo a me questo sistema di pioggia (per ora ho visto solo il video postato coob) fa letteralmente schifo?
Graficamente parlando si intende :asd:
 
Ultima modifica:
Più che chiedere la discussione permanentemente sarebbe da punire chi genera Spam completamente gratuito.. a parer mio...

In ogni caso Asterix, io al contrario di te penso che la release sia estremamente seria, perchè non ho postato un video per farmi figo, ho postato il sistema completo, con una guida dettagliata su come l'ho realizzato e su come funziona, in modo che chiunque possa moddarlo, adattarlo e farlo evolvere come meglio crede....
Vi ho anche realizzato funzioni che io non ho usato, ma che sono a vostra completa disposizione per ogni eventualità, quindi al contrario di chi dice che è una release rosik, quello che è stato postato è assolutamente completo.
 
Ultima modifica:
:megaomg:
Penso che questa release sia fatta solo per far incazzare una persona e per pubblicità ma ormai lo sapete come la penso di sti post.
Non c'è neanche da preoccuparsi su questi 2 punti:
La release contiene un sacco di ABORTI di codice in python (almeno 10 laureati son morti dopo aver postato questa cosa, non scherzo), spammare il proprio server, in questo caso, ha un effetto più che negativo

Riepiloghiamo un pò di orrori nel codice:
  1. Vengono importati moduli MAI USATI DALLO SCRIPT (li ho segnati con #unused)
    Codice:
    # uirainscript.py
    import ui
    import net #unused
    import item #unused
    import skill #unused
    import locale #unused
    import wndMgr #unused
    import constInfo #unused
    import mouseModule #unused
    import uiScriptLocale #unused
    import interfaceModule #unused
    import background
    import snd #unused
    import systemSetting #unused
    import musicInfo #unused
    import uiPhaseCurtain
  2. Nel codice si RE-richiama il constructor di classe sul LoadWindow: (ommioddio? ma che pazzo?)
    Codice:
    #non si fa!
    	def LoadWindow(self):
    		self.__init__()
    Per chi non lo sa, appena dopo una classe in python viene istanziata (diversamente dal c++), python stesso calla il metodo __init__ a mo' di constructor (e __del__ a mo' di destructor quando viene tolta dalla memoria tramite gc o del vari)
    Ora, che pazzo di senso ha metterlo là? NESSUNO!
  3. Usiamo il fottutissimo __init__ e non variabili a caso sparse nel codice, come:
    Codice:
    ENVIRONMENT_RAIN="d:/ymir work/environment/rain.msenv"
    RAIN_ON = 1
    #
    Trasformandoli così in tipo self.envrain e self.rainmode (dichiarati sull'__init__)
  4. Tali metodi (quelli che iniziano con 2 underscore ovvero __) in python sono considerati "privati" (quindi richiamabili solo dentro la classe, tipo un private in c++), se non si ha un motivo specifico è meglio evitar di usarli: (magari li si potrebbe richiamare tramite cmdchat ed altre stronzate in generale)
    Codice:
    def __DisableRain(self):
    def __SetSunny(self):
    def __SetRain(self):
    def __ChangeToRain(self):
  5. Che senso ha iterare un dict a mo' di tupla? (concezione di key:value alquanto balorda)
    Codice:
    UE_RAIN_MAPS_LIST = {
    	"metin2_map_a1" : "",
    	"metin2_map_island" : "",
    }
    if background.GetCurrentMapName() in UE_RAIN_MAPS_LIST and RAIN_ON == 1:
    oddei. Altri 3 laureati son morti dopo ciò.
    1. Meglio utilizzare una tupla in questo caso
    2. RAIN_ON sarebbe meglio che venisse prima che dopo
    3. Esempio:
    Codice:
    RAIN_MAPS_LIST=("metin2_map_a1", "metin2_map_b1", "metin2_map_c1")
    #il codice qua rimane uguale:
    if RAIN_ON and background.GetCurrentMapName() in RAIN_MAPS_LIST: #se RAIN_ON è su 0, quindi false, neanche verrà iterata la tupla!
    PS. In python2.2 i bool non esistono e quindi si usano 1-0, fare var==1 qua si potrebbe evitare!
  6. Qua riguarda i gusti personali: Si potrebbe metter solo 1 try ma, comunque, si può lasciar così:
    Codice:
    		try:
    			pyScrLoader = ui.PythonScriptLoader()
    			pyScrLoader.LoadScriptFile(self, "uiscript/rainsystem.py")
    		except:
    			import exception
    			exception.Abort("RainSystem.LoadWindow.LoadObject")
    		try:
    			self.wndRain = self.GetChild("WndRain")
    		except:
    			import exception
    			exception.Abort("RainSystem.LoadWindow.ItemBound")
  7. Sul file "cose da aggiungere.txt" si dice di aggiungere ciò:
    Codice:
    ###constinfo.py
    
    ENVIRONMENT_RAIN="d:/ymir work/environment/rain.msenv"
    RAIN_ON = 1
    Perché? Che senso ha? Il codice non sta utilizzando constInfo, neanche interfacemodule sta utilizzando tali variabili! NON HA SENSO! oddio.
    Ti faccio 1 riepilogo alquanto banale e stupido:
    Per utilizzare un modulo importato in questa maniera si fa così:
    Codice:
    import constInfo
    constInfo.RAIN_ON #case sensitive!
  8. Il codice non legge GIF, prende esattamente 15 .TGA e le "gira di continuo"
    In pratica, l'environment serve solo a far apparire le nuvole dopodiché si fa un self.wndRain.Show()
    Quindi come viene fatta la pioggia? In pratica, self.wndRain.Show(), mostra nelle coordinate x&y 0 una immagine (che viene cambiata ogni millisecondo nelle restanti 15) che corrisponde alla pioggia ed occupa tutto lo schermo del client (in realtà è grande 1920x1080, chi userà client con dimensioni maggiori vedrà l'effetto pioggia nella prima metà della schermata)
  9. Etc (potrebbero esserci altri orrori che mi possan esser sfuggiti)
Tutto ciò che ho scritto è da prender in considerazione e da sistemare. A me non interessa delle "dispute varie" della gente di questo topic, mi son limitato a scriver ciò che non va nel codice. Se qualcuno si fosse offeso dal mio post è da ritenersi script-kiddie.
 
Ultima modifica:
Python lo sto usando da qualche mese, non pretendo quindi di saperne più di te, infatti molte osservazioni sono molto importanti e ne terrò sicuramente conto, tuttavia ci sono cose che mi hai recriminato che non mi pare siano troppo esatte:

__init__ è stato messo dentro LoadWindow perchè così facendo la classe viene inizializzata quando viene richiamata da interfacemodule, non prima (correggimi se sbaglio, non sono molto tecnico ancora e scripto in maniera sperimentale più che altro).

Sul fatto che il doppio underscore rende privato il metodo, davvero non ne avevo idea D: riupperò i file con i metodi non privati, visto che li ho uppati per permettere ad altri di usarli.

Veniamo al dizionario, come ho scritto io stesso, ho usato un dizionario perchè già c'era e non avevo voglia di cambiarlo in tupla, ma a dire il vero, potrebbe risultare più comodo un dizionario, visto che si potrebbe associare a una mappa un determinato environment, e far caricare un diverso environment a seconda della mappa in cui si è (basta far registrare un environment diverso e poi farlo cambiare).

Moduli importati a pazzo, comeper il dizionario, erano già presenti, e non mi sembrava essenziale levarli, in ogni caso li leverò visto che devo riuppare (anche in rainsystem.py si importa uiscriplocale anche se non serve.)

Punto 7. Hai ragione, avevo fatto due versione del rain system, una delle quali importava constinfo e prendeva da li il percorso dell'environment e RAIN_ON semplicemente ho uppato la versione che usava le variabili globali nello script, correggerò la guida visto che non serve quella parte (so come si importa constinfo, don't worry)

Il fatto del boolean mi è proprio sfuggito, avrò dei rimasugli mentali dal lua, anche qui correggerò.

Punto 8. Non mi pare tu abbia smascherato un complotto mondiale, c'è scritto chiaro e tondo come ho creato la pioggia, e ci sono scritte anche le problematiche sull'eventualità nella quale qualcuno con uno schermo con risoluzione maggiore di 1920 x 1080 provasse a usare la pioggia (non ci sono scritte esplicitamente, ma ho fatto chiaro riferimento alla grandezza delle immagini, e su come gestirle).
E le ani_image io personalmente le chiamo gif, visto che l'effetto è quello, se poi un laureato potrebbe aver da dire, faccia pure D:

Più che aborti mi sembra che siano state molte dimenticanze e distrazioni, ma questo è dovuto al fatto che non sono a casa e non sono dal mio pc, non sarà uno script ottimale, ma per quello che deve fare non mi pare abbia pecche tali da essere considerati aborti (tranne il fatto dei metodi privati), in ogni caso grazie, mi hai detto cose che ritengo veramente utili e che mi saranno di grande aiuto.

Punto 3, ho messo quelle variabili come globali e non come self. prendendo spunto dal resto del python di metin, perchè a parer mio è più chiaro di milioni di self.

- - - Updated - - -

Riuppato tenendo conto dei suggerimenti di Lollo
 
Ultima modifica:
  1. __init__ è stato messo dentro LoadWindow perchè così facendo la classe viene inizializzata quando viene richiamata da interfacemodule, non prima (correggimi se sbaglio, non sono molto tecnico ancora e scripto in maniera sperimentale più che altro).
  2. Veniamo al dizionario, come ho scritto io stesso, ho usato un dizionario perchè già c'era e non avevo voglia di cambiarlo in tupla, ma a dire il vero, potrebbe risultare più comodo un dizionario, visto che si potrebbe associare a una mappa un determinato environment, e far caricare un diverso environment a seconda della mappa in cui si è (basta far registrare un environment diverso e poi farlo cambiare).
  3. Il fatto del boolean mi è proprio sfuggito, avrò dei rimasugli mentali dal lua, anche qui correggerò.
  4. E le ani_image io personalmente le chiamo gif, visto che l'effetto è quello, se poi un laureato potrebbe aver da dire, faccia pure D:
  5. Più che aborti mi sembra che siano state molte dimenticanze e distrazioni, ma questo è dovuto al fatto che non sono a casa e non sono dal mio pc, non sarà uno script ottimale, ma per quello che deve fare non mi pare abbia pecche tali da essere considerati aborti
  6. Punto 3, ho messo quelle variabili come globali e non come self. prendendo spunto dal resto del python di metin, perchè a parer mio è più chiaro di milioni di self.
  1. Viene callato __init__ in questa circostanza:
    Codice:
    #interfacemodule.py
    	def __MakeRain(self):
    		wndRain = uiRainSystem.uiRainSystem()#istanza di classe, __init__ callato!
  2. Nel codice viene trattato solo key (di key:value) e value risulta una stringa vuota (quindi meglio usare tupla fin prova contraria)
    In caso value contenesse la path dell'env da caricare in base alla mappa allora si potrebbe usare una dict
    PS. Ricordo che gli elementi delle dict vengono allocati in memoria in modo disordinato
    Codice:
    >>> miadict={"coso":"blallo", "cosa":"glosso", "blablabla":"billiballo"}
    >>> print miadict
    {'coso': 'blallo', 'blablabla': 'billiballo', 'cosa': 'glosso'}
  3. Per quanto riguarda il lua: Un numero è un numero, un boolean è un boolean
    Il fatto che la ymir faccia var==1 è perché returna un numero e non un boolean
    In lua non c'è tale concezione: (quindi number ~= boolean)
    Codice:
    var=true
    if(var==1)then end -- errato, non si può
    print(tonumber(var)) -- altro problema, non si può (almeno in clua)
    if(var)then end -- valido
    --esempio con le func di metin: (horse.is_dead pusha un boolean)
    if horse.is_dead() then end -- valido
    if not horse.is_dead() then end -- valido
    if horse.is_dead()==1 then end -- non valido
    if horse.is_dead()==0 then end -- non valido
  4. Il fatto è che le .gif sono dei formati ben definiti sul web, chiamare qualsiasi altra cosa come tale crea confusione per chi legge il topic (già la gente capisce cazzi per mazzi su qualcosa scritta correttamente, se si usassero termini alquanto confusionali sarebbe ancora peggio)
  5. Son cose che in python non si dovrebbero fare a prescindere (tipo callare __init__ in quel modo ed includere moduli non usati)
  6. In base al tipo di implementazione, col tuo metodo bisogna utilizzare la keyword global per richiamare tali variabili dichiarate fuori dalla classe (soprattutto se viene usata su altri moduli, ci potrebbero esser dei chiari conflitti di variabili globali/locali, a lungo andare, se non la si mettesse) quindi: Se non c'è motivo di farlo, meglio evitare e ricorrere al self (ricordo che tale nome si potrebbe anche rinominare anche in solf o in blabla, è però di consuetudine chiamarlo self)
 
Da 7 pagine siamo passati a due... c'è senza alcun dubbio stato chi ha spammato e chi ha flammato/insultato, però ciò non giustifica questa eccessiva censura. Le persone hanno espresso delle opinioni e l'aver cancellato i loro messaggi non fa in modo che non abbiano detto determinate cose, motivo per cui ritengo sarebbe stato più opportuno avvisare i "colpevoli" ed, al limite, editare i messaggi, eliminando le parti più "scabrose", e dando anche modo a chi è stato tirato in ballo - senza apparenti validi motivi, a mio parere - di rispondere e di difendersi, purchè nei limiti della decenza e, ovviamente, del regolamento.

Chi non vuole conoscere la mia opinione su quello che è successo è liberissimo di NON aprire lo spoiler, ed è anzi incoraggiato a non farlo.
Vorrei brevemente premettere che, come detto, non c'entro assolutamente niente con la release, ma sono stato tirato in ballo: allora balliamo, no?

Dunque, è stato nominato il server UniversalElements, del cui staff faccio parte e di cui sono, quindi, rappresentante. Da nessuna parte è stato scritto che la release era a nome di questo server, quindi chi si è rivolto con il "voi" a Luscha può dormire sogni tranquilli, è nato tutto solo dalla sua testolina bacata [cit.]. Avete tirato in ballo il fatto che stiamo lavorando al server da tanto tempo (secondo voi da due anni, secondo noi da meno, ma sono sicuro che voi sarete mille volte più informati di me, già), e qui vorrei capire quale autorità ha a riguardo chi ha formulato queste pseudo-accuse: è per caso illegale fare le cose con calma e per bene, piuttosto che di fretta e mostrando cose che non sono ancora implementate per far incuriosire i player e poi, puntualmente, lasciarli delusi perchè quella determinata cosa non è ancora presente (leggasi: come su UniversalMetin, server dove il caro amico Coob era Game Founder, e per cui postò una video preview delle darkskills, cosa che non era stata implementata)?
Se poi le pressioni per l'apertura del server derivano da un desiderio di nerdare sul nostro server, beh, in questo caso vi perdono. ;)

Poi beh, vorrei commentare l'umiltà e la modestia del nostro caro Coob, che ci ha definito "buffoni" (ovviamente al plurale, come sopra), ha dato a Luscha del "fallito" (e in realtà in chiamata su Skype ha usato parole ben più pesanti, come "figlio di buona donna", ovviamente non nella versione censurata), ed ha giudicato la conoscenza sugli effect di Xander "manco la sua unghia". Quale altissima e sommissima persona abbiamo al nostro cospetto, è un onore poter vivere sul Suo stesso pianeta e poter respirare la stessa aria che respira anche Lui, riesco a intravedere quella scintilla di divino che fino ad ora reputavo inesistente: grazie per avermi aperto gli occhi, davvero.[/sarcasmo]
Piccola parentesi: Xander non ha imparato da nessuno a fare gli effetti, è autodidatta allo stesso identico modo di come lo è Coob, e lo dico perchè lo conosco da ben prima che "incontrasse" Coob, e già al tempo sapeva effectare discretamente. Chi sia il più bravo tra i due, poi, lo ha stabilito proprio il caro amico Coob con le sue affermazioni, come molti avranno letto.

Cambio di argomento: UniversalMetin. Server che ha vissuto due "edizioni", in entrambe le quali Coob è stato GF. Avete letto bene: GF, Game Founder. Avete mai letto di un Game Founder che vuole essere pagato per i suoi lavori? Prima di parlare con Coob la ritenevo una cosa assurda, eppure persone così esistono. Un Game Founder, uno dei fautori del server, in teoria dovrebbe contribuire alla creazione e prendere i guadagni dell'itemshop - qualora ce ne fossero - una volta aperto il server. Bene, Coob non ha mai contribuito economicamente alle ingenti spese del server e, nonostante il fatto che non ci siano stati guadagni (ma solo perdite economiche, in realtà), ha comunque accampato la pretesa di essere pagato... assurdo. Tra l'altro un Game Founder che non sa nemmeno che "le continue aperture e chiusure ed open beta" del SUO server sono state solo due è fantastico, no?

Per chi è arrivato ora a leggere questo topic, ed ha letto fino a questo punto del mio messaggio, probabilmente si chiederà a chi sto rispondendo. SE e SOLO SE siete estremamente curiosi, cliccate qui.

Per quanto riguarda la release, devo ammettere che la cosa è abbastanza arrangiata, come ho già detto a Luscha su Skype. Entrambe le versioni, quella ad effect e questa, hanno i loro pro e i loro contro, ognuno è libero di scegliere quale sia più comoda e utile per i suoi scopi: ovviamente, però, la scelta resta limitata se la versione releasata è solo questa di Luscha. XD
Per quanto riguarda gli orrori in python, Lollo, non sono solo i laureati in Scienze Informatiche o Ingegneria Informatica a crepare a causa di Luscha, fidati: ogni volta che scrive su Skype crepano anche un paio di laureati in Lettere, per i suoi errori di battitura e di grammatica XDD
 
Stato
Discussione chiusa ad ulteriori risposte.
Indietro
Top Bottom