Guida [Source&Download Autoit] Forza4

Stato
Discussione chiusa ad ulteriori risposte.

sissy92_

Utente Silver
29 Settembre 2009
181
2
0
91
Ultima modifica da un moderatore:
Inizio postando uno screen:
screenshot017f.jpg



Elenco funzioni:
- impostazione velocità di discesa delle caselle
- nuova partita
- salva partita
- apri partita
- finestra di segnalazione bug
- per evitare lo spam nella segnalazione bug, ho implementato una lista nera di ip che posso aggiornare quando voglio. Se il vostro ip sarà rilevato nella suddetta lista vi sarà impedito di inviare la segnalazione.
- inverti colori(giallo -> rosso , rosso -> giallo)
- salva log partite (Si, No)
- visualizza log partite
- pulisci log partite
- cambia nomi giocatori
- azzera punti
- info programma

Download: forza4.exe

Invito tutti a segnalare eventuali bug nella apposita finestra.

Source:
Codice:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <SliderConstants.au3>
#include <Timers.au3>
#Include <File.au3>
#include <IE.au3>
#RequireAdmin
Global $verifica[7][6]
pulisci_verifica()
Global $Pic[7][6]
Global $Button[8]
Global $coord[7]=[192,256,320,384,448,512,576]
Global $coord2[6]= [48,112,176,240,304,368]
Global $stato[8]
Global $conto_punti=0
Global $vel=300
Global $max=0
Global $patte=0
Global $punti_player1=0
Global $punti_player2=0
Global $illumina=True
Global $salva_log=True
Global $player[3]
Global $colore[3]=["","Giallo","Rosso"]
FileInstall("C:\Users\EEE-PC\Desktop\forza4 logo.gif",@ScriptDir&"\forza4 logo.gif",1)
FileInstall("C:\Users\EEE-PC\Desktop\bianco.gif",@ScriptDir&"\bianco.gif",1)
FileInstall("C:\Users\EEE-PC\Desktop\giallo.gif",@ScriptDir&"\giallo.gif",1)
FileInstall("C:\Users\EEE-PC\Desktop\rosso.gif",@ScriptDir&"\rosso.gif",1)

_gui_nomi()
_scrivi("La partita fra "&$player[1]&" e "&$player[2]&" è iniziata.")
$Form1 = GUICreate("Forza 4", 641, 453, 192, 124)
$MenuItem1 = GUICtrlCreateMenu("&File")
$MenuItem8 = GUICtrlCreateMenuItem("Nuova Partita", $MenuItem1)
$MenuItem4 = GUICtrlCreateMenuItem("Salva Partita", $MenuItem1)
$MenuItem5 = GUICtrlCreateMenuItem("Apri partita", $MenuItem1)
$MenuItem17 = GUICtrlCreateMenuItem("Segnala Bug", $MenuItem1)
$MenuItem6 = GUICtrlCreateMenuItem("Esci", $MenuItem1)
$MenuItem2 = GUICtrlCreateMenu("&Opzioni")
$MenuItem7 = GUICtrlCreateMenuItem("Inverti Colori", $MenuItem2)
$MenuItem9 = GUICtrlCreateMenu("Salva Log Partite", $MenuItem2)
$MenuItem14 = GUICtrlCreateMenuItem("Si", $MenuItem9, -1 , 1)
GUICtrlSetState(-1, $GUI_CHECKED)
$MenuItem15 = GUICtrlCreateMenuItem("No", $MenuItem9, -1 , 1)
$MenuItem10 = GUICtrlCreateMenuItem("Visualizza Log Partite", $MenuItem2)
$MenuItem11 = GUICtrlCreateMenuItem("Cambia Nomi", $MenuItem2)
$MenuItem16 = GUICtrlCreateMenuItem("Azzera Punti", $MenuItem2)
$MenuItem3 = GUICtrlCreateMenu("&Info")
$MenuItem13 = GUICtrlCreateMenuItem("Info Programma", $MenuItem3)
$Pic[0][0] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", 192, 48, 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic[0][1] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", 192, 112, 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic[0][2] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", 192, 176, 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic[0][3] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", 192, 240, 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic[0][4] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", 192, 304, 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic[0][5] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", 192, 368, 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic[1][0] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", 256, 48, 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic[1][1] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", 256, 112, 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic[1][2] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", 256, 176, 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic[1][3] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", 256, 240, 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic[1][4] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", 256, 304, 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic[1][5] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", 256, 368, 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic[2][0] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", 320, 48, 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic[2][1] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", 320, 112, 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic[2][2] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", 320, 176, 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic[2][3] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", 320, 240, 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic[2][4] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", 320, 304, 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic[2][5] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", 320, 368, 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic[3][0] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", 384, 48, 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic[3][1] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", 384, 112, 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic[3][2] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", 384, 176, 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic[3][3] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", 384, 240, 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic[3][4] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", 384, 304, 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic[3][5] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", 384, 368, 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic[4][0] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", 448, 48, 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic[4][1] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", 448, 112, 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic[4][2] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", 448, 176, 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic[4][3] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", 448, 240, 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic[4][4] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", 448, 304, 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic[4][5] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", 448, 368, 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic[5][0] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", 512, 48, 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic[5][1] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", 512, 112, 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic[5][2] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", 512, 176, 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic[5][3] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", 512, 240, 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic[5][4] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", 512, 304, 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic[5][5] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", 512, 368, 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic[6][0] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", 576, 48, 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic[6][1] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", 576, 112, 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic[6][2] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", 576, 176, 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic[6][3] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", 576, 240, 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic[6][4] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", 576, 304, 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic[6][5] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", 576, 368, 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Button[1] = GUICtrlCreateButton("Fila 1", 200, 16, 49, 25, $WS_GROUP)
$Button[2] = GUICtrlCreateButton("Fila 2", 264, 16, 49, 25, $WS_GROUP)
$Button[3] = GUICtrlCreateButton("Fila 3", 328, 16, 49, 25, $WS_GROUP)
$Button[4] = GUICtrlCreateButton("Fila 4", 392, 16, 49, 25, $WS_GROUP)
$Button[5] = GUICtrlCreateButton("Fila 5", 456, 16, 49, 25, $WS_GROUP)
$Button[6] = GUICtrlCreateButton("Fila 6", 520, 16, 49, 25, $WS_GROUP)
$Button[7] = GUICtrlCreateButton("Fila 7", 584, 16, 49, 25, $WS_GROUP)
$Label1 = GUICtrlCreateLabel("Giocatore1: "&$player[1], 8, 144, 179, 17)
$Label2 = GUICtrlCreateLabel("Giocatore2: "&$player[2], 8, 168, 179, 17)
$Label3 = GUICtrlCreateLabel("Colore "&$player[1]&": "&$colore[1], 8, 192, 122, 17)
$Label4 = GUICtrlCreateLabel("Colore "&$player[2]&": "&$colore[2], 8, 216, 122, 17)
$Label5 = GUICtrlCreateLabel("E' il turno di: "&$player[1], 8, 240, 131, 17)
$logo = GUICtrlCreatePic(@ScriptDir&"\forza4 logo.gif", 8, 8, 177, 121, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Button1 = GUICtrlCreateButton("Nuova Partita", 8, 264, 89, 33, $WS_GROUP)
$Label6 = GUICtrlCreateLabel("Velocità di discesa: 70%", 8, 304, 175, 17)
$Slider1 = GUICtrlCreateSlider(0, 320, 185, 25)
GUICtrlSetLimit(-1, 1000, 0)
GUICtrlSetData(-1, 700)
$Label7 = GUICtrlCreateLabel("Punteggi", 56, 344, 62, 23)
GUICtrlSetFont(-1, 12, 800, 0, "Times New Roman")
$Label8 = GUICtrlCreateLabel($Player[1]&": "&$punti_player1, 8, 368, 179, 17)
$Label9 = GUICtrlCreateLabel($Player[2]&": "&$punti_player2, 8, 392, 179, 17)
$Label10 = GUICtrlCreateLabel("Patte: "&$patte, 8, 416, 177, 17)
GUISetState(@SW_SHOW)
$giocatore=1
While 1
 $nMsg = GUIGetMsg()
 Switch $nMsg
    Case $GUI_EVENT_CLOSE
        _scrivi("La partita fra "&$player[1]&" e "&$player[2]&" è stata terminata chiudendo il programma.")
        Exit
    Case $MenuItem13
        MsgBox(64,"Info Programma","Questo programma è stato creato da Sissy92 per UnfairGamers.com Questo gioco dispone di numerose opzioni fra le quali:"&@CRLF&"- Salvare e aprire partite;"&@CRLF&"- Cambiare colori;"&@CRLF&"- Cambiare Nick-name;"&@CRLF&"- Salvare e visualizzare i Log delle partite;"&@CRLF&"Per tutto il resto ti basta provare il programma! :)")
    Case $MenuItem17
        GUISetState(@SW_HIDE,$Form1)
        _segnalazione()
        GUISetState(@SW_SHOW,$Form1)
    Case $MenuItem14
        $salva_log=True
    Case $MenuItem15
        $salva_log=False
    Case $MenuItem11
        GUISetState(@SW_HIDE)
        $prec1=$player[1]
        $prec2=$player[2]
        _gui_nomi()
        _scrivi("I giocatori "&$prec1&" e "&$prec2&" hanno cambiato i loro nomi in "&$player[1]&" e "&$player[2]&".")
        GUISetState(@SW_SHOW,$Form1)
        GUICtrlSetData($Label1,"Giocatore1: "&$player[1])
        GUICtrlSetData($Label2,"Giocatore2: "&$player[2])
        GUICtrlSetData($Label3,"Colore "&$player[1]&": "&$colore[1])
        GUICtrlSetData($Label4,"Colore "&$player[2]&": "&$colore[2])
        GUICtrlSetData($Label8,$Player[1]&": "&$punti_player1)
        GUICtrlSetData($Label9,$Player[2]&": "&$punti_player2)
        GUICtrlSetData($Label5,"E' il turno di: "&$player[$giocatore])
    Case $MenuItem16
        _scrivi("Nella partita fra "&$player[1]&" e "&$player[2]&" i punti sono stati azzerati.")
        $punti_player1=0
        $punti_player2=0
        $patte=0
        GUICtrlSetData($Label8,$Player[1]&": "&$punti_player1)
        GUICtrlSetData($Label9,$Player[2]&": "&$punti_player2)
        GUICtrlSetData($Label10,"Patte: "&$patte)
    Case $MenuItem10
        GUISetState(@SW_HIDE)
        _cronologia()
        GUISetState(@SW_SHOW,$Form1)
    Case $MenuItem5
        _apri()
    Case $MenuItem4
        _salva($player[1],$player[2],$giocatore,$vel)
    Case $MenuItem6
        Exit
    Case $MenuItem7
        If $colore[1] = "Giallo" Then
            $colore[1] = "Rosso"
            $colore[2] = "Giallo"
        Else
            $colore[1] = "Giallo"
            $colore[2] = "Rosso"
        EndIf
        _refresh()
    Case $Button1
        GUICtrlDelete($Button1)
        $Button1 = GUICtrlCreateButton("Nuova Partita", 8, 264, 89, 33, $WS_GROUP)
        _nuova_partita()
    Case $Button[1]
        aggiungi(0,$vel)
    Case $Button[2]
        aggiungi(1,$vel)
    Case $Button[3]
        aggiungi(2,$vel)
    Case $Button[4]
        aggiungi(3,$vel)
    Case $Button[5]
        aggiungi(4,$vel)
    Case $Button[6]
        aggiungi(5,$vel)
    Case $Button[7]
        aggiungi(6,$vel)
    Case $Slider1
        $temp=GUICtrlRead($Slider1)
        $vel=($temp-1000)*-1
        GUICtrlSetData($Label6,"Velocità di discesa: "&Int($temp/10)&"%")
    Case $MenuItem8
        GUICtrlDelete($Button1)
        $Button1 = GUICtrlCreateButton("Nuova Partita", 8, 264, 89, 33, $WS_GROUP)
        _nuova_partita()
 EndSwitch
WEnd

;========================================================
;========================FUNZIONI========================
;========================================================

Func get_path($giocatore)
    If $giocatore=1 Then
        $path=@ScriptDir&"\"&$colore[1]&".gif"
    Else
        $path=@ScriptDir&"\"&$colore[2]&".gif"
    EndIf
    Return $path
EndFunc

Func pulisci_verifica()
    For $y=0 To 5
        For $i=0 To 6
            $verifica[$i][$y]=0
        Next
    Next
EndFunc

Func aggiungi($num,$vel)
    For $i=1 To 7
        GUICtrlSetState($Button[$i],$GUI_DISABLE)
    Next
    For $i=0 To 5
            GUICtrlSetImage($Pic[$num][$i],get_path($giocatore))
            Sleep($vel)
            If $i=4 And $verifica[$num][$i+1] = 0 Then
                GUICtrlDelete($Pic[$num][$i])
                $Pic[$num][$i] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", $coord[$num], $coord2[$i], 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
                GUICtrlSetImage($Pic[$num][$i+1],get_path($giocatore))
                $verifica[$num][$i+1]=$giocatore
                $x=$num
                $y=5
                ExitLoop
            ElseIf $verifica[$num][$i+1] <> 0 Then
                $verifica[$num][$i]=$giocatore
                $x=$num
                $y=$i
                ExitLoop
            Else
                GUICtrlDelete($Pic[$num][$i])
                $Pic[$num][$i] = GUICtrlCreatePic(@ScriptDir&"\bianco.gif", $coord[$num], $coord2[$i], 65, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
            EndIf
        Next
        conta_max($num)
        For $i=1 To 7
            If Not $stato[$i]="hide" Then
                GUICtrlSetState($Button[$i],$GUI_ENABLE)
            EndIf
        Next
        cerca($x,$y,$giocatore)
        $giocatore=cambia_giocatore($giocatore)
        $max=$max+1
        If $max=42 Then
            For $i=1 to 7
                GUICtrlSetState($Button[$i],$GUI_DISABLE)
            Next
            $patte=$patte+1
            GUICtrlSetData($label10,"Patte: "&$patte)
            GUICtrlSetBkColor($Button1,0x00FF00)
        EndIf
EndFunc

Func cambia_giocatore($giocatore)
    If $giocatore=1 Then
        $giocatore=2
        GUICtrlSetData($label5,"E' il turno di: "&$player[2])
    Else
        $giocatore=1
        GUICtrlSetData($label5,"E' il turno di: "&$player[1])
    EndIf
    Return $giocatore
EndFunc

Func conta_max($num)
    $conto=0
    For $i=0 To 5
        If $verifica[$num][$i] <> 0 Then
            $conto=$conto+1
        EndIf
    Next
    If $conto=6 Then
        $stato[$num+1]="hide"
        GUICtrlSetState($Button[$num+1],$GUI_DISABLE)
    EndIf
EndFunc

Func cerca($x,$y,$giocatore)
    ;======== CERCA IN VERTICALE ================
    $conto_punti=0
    For $i=$y To 0 Step -1
        If $verifica[$x][$i] = $giocatore Then
            $conto_punti= $conto_punti+1
        Else
            ExitLoop
        EndIf
    Next

    For $i=$y To 5
        If $verifica[$x][$i] = $giocatore Then
            $conto_punti= $conto_punti+1
        Else
            ExitLoop
        EndIf
    Next
    If $conto_punti-1 = 4 Then
        MsgBox(64,"Complimenti","Complimenti "&get_name($giocatore)&"!! Hai vinto!")
        _vinto($giocatore)
    Else
        ;======== CERCA IN ORIZZONTALE ================
        $conto_punti=0
    For $i=$x To 0 Step -1
        If $verifica[$i][$y] = $giocatore Then
            $conto_punti= $conto_punti+1
        Else
            ExitLoop
        EndIf
    Next

    For $i=$x To 6
        If $verifica[$i][$y] = $giocatore Then
            $conto_punti= $conto_punti+1
        Else
            ExitLoop
        EndIf
    Next

        If $conto_punti-1 = 4 Then
            MsgBox(64,"Complimenti","Complimenti "&get_name($giocatore)&"!! Hai vinto!")
            _vinto($giocatore)
        Else
            ;======== CERCA IN OBLIQUO ================
            $conto_punti=0
            $o=$y
            For $i = $x To 6 Step 1
                    If $verifica[$i][$o] = $giocatore Then
                        $conto_punti= $conto_punti+1
                    Else
                        ExitLoop
                    EndIf
                    If $o<5 Then
                        $o=$o+1
                    Else
                        ExitLoop
                    EndIf
                Next
            $o=$y
            For $i = $x To 0 Step -1
                    If $verifica[$i][$o] = $giocatore Then
                        $conto_punti= $conto_punti+1
                    Else
                        ExitLoop
                    EndIf
                    If $o>0 Then
                        $o=$o-1
                    Else
                        ExitLoop
                    EndIf
            Next
            If $conto_punti-1 = 4 Then
                MsgBox(64,"Complimenti","Complimenti "&get_name($giocatore)&"!! Hai vinto!")
                _vinto($giocatore)
            Else
                $conto_punti=0
                $o=$y
                For $i = $x To 6 Step 1
                    If $verifica[$i][$o] = $giocatore Then
                        $conto_punti= $conto_punti+1
                    Else
                        ExitLoop
                    EndIf
                    If $o>0 Then
                        $o=$o-1
                    Else
                        ExitLoop
                    EndIf
                Next
                $o=$y
                For $i = $x To 0 Step -1
                    If $verifica[$i][$o] = $giocatore Then
                        $conto_punti= $conto_punti+1
                    Else
                        ExitLoop
                    EndIf
                    If $o<5 Then
                        $o=$o+1
                    Else
                        ExitLoop
                    EndIf
                Next
                If $conto_punti-1 = 4 Then
                    MsgBox(64,"Complimenti","Complimenti "&get_name($giocatore)&"!! Hai vinto!")
                    _vinto($giocatore)
                EndIf
            EndIf
        EndIf
    EndIf
EndFunc

Func get_name($giocatore)
    If $giocatore=1 Then
        $nome=$player[1]
    Else
        $nome=$player[2]
    EndIf
    Return $nome
EndFunc

Func _nuova_partita()
    _scrivi("E' iniziata una nuova partita.")
    For $x=0 to 6
        For $y=0 to 5
            GUICtrlDelete($Pic[$x][$y])
            $Pic[$x][$y]=GUICtrlCreatePic(@ScriptDir&"\bianco.gif",$coord[$x],$coord2[$y],65,65,BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
            $verifica[$x][$y]=0
        Next
    Next
    For $i=1 to 7
        GUICtrlSetState($Button[$i],$GUI_ENABLE)
        $stato[$i]=""
    Next
    $max=0
EndFunc

Func _vinto($giocatore)
    $max=0
    If $giocatore = 1 Then
        $punti_player1=$punti_player1+1
        GUICtrlSetData($Label8,$Player[1]&": "&$punti_player1)
    Else
        $punti_player2=$punti_player2+1
        GUICtrlSetData($Label9,$Player[2]&": "&$punti_player2)
    EndIf
    _scrivi($player[$giocatore]&" ha vinto la partita. Il nuovo punteggio è: "&$player[1]&":"&$punti_player1&" ; "&$player[2]&":"&$punti_player2&".")
    For $i=1 to 7
        GUICtrlSetState($Button[$i],$GUI_DISABLE)
    Next
    GUICtrlSetBkColor($Button1,0x00FF00)
EndFunc

Func _salva($player1,$player2,$giocatore,$vel)
    $dir=FileSaveDialog("Salva Partita",@DesktopDir,"(*.forza4)",2,"salvataggio.forza4")
    _FileCreate($dir)
    FileWrite($dir,"[giocatori]"&@CRLF&"player1="&$player1&@CRLF&"player2="&$player2&@CRLF&"giocatore="&$giocatore&@CRLF&"turno="&get_name($giocatore)&@CRLF&@CRLF&"[settings]"&@CRLF&"velocità="&$vel&@CRLF&"salva_log="&$salva_log&@CRLF&"illumina="&$illumina&@CRLF&@CRLF&"[punteggi]"&@CRLF&"punti_giocatore1="&$punti_player1&@CRLF&"punti_giocatore2="&$punti_player2&@CRLF&"patte="&$patte&@CRLF&@CRLF&"[caselle]"&@CRLF)
    For $x=0 To 6
        For $y=0 To 5
            FileWriteLine($dir,$x&" "&$y&"="&$verifica[$x][$y])
        Next
    Next
    FileWriteLine($dir,"")
    FileWriteLine($dir,"[button]")
    For $i=1 To 7
        FileWriteLine($dir,"Button"&$i&"="&$stato[$i])
    Next
    _scrivi("La partita fra "&$player[1]&" e "&$player[2]&" è stata salvata con successo!")
EndFunc

Func _apri()
    $dir=FileOpenDialog("Apri Partita",@DesktopDir,"(*.forza4)",2,"salvataggio.forza4")
    $new=@TempDir&"\temp_forza4.ini"
    FileCopy($dir,@TempDir&"\temp_forza4.ini",1)
    $player[1]=IniRead($new,"giocatori","player1","error")
    _controlla_errore($player[1],"player1")
    $player[2]=IniRead($new,"giocatori","player2","error")
    _controlla_errore($player[2],"player2")
    $giocatore=IniRead($new,"giocatori","giocatore","error")
    _controlla_errore($giocatore,"giocatore")
    $turno=IniRead($new,"giocatori","turno","error")
    _controlla_errore($turno,"turno")
    $vel=IniRead($new,"settings","velocità","error")
    _controlla_errore($vel,"vel")
    $salva_log=IniRead($new,"settings","salva_log","error")
    _controlla_errore($salva_log,"salva_log")
    $illumina=IniRead($new,"settings","illumina","error")
    _controlla_errore($illumina,"illumina")
    $punti_player1=IniRead($new,"punteggi","punti_giocatore1","error")
    _controlla_errore($punti_player1,"punti_player1")
    $punti_player2=IniRead($new,"punteggi","punti_giocatore2","error")
    _controlla_errore($punti_player2,"punti_player2")
    $patte=IniRead($new,"punteggi","patte","error")
    _controlla_errore($patte,"patte")
    For $x=0 To 6
        For $y=0 To 5
            $verifica[$x][$y]=IniRead($new,"caselle",$x&" "&$y,"error")
            If $verifica[$x][$y] = "error" Then
                MsgBox(16,"Error","Si è verificato un errore durante il caricamento del file di salvataggio. caselle")
                ExitLoop(3)
            EndIf
            GUICtrlDelete($Pic[$x][$y])
            $max=0
            If $verifica[$x][$y]=0 Then
                $path_pic=@ScriptDir&"\bianco.gif"
            ElseIf $verifica[$x][$y]=1 Then
                $path_pic=@ScriptDir&"\giallo.gif"
                $max=$max+1
            ElseIf $verifica[$x][$y]=2 Then
                $path_pic=@ScriptDir&"\rosso.gif"
                $max=$max+1
            Else
                MsgBox(16,"Error","Si è verificato un errore durante il caricamento del file di salvataggio.")
            EndIf
            GUICtrlCreatePic($path_pic,$coord[$x],$coord2[$y],65,65,BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
        Next
    Next
    For $i=1 To 7
        $stato[$i]=IniRead($new,"Button","button"&$i,"error")
        If $stato[$i] = "error" Then
            MsgBox(16,"Error","Si è verificato un errore durante il caricamento del file di salvataggio. caselle")
            ExitLoop(2)
        ElseIf $stato[$i]="hide" Then
            GUICtrlSetState($Button[$i],$GUI_DISABLE)
        EndIf
    Next
    GUICtrlSetData($Label1,"Giocatore1: "&$player[1])
    GUICtrlSetData($Label2,"Giocatore2: "&$player[2])
    GUICtrlSetData($Label3,"Colore "&$player[1]&": "&$colore[1])
    GUICtrlSetData($Label4,"Colore "&$player[2]&": "&$colore[2])
    GUICtrlSetData($Label5,"E' il turno di: "&$turno)
    $temp=($vel*-1)+1000
    GUICtrlSetData($Slider1,$temp)
    GUICtrlSetData($Label6,"Velocità di discesa: "&Int($temp/10)&"%")
    GUICtrlSetData($Label8,$Player[1]&": "&$punti_player1)
    GUICtrlSetData($Label9,$Player[2]&": "&$punti_player2)
    GUICtrlSetData($Label10,"Patte: "&$patte)
    _scrivi("La partita fra "&$player[1]&" e "&$player[2]&" è stata caricata con successo!")
EndFunc

Func _controlla_errore($var,$var2)
    If $var="error" Then
        MsgBox(16,"Error","Si è verificato un errore durante il caricamento del file di salvataggio."&$var2)
        Exit
    EndIf
EndFunc

Func _refresh()
    For $x=0 To 6
        For $y=0 To 5
            If $verifica[$x][$y] <> 0 Then
                GUICtrlDelete($pic[$x][$y])
                $tt=$verifica[$x][$y]
                GUICtrlCreatePic(@ScriptDir&"\"&$colore[$tt]&".gif",$coord[$x],$coord2[$y],65,65,BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
            EndIf
        Next
    Next
    GUICtrlSetData($Label3,"Colore "&$player[1]&": "&$colore[1])
    GUICtrlSetData($Label4,"Colore "&$player[2]&": "&$colore[2])
EndFunc

Func _scrivi($frase)
    If Not FileExists(@TempDir&"\cronologia_forza4.txt") Then
        _FileCreate(@TempDir&"\cronologia_forza4.txt")
    EndIf
    If $salva_log = True Then
        FileWriteLine(@TempDir&"\cronologia_forza4.txt",@MDAY&"/"&@MON&"/"&@YEAR&"     "&@HOUR&":"&@MIN)
        FileWriteLine(@TempDir&"\cronologia_forza4.txt",$frase)
    EndIf
EndFunc

Func _gui_nomi()
$Form_nomi = GUICreate("Inserire i nomi", 366, 114, 192, 124)
$Pic_nomi = GUICtrlCreatePic(@ScriptDir&"\forza4 logo.gif", 0, 0, 169, 113, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$label_giocatore1 = GUICtrlCreateLabel("Giocatore1:", 176, 8, 59, 17)
$Input1 = GUICtrlCreateInput("", 176, 24, 169, 21)
$Label_giocatore2 = GUICtrlCreateLabel("Giocatore2:", 176, 64, 59, 17)
$Input2 = GUICtrlCreateInput("", 176, 80, 169, 21)
$OK = GUICtrlCreateButton("OK", 256, 48, 89, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
    Case $GUI_EVENT_CLOSE
        Exit
    Case $ok
        $player[1]=GUICtrlRead($Input1)
        $player[2]=GUICtrlRead($Input2)
        If $player[1]="" Or $player[2]="" Then
            MsgBox(16,"Errore","Inserire un nome")
        Else
            GUISetState(@SW_HIDE)
            ExitLoop
        EndIf
EndSwitch
WEnd
EndFunc

Func _cronologia()
$read=FileRead(@TempDir&"\cronologia_forza4.txt")
If $read = "" Then
    MsgBox(64,"Info","Non ci sono dati salvati")
Else
$Form_cronologia = GUICreate("Cronologia Partite", 386, 384, 192, 124)
$Edit_cronologia = GUICtrlCreateEdit("", 8, 8, 369, 337, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_READONLY,$ES_WANTRETURN,$WS_HSCROLL,$WS_VSCROLL))
GUICtrlSetData(-1, $read)
$Button1_cronologia = GUICtrlCreateButton("Torna al gioco", 40, 352, 129, 25, $WS_GROUP)
$Button2_cronologia = GUICtrlCreateButton("Cancella Cronologia", 192, 352, 129, 25, $WS_GROUP)
GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            GUISetState(@SW_HIDE,$Form_cronologia)
            ExitLoop
        Case $Button1_cronologia
            GUISetState(@SW_HIDE,$Form_cronologia)
            ExitLoop
        Case $Button2_cronologia
            FileDelete(@TempDir&"\cronologia_forza4.txt")
            _FileCreate(@TempDir&"\cronologia_forza4.txt")
            GUICtrlSetData($Edit_cronologia, "")
    EndSwitch
WEnd
EndIf
EndFunc

Func _segnalazione()
$lista=_controlla_lista_nera()
If $lista = False Then
    $Form1_segnalazione = GUICreate("Segnalazione Bug", 300, 124, 192, 124)
    $Edit1_segnalazione = GUICtrlCreateEdit("", 8, 8, 281, 81)
    GUICtrlSetData(-1, "")
    $Button1_segnalazione = GUICtrlCreateButton("Invia Segnalazione", 8, 96, 105, 25, $WS_GROUP)
    $Button2_segnalazione = GUICtrlCreateButton("Torna al gioco", 120, 96, 97, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)

    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
        Case $GUI_EVENT_CLOSE
            GUISetState(@SW_HIDE,$Form1_segnalazione)
            ExitLoop
        Case $Button2_segnalazione
            GUISetState(@SW_HIDE,$Form1_segnalazione)
            ExitLoop
        Case $Button1_segnalazione
            $read_segnalazione=GUICtrlRead($Edit1_segnalazione)
            If $read_segnalazione = "" Then
                MsgBox(16,"Error","Segnalazione non valida")
            Else
                $sito="http://serverchristmas.altervista.org/segnalazione.php?msg="&@IPAddress1&"/"&$read_segnalazione
                $oIE = _IECreate($sito,0,0)
                Sleep(500)
                _IEQuit ($oIE)
                MsgBox(64,"Invio","Segnalazione inviata. La ringraziamo di aver contribuito allo sviluppo di questo programma.")
                GUICtrlSetData($Edit1_segnalazione,"")
            EndIf
        EndSwitch
    WEnd
Else
    MsgBox(16,"Errore","Siamo spiacenti ma il suo IP è nella lista nera. Non potrà più inviare segnalazioni.")
EndIf
EndFunc

Func _controlla_lista_nera()
    $ritorno=False
    $oIE_recv = _IECreate("http://serverchristmas.altervista.org/lista_nera.html",0,0)
    $sHTML = _IEBodyReadText ($oIE_recv)
    If Not $sHTML = "" Then
        $ip=StringSplit($sHTML,"æ")
        For $i=1 to $ip[0]
            If $ip[$i]=@IPAddress1 Then
                $ritorno=True
            EndIf
        Next
    EndIf
    Return $ritorno
EndFunc
 
Stato
Discussione chiusa ad ulteriori risposte.