######################################################## #Minigame (HangMan) ######################################################## CatchEvent OnLapperStart() Globalvar $Letter; Globalvar $Alphabet; Globalvar $WordToGuess; #Player that filled in the word that need to be guessed Globalvar $GetLetter; GlobalVar $LengthOfWord; #Lenght of the word that need to be guessed Globalvar $LetterPosition; Globalvar $WrongGuesses; #Many wrongguesses Globalvar $Executioner; #Person that will think of a word Globalvar $HangManMinigameStarted; #Person that will think of a word Globalvar $GetGuessedWord; #Show String that is currently be guessed. $HangManMinigameStarted = 0; $WrongGuesses = 0; $WordToGuess = "DANTACO"; $Alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; FOR($i=1;$i<27;$i=$i+1) $GetLetter = substr($Alphabet,$i-1,1); #Get next Letter from string after each loop $Letter[$i,0] = "".$GetLetter; #Save Letter in Array $Letter[$i,1] = 0; #Status of the letter ENDFOR EndCatchEvent CatchEvent OnMSO( $userName, $text ) # Player event $idxOfFirtsSpace = indexOf( $text, " "); IF( $idxOfFirtsSpace == -1 ) THEN $command = $text; $argv = ""; ELSE $command = subStr( $text,0,$idxOfFirtsSpace ); $argv = trim( subStr( $text,$idxOfFirtsSpace ) ); ENDIF SWITCH( $command ) CASE "!hm": IF ($HangManMinigameStarted == 0) THEN SetPlayerVar($userName,"InHangManAsPlayer",1); # Player joined the minigame HangMan(0,0); ELSE SetPlayerVar($userName,"InHangManAsSpectator",1); # Player joined the minigame Privmsg("Hangman Minigame is currently busy, You joined as a spectator"); HangMan(0,0); ENDIF BREAK; ENDSWITCH EndCatchEvent Sub HangMan( $KeyFlags,$id ) openprivbutton( "hm_bgd",58-15,50,103,70,6,-1,16,""); openprivbutton( "hm_bgd1",58-15,50,103,70,6,-1,16,""); openprivbutton( "hm_bgd020",59-15,55,33,64,6,-1,32,""); openprivbutton( "hm_bgd021",92-15,55,47,64,6,-1,32,""); openprivbutton( "hm_msg",93-15,55,45,5,4,-1,0,langEngine( "%{hangmanmsg}%")); openprivbutton( "hm_Title",59-15,51,80,4,6,-1,32,"^6Welcome to Hangman minigame"); openprivbutton( "hm_CloseButton",134-15,51,5,4,6,-1,32,"^1X",CloseHangMan); #####PLAYERLIST (Players&Specators)##### $HMUSERLIST_HT = 55; #Height of the First User openprivbutton( "HM_Userlist_title",125,51,20,4,6,-1,32,"^3PlayerList"); #background openprivbutton( "HM_Userlist_bgd",125,51,20,68,6,-1,32,""); #background $InHangmanMinigame = getListOfPlayers("U"); FOREACH( $maVar IN $InHangmanMinigame ) IF(GetPlayerVar($maVar["value"],"InHangManAsPlayer") == 1) THEN openPrivButton("HangManMiniGame_".$i,125,$HMUSERLIST_HT,20,4,4,-1,32,"".GetPlayerVar($maVar["value"],"NickName")); #PlayerName in list $CloseHangManMiniGame = $CloseHangManMiniGame."&HangManMiniGame_".$i; $HMUSERLIST_HT = $HMUSERLIST_HT+4; #ButtonHeight+4 ENDIF ENDFOREACH $HMUSERLIST_HT = $HMUSERLIST_HT+1; #Extra Space openPrivButton("Spectator".$i,125,$HMUSERLIST_HT,20,4,4,-1,32,"^3Spectators"); #SpectatorList $HMUSERLIST_HT = $HMUSERLIST_HT+4; #ButtonHeight+4 FOREACH( $maVar IN $InHangmanMinigame ) IF(GetPlayerVar($maVar["value"],"InHangManAsSpectator") == 1) THEN openPrivButton("HangManMiniGame_".$i,125,$HMUSERLIST_HT,20,4,4,-1,32,"".GetPlayerVar($maVar["value"],"NickName")); #PlayerName in list $CloseHangManMiniGame = $CloseHangManMiniGame."&HangManMiniGame_".$i; $HMUSERLIST_HT = $HMUSERLIST_HT+4; #ButtonHeight+4 ENDIF ENDFOREACH #####PLAYERLIST##### /* #Stick 01 openprivbutton( "hm_draw_01",60,110,31,4,6,-1,32,""); openprivbutton( "hm_draw_0110",60,110,31,4,6,-1,32,""); #Stick 02 openprivbutton( "hm_draw_02",67,59,2,55,6,-1,32,""); openprivbutton( "hm_draw_021",67,59,2,55,6,-1,32,""); #Stick 03 openprivbutton( "hm_draw_03",67,59,18,3,6,-1,32,""); openprivbutton( "hm_draw_031",67,59,18,3,6,-1,32,""); #Rope openprivbutton( "hm_draw_04",84,59,1,10,6,-1,32,""); openprivbutton( "hm_draw_041",84,59,1,10,6,-1,32,""); #Head openprivbutton( "hm_draw_05",81,69,7,7,6,-1,32,""); openprivbutton( "hm_draw_051",81,69,7,7,6,-1,32,""); openprivbutton( "hm_draw_052",81,69,7,4,6,-1,0,"^3o o"); openprivbutton( "hm_draw_053",81,71,7,3,6,-1,0,"^1|"); openprivbutton( "hm_draw_054",81,73,7,3,6,-1,0,"^7====="); #Body openprivbutton( "hm_draw_06",83,76,3,17,6,-1,32,""); openprivbutton( "hm_draw_061",83,76,3,17,6,-1,32,""); #Left Arm openprivbutton( "hm_draw_07",78,80,5,1,6,-1,32,""); openprivbutton( "hm_draw_071",78,80,5,1,6,-1,32,""); #Right Arm openprivbutton( "hm_draw_08",86,80,5,1,6,-1,32,""); openprivbutton( "hm_draw_081",86,80,5,1,6,-1,32,""); #Legs openprivbutton( "hm_draw_09",81,93,7,2,6,-1,32,""); openprivbutton( "hm_draw_091",81,93,7,2,6,-1,32,""); #LeftLeg openprivbutton( "hm_draw_010",81,95,1,8,6,-1,32,""); openprivbutton( "hm_draw_0101",81,95,1,8,6,-1,32,""); #RightLeg openprivbutton( "hm_draw_011",87,95,1,8,6,-1,32,""); openprivbutton( "hm_draw_0111",87,95,1,8,6,-1,32,""); */ #EndDesign Letters(0,0); EndSub Sub Letters($keyflags,$id) $Width=80; openprivbutton( "hm_let_bgd",$Width-3,109,47,10,6,-1,32,""); #Row 1 FOR($i=1;$i<14;$i=$i+1) #Letters A - M IF ($Letter[$i,1] == 1) THEN openprivbutton($i,$Width,109,4,5,6,-1,0,"^2".$Letter[$i,0]);#Good Guess ELSE IF ($Letter[$i,1] == 2) THEN openprivbutton($i,$Width,109,4,5,6,-1,0,"^1".$Letter[$i,0]); #Wrong Guess ELSE openprivbutton($i,$Width,109,4,5,6,-1,0,"^7".$Letter[$i,0],ClickedLetter); #Available ENDIF ENDIF $Width=$Width+3; ENDFOR #Row 2 $Width=80; FOR($i=14;$i<27;$i=$i+1) #Letters N - Z IF ($Letter[$i,1] == 1) THEN openprivbutton($i,$Width,114,4,5,6,-1,0,"^2".$Letter[$i,0]); #Good Guess ELSE IF ($Letter[$i,1] == 2) THEN openprivbutton($i,$Width,114,4,5,6,-1,0,"^1".$Letter[$i,0]); #Wrong Guess ELSE openprivbutton($i,$Width,114,4,5,6,-1,0,"^7".$Letter[$i,0],ClickedLetter); #Available ENDIF ENDIF $Width=$Width+3; ENDFOR EndSub Sub ClickedLetter($keyflags,$id) /* 0 = Available 1 = In Word 2 = Wrong Guess */ $GetGuessedWord = ""; $LengthOfWord = StrLen( $WordToGuess ); #Get length of word FOR ($i=1;$i<=$LengthOfWord;$i=$i+1) #Check Each Letter $GetLetterFromWord = substr($WordToGuess,$i-1,1); IF ($GetLetterFromWord == $Letter[ToNum($id),0]) THEN #IF letter matched with guessed Letter $Letter[ToNum($id),1] = 1; privmsg("^7Good Guess!! Letterposition:^3".$i); #DebugCheck . Displays Letter position in word $LetterPosition[ToNum($i),0] = "".$Letter[ToNum($id),0]; #Store letter on current position ENDIF #####GUESSED WORD BUTTON##### IF ($LetterPosition[ToNum($i),0] == "") THEN $GetGuessedWord = $GetGuessedWord."_"; #Not guessed letters displays "_" ELSE $GetGuessedWord = $GetGuessedWord.$LetterPosition[ToNum($i),0]; #Set Guessed letters. ENDIF openprivbutton( "GuessedWord",77,70,47,7,6,-1,32,"Word: ^3".$GetGuessedWord); #Show Word #####GUESSED WORD BUTTON##### ENDFOR #####WRONG GUESS##### IF($i == $LengthOfWord+1 && $Letter[ToNum($id),1] != 1) THEN #After checking letters but no match privmsg("^1Wrong Guess!"); $Letter[ToNum($id),1] = 2; $WrongGuesses = $WrongGuesses+1; ENDIF #####WRONG GUESS##### Letters(0,0); #Go back to Letter Sub DrawHangMan(0,0); EndSub Sub DrawHangMan( $KeyFlags,$id ) SWITCH( $WrongGuesses ) CASE 1: openprivbutton( "hm_draw_01",45,110,31,4,6,-1,32,""); openprivbutton( "hm_draw_0110",45,110,31,4,6,-1,32,""); BREAK; CASE 2: openprivbutton( "hm_draw_02",67-15,59,2,55,6,-1,32,""); openprivbutton( "hm_draw_021",67-15,59,2,55,6,-1,32,""); BREAK; CASE 3: openprivbutton( "hm_draw_03",67-15,59,18,3,6,-1,32,""); openprivbutton( "hm_draw_031",67-15,59,18,3,6,-1,32,""); BREAK; CASE 4: openprivbutton( "hm_draw_04",84-15,59,1,10,6,-1,32,""); openprivbutton( "hm_draw_041",84-15,59,1,10,6,-1,32,""); BREAK; CASE 5: openprivbutton( "hm_draw_05",81-15,69,7,7,6,-1,32,""); openprivbutton( "hm_draw_051",81-15,69,7,7,6,-1,32,""); openprivbutton( "hm_draw_052",81-15,69,7,4,6,-1,0,"^3o o"); openprivbutton( "hm_draw_053",81-15,71,7,3,6,-1,0,"^1|"); openprivbutton( "hm_draw_054",81-15,73,7,3,6,-1,0,"^7====="); BREAK; CASE 6: openprivbutton( "hm_draw_06",83-15,76,3,17,6,-1,32,""); openprivbutton( "hm_draw_061",83-15,76,3,17,6,-1,32,""); BREAK; CASE 7: openprivbutton( "hm_draw_07",78-15,80,5,1,6,-1,32,""); openprivbutton( "hm_draw_071",78-15,80,5,1,6,-1,32,""); BREAK; CASE 8: openprivbutton( "hm_draw_08",86-15,80,5,1,6,-1,32,""); openprivbutton( "hm_draw_081",86-15,80,5,1,6,-1,32,""); BREAK; CASE 9: openprivbutton( "hm_draw_09",81-15,93,7,2,6,-1,32,""); openprivbutton( "hm_draw_091",81-15,93,7,2,6,-1,32,""); BREAK; CASE 10: openprivbutton( "hm_draw_010",81-15,95,1,8,6,-1,32,""); openprivbutton( "hm_draw_0101",81-15,95,1,8,6,-1,32,""); BREAK; CASE 11: openprivbutton( "hm_draw_011",87-15,95,1,8,6,-1,32,""); openprivbutton( "hm_draw_0111",87-15,95,1,8,6,-1,32,""); BREAK; ENDSWITCH EndSub Sub CloseHangMan($keyflags,$id) SetCurrentPlayerVar("InHangManAsPlayer",0); # Player left minigame SetCurrentPlayerVar("InHangManAsSpectator",0); # Player left minigame EndSub Lang "EN" hangmanmsg = "^7=====================================================================" . "%nl%^7Choose a word or sentence that need to be guessed" . "%nl%^7Also it is allowed to give a hint, to make it easier" . "%nl%^7" . "%nl%^3!!!!!!!!Have Fun!!!!!!!!" . "%nl%^7====================================================================="; EndLang