#cs ---------------------------------------------------------------------------- AutoIt Version: 3.3.6.1 Author: Matwachich Script Function: #ce ---------------------------------------------------------------------------- #include "autoitobject.au3" Global $oError = ObjEvent("AutoIt.Error", "_ErrFunc") Func _ErrFunc() ConsoleWrite("! COM Error ! Number: 0x" & Hex($oError.number, 8) & " ScriptLine: " & $oError.scriptline & " - " & $oError.windescription & @CRLF) Return EndFunc ;==>_ErrFunc Func _class_Personne($nom = "noname", $age = 0, $sex = "m", $vie = 100) ; Definition de la classe personne Local $class = _AutoItObject_Class() If Not $sex = "m" And Not $sex = "f" Then $sex = "m" If $vie > 100 Then $vie = 100 If $vie < 0 Then $vie = 0 Local $isAlive = 0 If $vie > 0 Then $isAlive = 1 With $class .AddProperty("name", $ELSCOPE_READONLY, $nom) .AddProperty("age", $ELSCOPE_READONLY, $age) .AddProperty("sex", $ELSCOPE_READONLY, $sex) .AddProperty("life", $ELSCOPE_READONLY, $vie) .AddProperty("isAlive", $ELSCOPE_READONLY, $isAlive) .AddMethod("_Attack", "_Personne_Attack") .AddMethod("_Subit", "_Personne_Subit") .AddMethod("_Report", "_Personne_Report") .AddDestructor("_Personne_Destructor") EndWith ConsoleWrite("> Created personne:" & @CRLF) ConsoleWrite(" Name: " & $nom & @CRLF) ConsoleWrite(" Age: " & $age & @CRLF) ConsoleWrite(" Sex: " & $sex & @CRLF) ConsoleWrite(" Life: " & $vie & @CRLF) ConsoleWrite("> ---------------------------" & @CRLF) Return $class.Object EndFunc Func _Personne_Attack($oSelf, $oCible, $iDegats) ; Méthode de la classe personne ConsoleWrite("+> " & $oSelf.name & " --> " & $oCible.name & " (" & $iDegats & ")" & @CRLF) $oCible._Subit($iDegats) EndFunc Func _Personne_Subit($oSelf, $iDegats) ; Méthode de la classe personne ConsoleWrite("!> " & $oSelf.name & " <-- (" & $iDegats & ") ") $oSelf.life = $oSelf.life - $iDegats If $oSelf.Life < 0 Then $oSelf.Life = 0 $oSelf.isAlive = 0 EndIf ConsoleWrite("New Life: " & $oSelf.life & " - IsAlive: " & $oSelf.isAlive & @CRLF) EndFunc Func _Personne_Report($oSelf) ; Méthode de la classe personne ConsoleWrite("- " & $oSelf.name & " => Life: " & $oSelf.life & "; Age: " & $oSelf.age & "; Sex: " & $oSelf.sex & @CRLF) EndFunc Func _Personne_Destructor($oSelf) ; Méthode de la classe personne ConsoleWrite("!> " & $oSelf.name & " Is dead!" & @CRLF) EndFunc ; ######################################### _AutoItObject_StartUp() $david = _class_Personne("David", 20, "m", 100) ; On créer une instance de la classe personne (la variable $david) $goliath = _class_Personne("Goliath", 21, "m", 80) ; On créer une instance de la classe personne (la variable $goliath) $david._Attack($goliath, 20) $goliath._Attack($david, 50) $david._Attack($goliath, 70) $david._Report() $goliath._Report() _AutoItObject_Shutdown()