[Ajuda] Comando /Vida do mйdico
#1

bom esse comando й dos mйdico q usa para curar o player ...

Quando ele ta fora da ambulancia mostra a mensagem q precisa os 2 ta dentro do veiculo ... mas se sу o medico tiver na ambulancia , e o outro player n tive, o mйdico pode curar quantas vezes quiser ... tipo fazer um flood e fazer o player perde todo seu dinheiro pouco a pouco ...

Se for possivel pode ver oq ta de errado ?

pawn Код:
else
                {
                    SendClientMessage(playerid, COLOR_GRAD2, "USE: /vida [id] [preзo]");
                    return 1;
                }
            }
            giveplayerid = ReturnUser(tmp);
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "USE: /vida [id] [price]");
                return 1;
            }
            moneys = strval(tmp);
            if(moneys < 1 || moneys > 2000) { SendClientMessage(playerid, COLOR_GREY, "   O Preзo nгo pode passar de 2000 !"); return 1; }
            if (giveplayerid == playerid)
            {
                SendClientMessage(playerid, COLOR_GRAD1, "   Vocк nгo pode se curar!");
                return 1;
            }
            if (IsPlayerConnected(giveplayerid))
            {
                if(giveplayerid != INVALID_PLAYER_ID)
                {
                    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                    GetPlayerName(playerid, sendername, sizeof(sendername));
                    if(gTeam[playerid] == TEAM_CYAN||PlayerInfo[playerid][pMembro]==4||PlayerInfo[playerid][pLider]==4)//model
                    {
                        new Veh = GetPlayerVehicleID(playerid);
                        if(IsAnAmbulanceCar(Veh))
                        {
                            format(string, sizeof(string), "~y~Voce foi curado ~n~~w~%s~n~~g~R$%d", giveplayer,moneys);
                            GameTextForPlayer(playerid, string, 5000, 1);
                            GivePlayerMoney(playerid,moneys);
                            GivePlayerMoney(giveplayerid,-moneys);
                            new hp = 0;
                            if(PlayerInfo[playerid][pPainPerk] > 0)
                            {
                                hp = 20 * PlayerInfo[playerid][pPainPerk]; hp += 100;
                                SetPlayerHealth(giveplayerid, hp);
                            }
                            else
                            {
                                hp = 100;
                                SetPlayerHealth(giveplayerid, 100);
                                PlayerInfo[giveplayerid][pDoenca] = 0;
                            }
                            new colete = 0;
                            if(PlayerInfo[playerid][pPainPerk] > 0)
                            {
                                colete = 0 * PlayerInfo[playerid][pPainPerk]; colete += 100;
                                SetPlayerArmour(giveplayerid, colete);
                            }
                            else
                            {
                                colete = 100;
                                SetPlayerArmour(giveplayerid, 100);
                                PlayerInfo[giveplayerid][pDoenca] = 0;
                            }
                            PlayerPlaySound(playerid, 1150, 0.0, 0.0, 0.0);
                            PlayerPlaySound(giveplayerid, 1150, 0.0, 0.0, 0.0);
                            format(string, sizeof(string), "Vocк foi curado, %d de saude e %d de colete por -R$%d",hp,colete,moneys);
                            SendClientMessage(giveplayerid, COLOR_LIGHTBLUE,string);
                            if(PlayerInfo[giveplayerid][pDoenca] > 0)
                            {
                                PlayerInfo[giveplayerid][pDoenca] = 0;
                                SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, "* Vocк nгo estб infectado com nenhuma doenзa, por causa de cuidados Bombeiros!");
                            }
                        }
                        else
                        {
                            SendClientMessage(playerid, COLOR_GRAD1, "  Vocкs dois precisam estar no veнculo!");
                            return true;
                        }
                    }
                    else
                    {
                        SendClientMessage(playerid, COLOR_GRAD1, "Vocк nгo estб autorizado a usar o comando!");
                        return 1;
                    }
                }
            }
            else
            {
                SendClientMessage(playerid, COLOR_GRAD1, " Esse jogador estб offline");
            }
        }
        return 1;
    }
Reply
#2

Tem que colocar um comprovador de player dentro da ambulвncia!
Reply
#3

Quote:
Originally Posted by mitsumyy
Посмотреть сообщение
Tem que colocar um comprovador de player dentro da ambulвncia!
desculpa pela pergunta mas, sou novato, estou aprendendo ainda, poderia dizer como q eu coloco ?
Reply
#4

Quote:
Originally Posted by DiegoLkd
Посмотреть сообщение
desculpa pela pergunta mas, sou novato, estou aprendendo ainda, poderia dizer como q eu coloco ?
Cara Ta vendo esta linha? "if(gTeam[playerid] == TEAM_CYAN||PlayerInfo[playerid][pMembro]==4||PlayerInfo" esta linha verifica se o jogador esta dentro da ambulвncia, tem q fazer a mesma linha mas a verificar se o jogador a curar esta dentro da ambulвncia.

Cara pq nao faz um cmd de o player ter de aceitar o /vida agora n posso fazer pq to no telemуvel se tiver tempo eu vejo isso desculpa ...
Procura no search isso deve aparecer toturiais disso
Reply
#5

aqui um exemplo de cmd que o player Precisa Aceita Lembrando й apenas um exemplo do Cmd do meu gm
Код:
if(strcmp(cmd, "/vida", true) == 0)
	{
	    if(IsPlayerConnected(playerid))
		{
			tmp = strtok(cmdtext, idx);
			GetPlayerName(playerid, sendername, sizeof(sendername));
			new location = PlayerInfo[playerid][pLocal];
			if(!strlen(tmp))
			{
				if(location != 255)
				{
					if(location < 99)
					{
						if(HouseInfo[location][hArm] == 1 && IsACop(playerid))
						{
							format(string, sizeof(string), "* %s pega seu colete.", sendername);
							ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
							TogglePlayerControllable(playerid, 0);
							GetPlayerPos(playerid, Unspec[playerid][sPx], Unspec[playerid][sPy], Unspec[playerid][sPz]);
							Unspec[playerid][sPint] = PlayerInfo[playerid][pInt];
							Unspec[playerid][sLocal] = PlayerInfo[playerid][pLocal];
							SetPlayerPos(playerid,1527.5,-12.1,1002.0);
							PlayerInfo[playerid][pLocal] = 255;
							SetPlayerInterior(playerid,99);
							Spectate[playerid] = 257;
						}
						else if(HouseInfo[location][hHel] == 1)
						{
							SetPlayerHealth(playerid,100.0);
							PlayerInfo[playerid][pDoenca] = 0;
							SetPlayerDrunkLevel (playerid, 0);
							PlayerPlaySound(playerid, 1150, 0.0, 0.0, 0.0);
							SendClientMessage(playerid, COLOR_LIGHTBLUE,"Vocк foi curado.");
						}
						else
						{
							SendClientMessage(playerid, COLOR_GREY,"Este lugar nao tem lugar de se curar.");
						}
						return 1;
					}
					else if(location == 101)//Restaurant
					{
					    SetPlayerHealth(playerid,100.0);
						SetPlayerArmour(playerid,100.0);
						PlayerInfo[playerid][pDoenca] = 0;
						SetPlayerDrunkLevel (playerid, 0);
						PlayerPlaySound(playerid, 1150, 0.0, 0.0, 0.0);
						SendClientMessage(playerid, COLOR_LIGHTBLUE,"Vocк foi curado.");
					}
					else if(location == 102 && IsACop(playerid))//Police Armorry
					{
					    SetPlayerHealth(playerid,100.0);
					    format(string, sizeof(string), "* %s Foi Curado.", sendername);
						ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
						TogglePlayerControllable(playerid, 0);
						GetPlayerPos(playerid, Unspec[playerid][sPx], Unspec[playerid][sPy], Unspec[playerid][sPz]);
						Unspec[playerid][sPint] = PlayerInfo[playerid][pInt];
						Unspec[playerid][sLocal] = PlayerInfo[playerid][pLocal];
						SetPlayerPos(playerid,1527.5,-12.1,1002.0);
						PlayerInfo[playerid][pLocal] = 255;
						SetPlayerInterior(playerid,99);
						Spectate[playerid] = 257;
					}
				}
				else
				{
					SendClientMessage(playerid, COLOR_GRAD2, "USE: /vida [id] [preзo]");
					return 1;
				}
			}
			giveplayerid = ReturnUser(tmp);
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp))
			{
			    SendClientMessage(playerid, COLOR_GRAD2, "USE: /vida [id] [price]");
				return 1;
			}
			moneys = strval(tmp);
			if(moneys < 1 || moneys > 5000) { SendClientMessage(playerid, COLOR_GREY, "   O Preзo nгo pode passar de 5000 !"); return 1; }
			if (giveplayerid == playerid)
			{
				SendClientMessage(playerid, COLOR_GRAD1, "   Vocк nгo pode se curar!");
				return 1;
			}
			if (IsPlayerConnected(giveplayerid))
			{
			    if(giveplayerid != INVALID_PLAYER_ID)
			    {
					GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
					GetPlayerName(playerid, sendername, sizeof(sendername));
					if(gTeam[playerid] == TEAM_CYAN||PlayerInfo[playerid][pMembro]==4||PlayerInfo[playerid][pLider]==4)//model
					{
						new Veh = GetPlayerVehicleID(playerid);
						if(CurarAtivo[giveplayerid] != 999)
						{
							SendClientMessage(playerid, COLOR_GRAD1, "  Algum mйdico Ja ofereceu Vida a Este Player!");
							return 1;
						}
						if(IsAnAmbulanceCar(Veh))
						{
							CurarAtivo[giveplayerid] = playerid;
							CurarPreco[giveplayerid] = moneys;
							format(string, sizeof(string), "Um Mйdico estб te oferecendo Vida e Colete por R$%d, Digite /aceitar vida.",moneys);
							SendClientMessage(giveplayerid, COLOR_LIGHTBLUE,string);
						}
						else
						{
							SendClientMessage(playerid, COLOR_GRAD1, "  Vocкs nгo estб em uma Ambulancia!");
							return 1;
						}
					}
					else
					{
						SendClientMessage(playerid, COLOR_GRAD1, "Vocк nгo estб autorizado a usar o comando!");
						return 1;
					}
				}
			}
			else
			{
				SendClientMessage(playerid, COLOR_GRAD1, " Esse jogador estб offline");
			}
		}
		return 1;
	}
Reply
#6

Quote:
Originally Posted by mitsumyy
Посмотреть сообщение
Cara Ta vendo esta linha? "if(gTeam[playerid] == TEAM_CYAN||PlayerInfo[playerid][pMembro]==4||PlayerInfo" esta linha verifica se o jogador esta dentro da ambulвncia, tem q fazer a mesma linha mas a verificar se o jogador a curar esta dentro da ambulвncia.

Cara pq nao faz um cmd de o player ter de aceitar o /vida agora n posso fazer pq to no telemуvel se tiver tempo eu vejo isso desculpa ...
Procura no search isso deve aparecer toturiais disso
Nгo vou falar nada por que pelo menos vocк estб tentando ajudar...
A linha que vocк sitou acima identifica se o player й mйdico nгo se ele estб em uma ambulвncia

Troque a linha
pawn Код:
if(IsAnAmbulanceCar(Veh) )

//Por isso:

if(IsAnAmbulanceCar(GetPlayerVehicleID(playerid)) && IsAnAmbulanceCar(GetPlayerVehicleID(giveplayerid)))
Agora vamos criar um timer para evitar o 'Flood'

Inicio da GM:
pawn Код:
new ToCurado[MAX_PLAYERS];
pawn Код:
//Adicione em seu comando!
ToCurado[playerid] = 1;
SetTimerEx("GabrielCura", 10000,false,"i",playerid);
Final do GM:

pawn Код:
forward GabrielCura(playerid);
public GabrielCura(playerid)
{
    ToCurado[playerid] = 0;
    return 1;
}
Abaixo disso:
pawn Код:
if (giveplayerid == playerid)
            {
                SendClientMessage(playerid, COLOR_GRAD1, "   Vocк nгo pode se curar!");
                return 1;
            }
Adicione isso:

pawn Код:
if(ToCurado[playerid] == 1) return SendClientMessage(playerid,"Vocк acabou de curar espere 10 segundos");
Reply
#7

Muito obrigado Gabriel, sу n tedo + rep pq ainda n tenho 50 post

mas muito obrigado
Reply
#8

Quote:
Originally Posted by DiegoLkd
Посмотреть сообщение
Muito obrigado Gabriel, sу n tedo + rep pq ainda n tenho 50 post

mas muito obrigado
Minha motivaзгo nгo й ligada a REP... rs


Meu objetivo й ajudar e assim aprender com os meus prуprios erros *-* Qualquer coisa chama ai ... Copilo sem erro?

Imaginei que daria um erro por exemplo "Variavel nunca usada" Mбs jб que nгo deu funcionara perfeitamente conforme o que vocк deseja.

Atenciosamente,
Gabriel Ribeiro.
Reply
#9

kkk tava distraнdo e nem reparei que era ao contrбrio.
Vlw por me corrigir kk
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)