[AJUDA] Venda de carro entra players
#1

Bom, no servidor que eu comecei a usar cada player sу podia ter um veнculo, uma carkey.
Ai arrumei para poder ter dois.
Atй na hora de comprar na concessionбria funciona direito.

Sу que tem um comando /v venderpara , onde um player vende o carro para outro por um certo preзo.
Ai o outro player digita /aceitar carrocompra

Sу que o problema й que quando o player que vai comprar jб tem um carro, nгo pode comprar do vendedor, mesmo o limite de carro sendo dois.

O comando /aceitar carrocompra ta aqui:
pawn Код:
else if(strcmp(x_job,"carrocompra",true) == 0)
            {
                if(OwnableCarOffer[playerid] < 999)
                {
                    if(OwnableCarID[playerid] == 0) { return 1; }
                    if(OwnableCarPrice[playerid] == 0 || OwnableCarPrice[playerid] > 1500000) { return 1; }

                    if(OwnableCarID[playerid] == PlayerInfo[OwnableCarOffer[playerid]][pPcarkey]) { }
                    else if(OwnableCarID[playerid] == PlayerInfo[OwnableCarOffer[playerid]][pPcarkey2]) { }
                    else { SendClientMessage(playerid, COLOR_GREY, "  A oferta nгo estб mais disponнvel"); return 1; }

                    if(GetPlayerMoney(playerid) >= OwnableCarPrice[playerid])
                    {
                        if(IsPlayerConnected(OwnableCarOffer[playerid]))
                        {
                            GetPlayerName(OwnableCarOffer[playerid], giveplayer, sizeof(giveplayer));

                            if(PlayerInfo[playerid][pPcarkey] == 999)
                            {
                                if(GetPlayerVehicleID(OwnableCarOffer[playerid]) == PlayerInfo[OwnableCarOffer[playerid]][pPcarkey])
                                {
                                    PlayerInfo[playerid][pPcarkey] = PlayerInfo[OwnableCarOffer[playerid]][pPcarkey];
                                    PlayerInfo[OwnableCarOffer[playerid]][pPcarkey] = 999;
                                }
                                else if(GetPlayerVehicleID(OwnableCarOffer[playerid]) == PlayerInfo[OwnableCarOffer[playerid]][pPcarkey2])
                                {
                                    PlayerInfo[playerid][pPcarkey] = PlayerInfo[OwnableCarOffer[playerid]][pPcarkey2];
                                    PlayerInfo[OwnableCarOffer[playerid]][pPcarkey2] = 999;
                                }
                                else
                                {
                                    SendClientMessage(playerid, COLOR_GREY, "  O Vendedor do veнculo precisa estar nesse veнculo !");
                                    return 1;
                                }
                                format(string, sizeof(string), "* Vocк comprou um carro por R$%d de %s.",OwnableCarPrice[playerid],giveplayer);
                                SendClientMessage(playerid, COLOR_WHITE, string);
                                format(string, sizeof(string), "* %s comprou seu carro por R$%d.",sendername,OwnableCarPrice[playerid]);
                                SendClientMessage(OwnableCarOffer[playerid], COLOR_WHITE, string);
                                SafeRemovePlayerFromVehicle(OwnableCarOffer[playerid]);
                                SafeGivePlayerMoney(playerid, - OwnableCarPrice[playerid]);
                                SafeGivePlayerMoney(OwnableCarOffer[playerid], OwnableCarPrice[playerid]);
                                strmid(CarInfo[OwnableCarID[playerid]][cOwner], sendername, 0, strlen(sendername), 999);
                            }
                            else
                            {
                                SendClientMessage(playerid, COLOR_GREY, "  Vocк jб tem um carro ! ");
                                return 1;
                            }
                            DateProp(playerid);
                            DateProp(OwnableCarOffer[playerid]);
                            OnPropUpdate();
                            OnPlayerUpdateEx(playerid);
                            OnPlayerUpdateEx(OwnableCarOffer[playerid]);
                            OwnableCarOffer[playerid] = 999;
                            OwnableCarID[playerid] = 0;
                            OwnableCarPrice[playerid] = 0;
                            GameTextForPlayer(playerid, "~w~Parabens~n~Nao se esqueca de /v estacionar!", 5000, 3);
                            SendClientMessage(playerid, COLOR_GRAD2, "Parabens na sua nova compra!");
                            SendClientMessage(playerid, COLOR_GRAD2, "Digite /ajudaveiculo para ver a ajuda de veнculo!");
                            return 1;
                        }
                        else
                        {
                            SendClientMessage(playerid, COLOR_GREY, "   Vendedor do carro estб Offline !");
                            return 1;
                        }
                    }
                }
                else
                {
                    SendClientMessage(playerid, COLOR_GREY, "   Ninguйm lhe ofereceu um carro !");
                    return 1;
                }
            }


Bom, eu tentei fazer isso aqui:
pawn Код:
else if(strcmp(x_job,"carrocompra",true) == 0)
            {
                if(OwnableCarOffer[playerid] < 999)
                {
                    if(OwnableCarID[playerid] == 0) { return 1; }
                    if(OwnableCarPrice[playerid] == 0 || OwnableCarPrice[playerid] > 1500000) { return 1; }

                    if(OwnableCarID[playerid] == PlayerInfo[OwnableCarOffer[playerid]][pPcarkey]) { }
                    else if(OwnableCarID[playerid] == PlayerInfo[OwnableCarOffer[playerid]][pPcarkey2]) { }
                    else { SendClientMessage(playerid, COLOR_GREY, "  A oferta nгo estб mais disponнvel"); return 1; }

                    if(GetPlayerMoney(playerid) >= OwnableCarPrice[playerid])
                    {
                        if(IsPlayerConnected(OwnableCarOffer[playerid]))
                        {
                            GetPlayerName(OwnableCarOffer[playerid], giveplayer, sizeof(giveplayer));

                            if(PlayerInfo[playerid][pPcarkey] == 999)
                            {
                                if(GetPlayerVehicleID(OwnableCarOffer[playerid]) == PlayerInfo[OwnableCarOffer[playerid]][pPcarkey])
                                {
                                    PlayerInfo[playerid][pPcarkey] = PlayerInfo[OwnableCarOffer[playerid]][pPcarkey];
                                    PlayerInfo[OwnableCarOffer[playerid]][pPcarkey] = 999;
                                }
                                else if(GetPlayerVehicleID(OwnableCarOffer[playerid]) == PlayerInfo[OwnableCarOffer[playerid]][pPcarkey2])
                                {
                                    PlayerInfo[playerid][pPcarkey] = PlayerInfo[OwnableCarOffer[playerid]][pPcarkey2];
                                    PlayerInfo[OwnableCarOffer[playerid]][pPcarkey2] = 999;
                                }
                                else
                                {
                                    SendClientMessage(playerid, COLOR_GREY, "  O Vendedor do veнculo precisa estar nesse veнculo !");
                                    return 1;
                                }
                                format(string, sizeof(string), "* Vocк comprou um carro por R$%d de %s.",OwnableCarPrice[playerid],giveplayer);
                                SendClientMessage(playerid, COLOR_WHITE, string);
                                format(string, sizeof(string), "* %s comprou seu carro por R$%d.",sendername,OwnableCarPrice[playerid]);
                                SendClientMessage(OwnableCarOffer[playerid], COLOR_WHITE, string);
                                SafeRemovePlayerFromVehicle(OwnableCarOffer[playerid]);
                                SafeGivePlayerMoney(playerid, - OwnableCarPrice[playerid]);
                                SafeGivePlayerMoney(OwnableCarOffer[playerid], OwnableCarPrice[playerid]);
                                strmid(CarInfo[OwnableCarID[playerid]][cOwner], sendername, 0, strlen(sendername), 999);
                            }
                            if(PlayerInfo[playerid][pPcarkey2] == 999)
                            {
                                if(GetPlayerVehicleID(OwnableCarOffer[playerid]) == PlayerInfo[OwnableCarOffer[playerid]][pPcarkey])
                                {
                                    PlayerInfo[playerid][pPcarkey] = PlayerInfo[OwnableCarOffer[playerid]][pPcarkey];
                                    PlayerInfo[OwnableCarOffer[playerid]][pPcarkey] = 999;
                                }
                                else if(GetPlayerVehicleID(OwnableCarOffer[playerid]) == PlayerInfo[OwnableCarOffer[playerid]][pPcarkey2])
                                {
                                    PlayerInfo[playerid][pPcarkey] = PlayerInfo[OwnableCarOffer[playerid]][pPcarkey2];
                                    PlayerInfo[OwnableCarOffer[playerid]][pPcarkey2] = 999;
                                }
                                else
                                {
                                    SendClientMessage(playerid, COLOR_GREY, "  O Vendedor do veнculo precisa estar nesse veнculo !");
                                    return 1;
                                }
                                format(string, sizeof(string), "* Vocк comprou um carro por R$%d de %s.",OwnableCarPrice[playerid],giveplayer);
                                SendClientMessage(playerid, COLOR_WHITE, string);
                                format(string, sizeof(string), "* %s comprou seu carro por R$%d.",sendername,OwnableCarPrice[playerid]);
                                SendClientMessage(OwnableCarOffer[playerid], COLOR_WHITE, string);
                                SafeRemovePlayerFromVehicle(OwnableCarOffer[playerid]);
                                SafeGivePlayerMoney(playerid, - OwnableCarPrice[playerid]);
                                SafeGivePlayerMoney(OwnableCarOffer[playerid], OwnableCarPrice[playerid]);
                                strmid(CarInfo[OwnableCarID[playerid]][cOwner], sendername, 0, strlen(sendername), 999);
                            }
                            else
                            {
                                SendClientMessage(playerid, COLOR_GREY, "  Vocк jб tem um carro ! ");
                                return 1;
                            }
                            DateProp(playerid);
                            DateProp(OwnableCarOffer[playerid]);
                            OnPropUpdate();
                            OnPlayerUpdateEx(playerid);
                            OnPlayerUpdateEx(OwnableCarOffer[playerid]);
                            OwnableCarOffer[playerid] = 999;
                            OwnableCarID[playerid] = 0;
                            OwnableCarPrice[playerid] = 0;
                            GameTextForPlayer(playerid, "~w~Parabens~n~Nao se esqueca de /v estacionar!", 5000, 3);
                            SendClientMessage(playerid, COLOR_GRAD2, "Parabens na sua nova compra!");
                            SendClientMessage(playerid, COLOR_GRAD2, "Digite /ajudaveiculo para ver a ajuda de veнculo!");
                            return 1;
                        }
                        else
                        {
                            SendClientMessage(playerid, COLOR_GREY, "   Vendedor do carro estб Offline !");
                            return 1;
                        }
                    }
                }
                else
                {
                    SendClientMessage(playerid, COLOR_GREY, "   Ninguйm lhe ofereceu um carro !");
                    return 1;
                }
            }
Mas ai quando o comprador compra um segundo carro o primeiro continua no nome dele, mas ele perde o direito de estacionar, ligar e tudo sobre o carro, nem aparece no /stats.
E o novo carro comprado fica sendo o ъnico dele.


Obrigado a todos que vгo tentar ajudar, ou que pelo menos pensou em ajudar.
_____________________________________
Edit:
Й....
Jб se foram duas horas...
rsrsrs
Zuera, quando alguem poder ajudar ai eu fico grato.
__________________________________________
Edit2
Amanha eu volto a ler aqui.
Reply
#2

Odeio fazer double, mas й que o meu post jб foi pra terceira pбgina e ninguem escreveu nada.
Mas se ninguem escrever nada de novo eu nгo vou fazer outro double nгo, pode deixar, hehe
Reply
#3

Nao sei resolver seu problema, mas para nao cficar criando topico pedindo as coisas vou aproveitar esse pra lhe pedir, eu estava precisando de um concessionaria, vc consegue fazer um FS dessa conce pra mim?
Reply
#4

Liba.Nakajima o meu gm so permite ao player ter 2 chaves de carros... voce me ajuda a arrumar para poder ter mais?

ficaria muito agradecido...
Reply
#5

й so por Esse Code aqi no seu GM

Код:
	if(strcmp(cmd, "/darchaves", true) == 0)
	{
	    if(IsPlayerConnected(playerid))
		{
			tmp = strtok(cmdtext, idx);
			new car;
			if(!strlen(tmp))
			{
				SendClientMessage(playerid, COLOR_GRAD1, "USE: /darchaves [id]");
				return 1;
			}
			giveplayerid = ReturnUser(tmp);
			if(HireCar[playerid] == 299 && PlayerInfo[playerid][pPHousekey] == 255)
			{
				SendClientMessage(playerid, COLOR_GRAD1, "  Vocк nгo tem uma chave para dar");
				return 1;
			}
			else
			{
				if(HireCar[playerid] != 299 && SwitchKey[playerid] == 0)
				{
					car = HireCar[playerid];
					VTrancado[car] = 0;
					UnLockCar(car);
					HireCar[playerid] = 299;
				}
				else
				{
					car = PlayerInfo[playerid][pPHousekey]+totalveiculos;
				}
			}
			if (IsPlayerConnected(giveplayerid))
			{
			    if(giveplayerid != INVALID_PLAYER_ID)
			    {
					if(ProxDetectorS(5.0, playerid, giveplayerid))
					{
						if(HireCar[giveplayerid] != 299)
						{
							VTrancado[HireCar[giveplayerid]] = 0;
							UnLockCar(HireCar[giveplayerid]);
						}
						HireCar[giveplayerid] = car;
						HireCar[playerid] = 999;
						GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
						GetPlayerName(playerid, sendername, sizeof(sendername));
						format(string, sizeof(string), "   Vocк deu a chave do seu veiculo para %s", giveplayer);
						PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
						SendClientMessage(playerid, COLOR_GRAD1, string);
						format(string, sizeof(string), "   Vocк recebeu a chave do veiuclo de %s", sendername);
						SendClientMessage(giveplayerid, COLOR_GRAD1, string);
						format(string, sizeof(string), "* %s da uma chave para %s.", sendername ,giveplayer);
						ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
					}
				}
			}
		}
		return 1;
	}
pelo uq eu entendi й isso !

Eu entendi que й pra dar Chaves pra outro Player , Certo ?
Reply
#6

Quote:
Originally Posted by [BWL]DuST
Посмотреть сообщение
Nao sei resolver seu problema, mas para nao cficar criando topico pedindo as coisas vou aproveitar esse pra lhe pedir, eu estava precisando de um concessionaria, vc consegue fazer um FS dessa conce pra mim?
Posso sim, sу que a luz aqui em casa acaba toda hora, nгo estou mexendo no pawno tem dois dias porque eu nгo sou acostumado a salvar toda hora, e se a luz acabar enquanto eu scripto jб era.
Se me der atй domindo ao faзo para vocк cara.

Quote:
Originally Posted by Slayer1
Посмотреть сообщение
Liba.Nakajima o meu gm so permite ao player ter 2 chaves de carros... voce me ajuda a arrumar para poder ter mais?

ficaria muito agradecido...
Se eu estiver certo no seu GM as chaves chamam "carkey" e "carkey2", bom o que vocк tem que fazer й sempre onde tiver uma "carkey2" vocк adiciona uma "carkey3" embaixo.
Por exemplo, em enum pInfo fica assim:
pawn Код:
enum pInfo
{
    pPcarkey,
    pPcarkey2,
    pPcarkey3, // Essa aqui й adicionada
......
}
Dai й seguir em diante fazendo isso.
Quando abrir uma public com "carkey2", copie a public inteira, nгo esqueзa nada, e cole em baixo, depois na colada em baixo substitua o "carkey2" por "carkey3"

E quando forem if que possuam "carkey2" copiei a if inteira atй fechar sua ultima chave, cole em baixo, e substitua o "carkey2" por "carkey3"

Se achar um else if, faзa o mesmo que no if.

Й isso, espero que consiga, qualquer duvida me mande uma mensagem privada.


Quote:
Originally Posted by Laercio
Посмотреть сообщение
й so por Esse Code aqi no seu GM

Код:
	if(strcmp(cmd, "/darchaves", true) == 0)
	{
	    if(IsPlayerConnected(playerid))
		{
			tmp = strtok(cmdtext, idx);
			new car;
			if(!strlen(tmp))
			{
				SendClientMessage(playerid, COLOR_GRAD1, "USE: /darchaves [id]");
				return 1;
			}
			giveplayerid = ReturnUser(tmp);
			if(HireCar[playerid] == 299 && PlayerInfo[playerid][pPHousekey] == 255)
			{
				SendClientMessage(playerid, COLOR_GRAD1, "  Vocк nгo tem uma chave para dar");
				return 1;
			}
			else
			{
				if(HireCar[playerid] != 299 && SwitchKey[playerid] == 0)
				{
					car = HireCar[playerid];
					VTrancado[car] = 0;
					UnLockCar(car);
					HireCar[playerid] = 299;
				}
				else
				{
					car = PlayerInfo[playerid][pPHousekey]+totalveiculos;
				}
			}
			if (IsPlayerConnected(giveplayerid))
			{
			    if(giveplayerid != INVALID_PLAYER_ID)
			    {
					if(ProxDetectorS(5.0, playerid, giveplayerid))
					{
						if(HireCar[giveplayerid] != 299)
						{
							VTrancado[HireCar[giveplayerid]] = 0;
							UnLockCar(HireCar[giveplayerid]);
						}
						HireCar[giveplayerid] = car;
						HireCar[playerid] = 999;
						GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
						GetPlayerName(playerid, sendername, sizeof(sendername));
						format(string, sizeof(string), "   Vocк deu a chave do seu veiculo para %s", giveplayer);
						PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
						SendClientMessage(playerid, COLOR_GRAD1, string);
						format(string, sizeof(string), "   Vocк recebeu a chave do veiuclo de %s", sendername);
						SendClientMessage(giveplayerid, COLOR_GRAD1, string);
						format(string, sizeof(string), "* %s da uma chave para %s.", sendername ,giveplayer);
						ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
					}
				}
			}
		}
		return 1;
	}
pelo uq eu entendi й isso !

Eu entendi que й pra dar Chaves pra outro Player , Certo ?
Nгo, nгo quero dar chaves, quero vender o carro.
Olha, me desculpe se eu vou ser grosso, mas vocк sу copiou um comando do seu GM e colocou aqui pra mim que usa variaveis totalmentes diferentes.
Se fosse sу isso eu mesmo fazia.
O comando que me passou й de um GM que o player sу pdoe ter um veнculo parece, e alйm de dar a chave do carro da a chave da casa.
Mas valeu por pelo menos postar algo tentando me ajudar, foi o ъnico nй.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)