Jump to content
  • 0
Kassio Felix

[NPC] - Jogo da forca Duvida sobre função

Question

Boa tarde pessoal queria saber qual é a função no script que alterar uma variável para uma string. pois no cronus usávamos [function implode] porem no rAthena eu não sei qual.

Alguém poderia me ajudar?

segue o script abaixo

Spoiler
//=====  Script  =======================================================================
//= (Jogo da Forca)
//===== By: ==================================================================================
//= by Candy
//===== Current Version: =====================================================================
//= um Simples jogo de Jogo da Forca
//===== Additional Comments: =================================================================
// 1.4 Traduzido por: Renato Guedes ( Thor )
// 1.5 Alterado o Nome do NPC para "Jogo da Forca"
//============================================================================================

prontera,154,204,4	script	Jogo da Forca	935,{

	//=== Configurations ======================================================================

		set [email protected]$ , "^0000FF[Jogo da Forca]^000000" ; // Nome do NPC.
		set [email protected] , 4  ;                // char no mínimo no mapa
		set [email protected] , 12 ;               // não podemos ver mais de 12 personagens em um chatroom...
		set [email protected]$ , "^792d5b" ;          // A cor de colorise o texto °°
		set [email protected] , 0 ;                // M nível mínimo para configurar o NPC (padrão 0)
		set [email protected] , 0 ;               // Log a palavra entra pelas pessoas? 0 = não 1 = sim (logmes + debugmes)
		set .check_gotocount, 2048 ;     // Limite de loop infinito.
		set .autoevent , 1 ;            // Por padrão todos os 30 minutos.
		set .cutinposition , 2 ;      //   0, 1 , 2 , 3 , 4  (Ver o doc)
	//=========================================================================================

	//=== Functions ============================================================================
		function change_case  ;              // Função para alterar o caso de uma letra.
		function array_search ;            // Retorna um valor que é armazenar em um array.
		function str_to_array ;           // Alterar uma string para uma variável.
		function implode ;               // Alterar uma variável para uma string.
		function load_cutin ;
	//=========================================================================================


		switch( ( ! .block && [email protected] > getgmlevel() ) ? 2 : .block )
		{


			case 0:


					do
					{

						// Carregar as definições.
						if ( ! .init )
							donpcevent strnpcinfo(0) + "::OnInit" ;

						//Inicializar o jogador/NPC..
						set .block   ,  1 ;  // Não bloquear o NPC.
						set [email protected]$ , "" ;    // init the var.
						initnpctimer ;       // Timer para depurar.

						mes [email protected]$ ;
						mes "Insira uma palavra com " + [email protected]$ + [email protected] + "^000000 ate " + [email protected]$ + [email protected] + "^000000 caracteres." ;
						mes "( " [email protected]$ + "\"0\"^000000 para sair )" ;
						next ;


						while( input( [email protected]$, [email protected], [email protected] ) || ! str_to_array( [email protected]$  , ".letter$" ) )
						{

							// "0" --> "exit".
							if ( [email protected]$ == "0" )
							{

								close2;
								set .block , 0 ;
								cleararray .letter$[0] , "" , 128 ;
								end ;

							}

							mes [email protected]$ ;
							mes "O tamanho da palavra estar incorreto ou existe um caractere invalido." ;
							next ;
							
							mes [email protected]$ ;
							mes "Insira uma palavra de " + [email protected]$ + [email protected] + "^000000 para " + [email protected]$ + [email protected] + "^000000 caracteres" ;
							next ;

						}


						mes [email protected]$ ;
						mes "Use \"" +  [email protected]$  + [email protected]$ + "^000000\" ?" ;
						next ;

						set .init , 0 ;

					} while ( select( " -  Sim: -  Não" ) == 2 ) ;



			AutoSelect:

					set .lettercount , getarraysize( .letter$ ) - 1 ;    // Char número.
					set .wordsearch$ , [email protected]$ ;                        // Salvar em um "." var.


					if ( [email protected] && playerattached() ) // Para evitar um erro, se é um autoevent (jogador não está em anexo) 
					{

						logmes "|Jogo da Forca| " + strcharinfo(0)+ " digite uma palavra : " + [email protected]$ ;
						debugmes "|Jogo da Forca| " + strcharinfo(0) + " digite um mote : " + [email protected]$ ;

					}


					for ( set [email protected] , 0 ; [email protected] < .lettercount ; set [email protected] , [email protected] + 1 ) // Criamos o " _ _ _ _" string.
					{
						set .letterhide$[ [email protected] ] , " _" ;
					}


					set .letterhide$[ 0 ], .letter$[ 0 ] ;                        // Mostramos a primeira letra.
					set .letterhide$[ .lettercount ], .letter$[ .lettercount ] ;  // Mostramos a última letra.





					for ( set [email protected] , 0 ; [email protected] < .lettercount ; set [email protected] , [email protected] + 1 )
					{

						set [email protected] , ( array_search ( .letter$[ 0 ] , ".letter$" , [email protected] , .lettercount ) ) ;

						if ( [email protected] + 1 )
						{
							set .letterhide$[ [email protected] ], .letter$[ [email protected] ] ;
							set [email protected] , [email protected] ;
						}

					}

					for ( set [email protected] , 0 ; [email protected] < .lettercount ; set [email protected] , [email protected] + 1 )
					{

						set [email protected], ( array_search( .letter$[ .lettercount ] , ".letter$" ,	[email protected] , .lettercount ) ) ;

						if ( [email protected] + 1 )
						{
							set .letterhide$[ [email protected] ], .letter$[ [email protected] ] ;
							set [email protected], [email protected] ;
						}

					}


					set .wordfind$ , implode( "" , ".letterhide$" ) ;
					initnpctimer ;
					delwaitingroom ;
					waitingroom .wordfind$ , 0 ;   // Criar o Chat-Room 
					set .block , 3 ;               // desbloquear o jogo.

				if ( playerattached() )
					close ;
				else
					end ;






			case 1:   // Alguém está a criação do NPC. 

					mes [email protected]$ ;
					mes "Alguem esta criando o jogo..." ;
					mes "Aguarde." ;
					close ;


					
			case 2:  // Ele não pode config o NPC.
			
					mes [email protected]$ ;
					mes "Você não pode iniciar o jogo!" ;
					close ;


			case 3:


					do
					{

						if ( .wordfind$ == "" )
						{
							close2;
							cutin "" , 255 ;
							end;
						}

						mes [email protected]$ ;
						mes .wordfind$ ;   // Mostramos a palavra.
						load_cutin() ;

						mes "Letras já utilizadas: " + [email protected]$ + ( implode( " " , ".blacklist$" ) ) + "^000000." ; //Mostramos a lista.
						next ;



						if ( select( " -  Digitar uma letra.: -  Digitar a Palavra" ) - 1 )
						{

							// digite uma palavra.
							mes [email protected]$ ;
							mes "Se você já sabe a palavra? então digite ela toda!" ;
							next ;
							input @string$ ;


							if ( compare( "_|~key~|_" + @string$ + "_|~key~|_" , "_|~key~|_" + .wordsearch$ + "_|~key~|_" ) )
							{

								announce strcharinfo( 0 ) + " Encontrou a palavra: " + .wordsearch$ + " !", bc_blue | bc_map ;
								donpcevent strnpcinfo( 0 ) + "::OnInit" ;    //On Reset.

								mes [email protected]$ ;
								mes "Parabéns !" ;

								close2 ;
								cutin "" , 255 ;
								end ;

							}
							else
							{

								mes [email protected]$ ;
								mes "A palavra esta errada." ;

								load_cutin( 1 ) ;

								next ;
								continue ;

							}

						}



						// Input letter :

						mes [email protected]$ ;
						mes "Escolha uma letra" ;
						mes "(" [email protected]$ + " 0^000000 para sair. )" ;
						next ;

						if ( input( @string$ , 1 , 1 ) )
						{

							mes [email protected]$ ;
							mes "Ops! digite só uma letra." ;
							mes "Obrigado!" ;
							next ;
							continue ;

						}


						if ( @string$ == "0" )
						{
							close2 ;
							cutin "" , 255 ;
							end ;
						}

						set @string$ , change_case( @string$ ) ;

						if ( @string$ == "0" ) // Se não for uma letrar (alfabeto aA-zZ)
						{
					
							mes [email protected]$ ;
							mes "Caracteres Proibido." ;
							next ;
							continue ;

						}
						else if ( array_search ( @string$ , ".blacklist$") + 1 )   // Letra já utilizado.
						{

							mes [email protected]$ ;
							mes "Esta letra é já foi dita (veja a lista)" ;
							mes "Eescolha uma outra." ;
							next ;
							continue ;

						}

						set .blacklist$[ getarraysize( .blacklist$ ) ] , @string$ ;    // Colocamos a letra na lista. 
						set @i , array_search( @string$, ".letter$") ;

						if ( @i == -1 )    // A letra não está na palavra. .
						{

							heal - MaxHP / 5 , 0 ; //Vida divised por 5.
							mes [email protected]$ ;
							mes "Não é possível encontrar a letra na palavra..." ;
							load_cutin( 1 ) ;
							next ;
							continue ;

						}
						else
						{

							mes [email protected]$ ;
							mes "Letra está na palavra !" ;


							for ( set @i , 0 ; @i < .lettercount ; set @i , @i + 1 )
							{

								set @j , ( array_search( @string$ , ".letter$" ,	@i , .lettercount ) ) ;

								if ( @j + 1 )
								{
									set .letterhide$[ @j ], .letter$[ @j ] ;
									set @i, @j ;
								}

							}

							set .wordfind$ , implode( " " , ".letterhide$" ) ;

							delwaitingroom ;   // devemos atualizar o chat-room nome 
							waitingroom .wordfind$ , 0 ;


							if ( array_search( " _" , ".letterhide$" ) == -1 )    //Se todas as letras são encontrar.
							{

								announce strcharinfo( 0 ) + " Descobriu a palavra: " + .wordsearch$ + " !", bc_blue | bc_map ;
								donpcevent strnpcinfo( 0 ) + "::OnInit" ;
								close2 ;
								cutin "" , 255 ;
								end ;

							}

							next ;

							if ( select( " -  Continuar: -  Sair" ) - 1 )
							{
								close2 ;
								cutin "" , 255 ;
								end ;
							}
						}

					} while( HP ) ;


					// O jogador é mort x)

					mes [email protected]$ ;
					mes "Ahhhh, Você Perdeu..." ;
					announce "|Jogo da Forca| " + strcharinfo( 0 ) + " Perdeu! e acaba de ser morto" , bc_blue | bc_area ;
					close2 ;
					cutin "" , 255 ;
					end ;

		}




	OnInit:

		delwaitingroom ;
		set .block , 0 ;
		set .init  , 1 ;
		set .stat , 0 ;

		cleararray .letter$[ 0 ]     , "" , 128 ;
		cleararray .blacklist$[ 0 ]  , "" , 128 ;
		cleararray .letterhide$[ 0 ] , "" , 128 ;

		set .lettercount , 0  ;
		set .wordfind$   , "" ;
		set .wordsearch$ , "" ;

		setarray .wordlist$[0], //Por favor, é só usar Aa-Zz personagens!
		"eathena",
		"bored",
		"keyworld",
		"kissme",
		"mysevername",
		"poring",
		"lunatic",
		"fabre",
		"noidea";

		end ;


	OnMinute00:
	OnMinute30:

	if ( .autoevent )
	{
		set [email protected] , rand ( 0 , getarraysize( .wordlist$ ) - 1 ) ;
		str_to_array( .wordlist$[[email protected]]  , ".letter$" ) ;
		set [email protected]$ , .wordlist$[[email protected]] ;
		callsub AutoSelect;
	}

	//Debug
	OnTimer120000:

		if ( .block - 1 )
			end ;
		else
		{
			set .block , 0 ;
			stopnpctimer ;
		}


	OnTimer600000:

		donpcevent strnpcinfo(0) + "::OnInit" ;
		stopnpctimer ;
		end ;











	//=== FUNCTIONS ===========================================================================

	function	load_cutin	{
	
		if ( getarg( 0 , 0 ) )
			set .stat , .stat + 1 ;
		
		cutin "hangman_" + .stat , .cutinposition ;
		
		if ( .stat >= 10 )
		{
			announce "|Jogo da Forca| Ninguem encontrara a palavra! hahaha! " , bc_blue | bc_area ;
			donpcevent strnpcinfo(0) + "::OnInit" ;
		}
		
		return ;
	}

	function	change_case	{


		setarray [email protected]$[ 0 ],
		"A" , "B" , "C" , "D" , "E" , "F" , "G",
		"H" , "I" , "J" , "K" , "L" , "M" , "N" ,
		"O" , "P" , "Q" , "R" , "S" , "T" , "U" ,
		"V" , "W" , "X" , "Y" , "Z" ;

		for( set [email protected] , 0 ; [email protected] < 26 ; set [email protected], [email protected] + 1 )
		{
	
			if ( compare( getarg( 0 ) , [email protected]$[ [email protected] ] ) )
			{

				return [email protected]$[ [email protected] ] ;

			}

		}

		return "0" ;

	}




	function	array_search	{



		for ( set [email protected] , getarg(2,0) ; [email protected] < getarg( 3, getarraysize( getd( getarg(1) ) )  ) ; set [email protected] , [email protected] + 1 )
		{

			if ( getd( getarg( 1 ) + "[" + [email protected] + "]" ) == getarg( 0 ) )
			{

				return [email protected] ;

			}

		}


		return -1 ;

	}
	
	



	function	str_to_array	{



		if ( getstrlen( getarg(0) ) >= 110 )
		{
			return 0 ;
		}


		if ( atoi( getd( getarg(1) ) ) )
		{
			cleararray getd( getarg(1) + "[ 0 ]" ) , 0 , 128 ;
		}
		else
		{
			cleararray getd( getarg(1) + "[ 0 ]" ) , "" , 128 ;
		}

		setarray [email protected]$[ 0 ],
		"A" , "B" , "C" , "D" , "E" , "F" , "G",
		"H" , "I" , "J" , "K" , "L" , "M" , "N" ,
		"O" , "P" , "Q" , "R" , "S" , "T" , "U" ,
		"V" , "W" , "X" , "Y" , "Z" ;

		set [email protected] , 0 ;
		set [email protected]_temp$, "_|~key~|_" + getarg(0) + "_|~key~|_" ;



		while( ! compare ( "_|~key~|_" + [email protected]$ + "_|~key~|_" , [email protected]_temp$ ) )
		{

			set [email protected] , [email protected] + 1 ;

			for ( set [email protected] , 0 ; [email protected] <= getarraysize([email protected]$) ; set [email protected] , [email protected] + 1 )
			{

				if ( compare( [email protected]_temp$ , "_|~key~|_" + [email protected]$ + [email protected]$[ [email protected] ] ) )
				{

					set [email protected]$ , [email protected]$ + [email protected]$[ [email protected] ] ;
					setd getarg(1) + "[" + getarraysize( getd( getarg(1) ) ) + "]" , [email protected]$[ [email protected] ] ;
					break;

				}

			}


			// Caracteres não encontrado.
			if ( [email protected] == getarraysize( [email protected]$ ) )
				return 0 ;


			if ( [email protected] >= .check_gotocount / getarraysize([email protected]$) - 1 )
			{

				sleep2( 1 ) ;
				set [email protected] , 0 ;

			}

		}

		return 1 ;

	}




	function	implode	{


		set [email protected]_temp$ , "" ;
		
		for ( set [email protected] , 0 ; [email protected] < getarraysize( getd( getarg(1) ) ) ; set [email protected] , [email protected] + 1 )
		{

			set [email protected]_temp$ , [email protected]_temp$ + getarg( 0 , "" ) + getd( getarg( 1 ) + "[" + [email protected] + "]" ) ;
		
		}
		
		return [email protected]_temp$;

	}

}

 

 

Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0
prontera,147,197,5    script    Jogo da Forca    767,{

    //=== Configuração ========================================================================

        set [email protected]$, "^0000FF[Jogo da Forca]^000000"; // Nome do NPC.
        set [email protected], 4  ;                // char no mínimo no mapa
        set [email protected], 12;               // não podemos ver mais de 12 personagens em um chatroom...
        set [email protected]$, "^792d5b";          // A cor de colorise o texto °°
        set [email protected], 99;                // M nível mínimo para configurar o NPC (padrão 0)
        set [email protected], 0;               // Log a palavra entra pelas pessoas? 0 = não 1 = sim (logmes + debugmes)
        set .check_gotocount, 2048;     // Limite de loop infinito.
        set .autoevent, 1;            // Por padrão todos os 30 minutos.
        set .cutinposition, 2;      //   0, 1, 2, 3, 4  (Ver o doc)
    //=========================================================================================

    //=== Funções =============================================================================
        function change_case  ;              // Função para alterar o caso de uma letra.
        function array_search;            // Retorna um valor que é armazenar em um array.
        function str_to_array;           // Alterar uma string para uma variável.
        function emplode;               // Alterar uma variável para uma string.
        function load_cutin;
    //=========================================================================================


        switch( ( ! .block && [email protected] > getgmlevel() ) ? 2 : .block ){
            case 0:
                    do{
                        if ( ! .Init )
                            donpcevent strnpcinfo(0) + "::OnInit";
                        set .block,  1;  // Não bloquear o NPC.
                        set [email protected]$, "";    // init the var.
                        initnpctimer;       // Timer para depurar.
                        mes [email protected]$;
                        mes "Eu cobro uma taxa de 5000000z.";
                        mes "Deseja continuar mesmo assim????";
                        menu "Sim",Lsim,"Não",Lnao2;
                        
                    Lnao2:
                        next;
                        mes "Ah então não me aborrece";
                        close;
                    
                    
                    Lnao:
                        next;
                        mes "Você não possui Zenys o suficiente";
                        mes "volte quando tiver zenys.";
                        close;
                    
                    Lsim:
                        if (Zeny < 5000000) goto Lnao;
                        Zeny-= 5000000;
                        next;
                        mes "Insira uma palavra com " + [email protected]$ + [email protected] + "^000000 ate " + [email protected]$ + [email protected] + "^000000 caracteres.";
                        mes "( " [email protected]$ + "\"0\"^000000 para sair )";
                        next;
                        while( input( [email protected]$, [email protected], [email protected] ) || ! str_to_array( [email protected]$, ".letter$" ) ){
                            // "0" --> "exit".
                            if ( [email protected]$ == "0" )    {
                                close2;
                                set .block, 0;
                                cleararray .letter$[0], "", 128;
                                end;
                            }

                            mes [email protected]$;
                            mes "O tamanho da palavra estar incorreto ou existe um caractere inválido.";
                            next;
                            
                            mes [email protected]$;
                            mes "Insira uma palavra de " + [email protected]$ + [email protected] + "^000000 para " + [email protected]$ + [email protected] + "^000000 caracteres";
                            next;
                        }


                        mes [email protected]$;
                        mes "Use \"" +  [email protected]$  + [email protected]$ + "^000000\" ?";
                        next;
                        set .Init, 0;
                    } while ( select( " -  Sim: -  Não" ) == 2 );
                    
AutoSelect:
                    set .lettercount, getarraysize( .letter$ ) - 1;    // Char número.
                    set .wordsearch$, [email protected]$;                        // Salvar em um "." var.
                    if ( [email protected] && playerattached() ){
                        logmes "|Jogo da Forca| " + strcharinfo(0)+ " digite uma palavra : " + [email protected]$;
                        debugmes "|Jogo da Forca| " + strcharinfo(0) + " digite um mote : " + [email protected]$;
                    }
                    for ( set [email protected], 0; [email protected] < .lettercount; set [email protected], [email protected] + 1 ) {
                        set .letterhide$[ [email protected] ], " _";
                    }
                    set .letterhide$[ 0 ], .letter$[ 0 ];                        // Mostramos a primeira letra.
                    set .letterhide$[ .lettercount ], .letter$[ .lettercount ];  // Mostramos a última letra.
                    for ( set [email protected], 0; [email protected] < .lettercount; set [email protected], [email protected] + 1 ){
                        set [email protected], ( array_search ( .letter$[ 0 ], ".letter$", [email protected], .lettercount ) );
                        if ( [email protected] + 1 ){
                            set .letterhide$[ [email protected] ], .letter$[ [email protected] ];
                            set [email protected], [email protected];
                        }
                    }
                    for ( set [email protected], 0; [email protected] < .lettercount; set [email protected], [email protected] + 1 ){
                        set [email protected], ( array_search( .letter$[ .lettercount ], ".letter$",    [email protected], .lettercount ) );
                        if ( [email protected] + 1 ){
                            set .letterhide$[ [email protected] ], .letter$[ [email protected] ];
                            set [email protected], [email protected];
                        }
                    }
                    set .wordfind$, emplode( "", ".letterhide$" );
                    initnpctimer;
                    delwaitingroom;
                    waitingroom .wordfind$, 0;   // Criar o Chat-Room 
                    set .block, 3;               // desbloquear o jogo.

                if ( playerattached() )
                    close;
                else
                    end;                    

            case 1: 
                    // Alguém está a criação do NPC.
                    mes [email protected]$;
                    mes "Alguém está a iniciar o jogo...";
                    mes "Aguarde.";
                    close;
            
            case 2: 
                    // Ele não pode config o NPC.
                    mes [email protected]$;
                    mes "Você não pode iniciar o jogo!";
                    close;

            case 3:
                    do{
                        if ( .wordfind$ == "" )    {
                            close2;
                            cutin "", 255;
                            end;
                        }

                        mes [email protected]$;
                        mes .wordfind$;   // Mostramos a palavra.
                        load_cutin();
                        //Mostramos a lista.
                        mes "Letras já utilizadas: " + [email protected]$ + ( emplode( " ", ".blacklist$" ) ) + "^000000.";
                        next;

                        if ( select( " -  Digitar uma letra.: -  Digitar a Palavra" ) - 1 )    {
                            // digite uma palavra.
                            mes [email protected]$;
                            mes "Se você já sabe a palavra? então digite ela toda!";
                            next;
                            input @string$;

                            if ( compare( "_|~key~|_" + @string$ + "_|~key~|_", "_|~key~|_" + .wordsearch$ + "_|~key~|_" ) ){
                                announce strcharinfo( 0 ) + " Encontrou a palavra: " + .wordsearch$ + " e ganhou 5kk em Zenys!", bc_blue | bc_map;
                                Zeny+= 5000000;
                                donpcevent strnpcinfo( 0 ) + "::OnInit";    //On Reset.
                                mes [email protected]$;
                                mes "Parabéns !";
                                close2;
                                cutin "", 255;
                                end;

                            }
                            else{
                                mes [email protected]$;
                                mes "A palavra esta errada.";
                                load_cutin( 1 );
                                next;
                                continue;
                            }
                        }

                        // Input letter :
                        mes [email protected]$;
                        mes "Escolha uma letra";
                        mes "(" [email protected]$ + " 0^000000 para sair. )";
                        next;

                        if ( input( @string$, 1, 1 ) ){
                            mes [email protected]$;
                            mes "Ops! digite só uma letra.";
                            mes "Obrigado!";
                            next;
                            continue;
                        }

                        if ( @string$ == "0" ){
                            close2;
                            cutin "", 255;
                            end;
                        }

                        set @string$, change_case( @string$ );
                        
                        if ( @string$ == "0" ){
                            mes [email protected]$;
                            mes "Caracteres Proibido.";
                            next;
                            continue;
                        }else if ( array_search ( @string$, ".blacklist$") + 1 ){
                                mes [email protected]$;
                                mes "Esta letra é já foi dita (veja a lista)";
                                mes "Eescolha uma outra.";
                                next;
                                continue;
                            }
                        

                        set .blacklist$[ getarraysize( .blacklist$ ) ], @string$;    // Colocamos a letra na lista. 
                        set @i, array_search( @string$, ".letter$");
                        if ( @i == -1 ){
                            heal - MaxHp / 5, 0;
                            mes [email protected]$;
                            mes "Não é possível encontrar a letra na palavra...";
                            load_cutin( 1 );
                            next;
                            continue;
                        }
                        else{
                            mes [email protected]$;
                            mes "Letra está na palavra !";
                            for ( set @i, 0; @i < .lettercount; set @i, @i + 1 ){
                                set @j, ( array_search( @string$, ".letter$",    @i, .lettercount ) );
                                if ( @j + 1 ){
                                    set .letterhide$[ @j ], .letter$[ @j ];
                                    set @i, @j;
                                }
                            }

                            set .wordfind$, emplode( " ", ".letterhide$" );
                            delwaitingroom;   // devemos atualizar o chat-room nome 
                            waitingroom .wordfind$, 0;

                            if ( array_search( " _", ".letterhide$" ) == -1 ) {
                                announce strcharinfo( 0 ) + " descobriu a palavra: " + .wordsearch$ + " e ganhou 5kk em zenys !", bc_blue | bc_map;
                                Zeny+= 5000000;
                                donpcevent strnpcinfo( 0 ) + "::OnInit";
                                close2;
                                cutin "", 255;
                                end;
                            }
                            next;
                            if ( select( " -  Continuar: -  Sair" ) - 1 ){
                                close2;
                                cutin "", 255;
                                end;
                            }
                        }

                    } while( Hp );
    
                    mes [email protected]$;
                    mes "Ahhhh, Você Perdeu...";
                    announce "|Jogo da Forca| " + strcharinfo( 0 ) + " Perdeu! e acabou morrendo", bc_blue | bc_area;
                    close2;
                    cutin "", 255;
                    end;
        }


    OnInit:
        delwaitingroom;
        set .block, 0;
        set .Init, 1;
        set .stat, 0;

        cleararray .letter$[ 0 ], "", 128;
        cleararray .blacklist$[ 0 ], "", 128;
        cleararray .letterhide$[ 0 ], "", 128;

        set .lettercount, 0  ;
        set .wordfind$, "";
        set .wordsearch$, "";

        setarray .wordlist$[0],
        "aprendiz",
        "historia",
        "esmeralda",
        "sacerdotiza",
        "cavaleiro",
        "ragmaniacos",
        "poporing",
        "andarilho",
        "maniacos",
        "assessoria",
        "fabre",
        "noidea";
        

        end;


    OnMinute00:
    OnMinute30:

    if ( .autoevent )
    {
        set [email protected], rand ( 0, getarraysize( .wordlist$ ) - 1 );
        str_to_array( .wordlist$[[email protected]], ".letter$" );
        set [email protected]$, .wordlist$[[email protected]];
        callsub AutoSelect;
    }

    OnTimer120000:

        if ( .block - 1 )
            end;
        else{
            set .block, 0;
            stopnpctimer;
        }


    OnTimer600000:

        donpcevent strnpcinfo(0) + "::OnInit";
        stopnpctimer;
        end;

    //=== FUNÇÃO ===========================================================================

    function    load_cutin    {
    
        if ( getarg( 0, 0 ) )
            set .stat, .stat + 1;
        
        cutin "hangman_" + .stat, .cutinposition;
        
        if ( .stat >= 10 )
        {
            announce "|Jogo da Forca| Ninguém encontrará a palavra! hahaha! ", bc_blue | bc_area;
            donpcevent strnpcinfo(0) + "::OnInit";
        }
        
        return;
    }

    function    change_case    {


        setarray [email protected]$[ 0 ],
        "A", "B", "C", "D", "E", "F", "G",
        "H", "I", "J", "K", "L", "M", "N",
        "O", "P", "Q", "R", "S", "T", "U",
        "V", "W", "X", "Y", "Z";

        for( set [email protected], 0; [email protected] < 26; set [email protected], [email protected] + 1 )
        {
    
            if ( compare( getarg( 0 ), [email protected]$[ [email protected] ] ) )
            {

                return [email protected]$[ [email protected] ];

            }

        }

        return "0";

    }

    function    array_search    {

        for ( set [email protected], getarg(2,0); [email protected] < getarg( 3, getarraysize( getd( getarg(1) ) )  ); set [email protected], [email protected] + 1 )
        {

            if ( getd( getarg( 1 ) + "[" + [email protected] + "]" ) == getarg( 0 ) )
            {

                return [email protected];

            }

        }

        return -1;

    }

    function    str_to_array    {

        if ( getstrlen( getarg(0) ) >= 110 )
        {
            return 0;
        }


        if ( atoi( getd( getarg(1) ) ) ){
            cleararray getd( getarg(1) + "[ 0 ]" ), 0, 128;
        }
        else{
            cleararray getd( getarg(1) + "[ 0 ]" ), "", 128;
        }

        setarray [email protected]$[ 0 ],
        "A", "B", "C", "D", "E", "F", "G",
        "H", "I", "J", "K", "L", "M", "N",
        "O", "P", "Q", "R", "S", "T", "U",
        "V", "W", "X", "Y", "Z";

        set [email protected], 0;
        set [email protected]_temp$, "_|~key~|_" + getarg(0) + "_|~key~|_";

        while( ! compare ( "_|~key~|_" + [email protected]$ + "_|~key~|_", [email protected]_temp$ ) )
        {

            set [email protected], [email protected] + 1;

            for ( set [email protected], 0; [email protected] <= getarraysize([email protected]$); set [email protected], [email protected] + 1 )
            {

                if ( compare( [email protected]_temp$, "_|~key~|_" + [email protected]$ + [email protected]$[ [email protected] ] ) )
                {

                    set [email protected]$, [email protected]$ + [email protected]$[ [email protected] ];
                    setd getarg(1) + "[" + getarraysize( getd( getarg(1) ) ) + "]", [email protected]$[ [email protected] ];
                    break;

                }

            }

            if ( [email protected] == getarraysize( [email protected]$ ) )
                return 0;

            if ( [email protected] >= .check_gotocount / getarraysize([email protected]$) - 1 ){
                sleep2( 1 );
                set [email protected], 0;
            }

        }

        return 1;

    }

    function    emplode    {
        set [email protected]_temp$, "";
        for ( set [email protected], 0; [email protected] < getarraysize( getd( getarg(1) ) ); set [email protected], [email protected] + 1 ){
            set [email protected]_temp$, [email protected]_temp$ + getarg( 0, "" ) + getd( getarg( 1 ) + "[" + [email protected] + "]" );
        }
        return [email protected]_temp$;

    }

}

Usa essa talvez te ajude!

Edited by Emistry
codebox
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...