SA-MP Forums Archive
[Ajuda] Randoms e Dois em um - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Randoms e Dois em um (/showthread.php?tid=627813)



Randoms e Dois em um - ThuuGLif3 - 02.02.2017

Nesse comando desejo fazer que, ao digitar /ligar uma vez o veнculo ligue, outra vez o veнculo desligue. Como posso obter isso? Poderia me exemplificar fazendo a funзгo e explicando pra que serve cada coisa?

Segunda dъvida do mesmo cуdigo:

Queria colocar algumas falhas, tipo "Thug tenta mas nгo consegue ligar o veнculo" mais uma vez, "Thug liga o veнculo" uma espйcie de Randoms dentro do comando. Cб estб ele:

Код:
	if (strcmp("/motor", cmdtext, true, 10) == 0)
	{
		new Float:x,Float:y,Float:z;
		GetPlayerPos(playerid,x,y,z);

		if(!IsPlayerInAnyVehicle(playerid))
		return SendClientMessage(playerid, COR_LARANJA,"Й necessбrio que esteja em um veнculo para liga-lo.");

        new vid = GetPlayerVehicleID(playerid);
        new Float:vidacarro;
        GetVehicleHealth(GetPlayerVehicleID(playerid),vidacarro);

        if(IsPlayerNPC(playerid))
        {
            GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
            SetVehicleParamsEx(vid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
            return 0x01;
        }
        if(GetPlayerState(playerid) == PLAYER_STATE_PASSENGER)
		{
            return 0x01;
		}

        if(vid != INVALID_VEHICLE_ID)
        {
            if(pInfo[playerid][Logado] == true)
            {
                format(string, sizeof(string), "* %s insire a chave na igniзгo e liga o motor.", GetName(playerid, true));
            }
			ProxDetector(10.0, playerid, string, COLOR_PURPLE);
            TogglePlayerControllable(playerid, true);
            SetVehicleEngineOn(vid);
            GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
            SetVehicleParamsEx(vid,VEHICLE_PARAMS_ON,VEHICLE_PARAMS_ON,alarm,doors,bonnet,boot,objective);
        }
		return 1;
	}



Re: Randoms e Dois em um - ThuuGLif3 - 02.02.2017

Update.


Re: Randoms e Dois em um - RodrigoMSR - 02.02.2017

Код:
if (strcmp("/motor", cmdtext, true, 10) == 0)
	{
		new Float:x,Float:y,Float:z;
		GetPlayerPos(playerid,x,y,z);

		if(!IsPlayerInAnyVehicle(playerid))
		return SendClientMessage(playerid, COR_LARANJA,"Й necessбrio que esteja em um veнculo para liga-lo.");

        new vid = GetPlayerVehicleID(playerid);
        new Float:vidacarro;
        GetVehicleHealth(GetPlayerVehicleID(playerid),vidacarro);

        if(IsPlayerNPC(playerid))
        {
            GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
            SetVehicleParamsEx(vid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
            return 0x01;
        }
        if(GetPlayerState(playerid) == PLAYER_STATE_PASSENGER)
		{
            return 0x01;
		}

        if(vid != INVALID_VEHICLE_ID)
        {
            GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
            if(engine == VEHICLE_PARAMS_OFF)
            {
				if(random(5) != 3)
				{
	                format(string, sizeof(string), "* %s insire a chave na igniзгo e liga o motor.", GetName(playerid, true));
	                SetVehicleParamsEx(vid,VEHICLE_PARAMS_ON,VEHICLE_PARAMS_ON,alarm,doors,bonnet,boot,objective);
	                TogglePlayerControllable(playerid, true);
	                ProxDetector(10.0, playerid, string, COLOR_PURPLE);
				{
				else
				{
				    format(string, sizeof(string), "* %s insire a chave na igniзгo e nгo consegue ligar o motor.", GetName(playerid, true));
				    ProxDetector(10.0, playerid, string, COLOR_PURPLE);
				}
            }
            else
            {
                format(string, sizeof(string), "* %s desliga o motor.", GetName(playerid, true));
                ProxDetector(10.0, playerid, string, COLOR_PURPLE);
                SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,VEHICLE_PARAMS_OFF,alarm,doors,bonnet,boot,objective);
            }
        }
		return 1;
	}



Re: Randoms e Dois em um - MorteAmerica - 03.02.2017

Dois em um e facil, vc cria uma variavel para cada player que salvaria 0 = Desligado e 1 = Ligado.
Quando digita-se o CMD Faria a verificaзгo se a variavel esta = 0, ligaria o veiculo, se estaria = 1, deslgaria o mesmo.

Sobre as msg, se quiser global Seria "SendClientMessageToAll", agr so para os proximos teria que criar um loop que verificaria apartir da posiзгo do player que digitou o comando atй um certo raio de distancia e mostraria a "SendClientMessage".


Re: Randoms e Dois em um - ThuuGLif3 - 03.02.2017

Sim. Consegui resolver tudo, DJ Morte.