Posao dostavljac


Započeo Ciger, Septembar 14, 2020, 13:50:35 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Problem(error/warning): Pravim posao dostavljac i sada hocu da kad ima 5 kutija u kamionu da igrac ne moze uzeti vise kutiju
Deo skripte:
CMD:uzmikutiju(playerid, params[])
{

    //#pragma unused help
	//#pragma unused params
    if(UlogovanProvera[playerid] == 0) return SCM(playerid,crvena2,"(greska): "bela"Moras se ulogovati da bi koristio ovu komandu!");
	if(PlayerInfo[playerid][pPosao] != POSAO_DOSTAVLJAC) return SCM(playerid,crvena2,"(greska): "bela"Niste dostavljac!");
    if(IsPlayerAttachedObjectSlotUsed(playerid, DOSTAVLJAC_SLOT)) return SCM(playerid,plava2, "(info):  "siva"Vec ste uzeli kutiju!");
	if(!IsPlayerInRangeOfPoint(playerid, 5.0, 1639.5282,-1900.4049,13.5521)) return SCM(playerid,crvena2,"(greska): "bela"Niste na mestu uzimanja kutije!");
	if(IsPlayerInAnyVehicle(playerid)) return SCM(playerid,siva2," Ne mozete iz vozila uzimati kutije!");
	if(UzeoKutiju[playerid] == 1) return SCM(playerid,siva2," Vec si utovario kutiju idi je dostavi u neku firmu!");
	OnePlayAnim(playerid, "CARRY", "crry_prtial", 4.1, 0, 1, 1, 1, 1); UzeoKutiju[playerid] = 1;
	SetPlayerAttachedObject(playerid, DOSTAVLJAC_SLOT, 1221, 1, 0.494823, 0.720993, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 1.000000, 1.000000 );
	SCM(playerid,plava2, "(info): "bela"Uspesno ste uzeli kutiju!");
    SCM(playerid,plava2, "(info): "bela"Ostavite je u vozilo za dostavu komandom /utovari");
    return 1;
}
/////////////////////////////////////////////////////
CMD:utovari(playerid, params[])
{

    //#pragma unused help
	//#pragma unused params
    if(UlogovanProvera[playerid] == 0) return SCM(playerid,crvena2,"(greska): "bela"Moras se ulogovati da bi koristio ovu komandu!");
	if(PlayerInfo[playerid][pPosao] != POSAO_DOSTAVLJAC) return SCM(playerid,crvena2,"(greska): "bela"Niste dostavljac!");
	if(ProduktiVozila[GetClosestVehicle(playerid)] == 5) return SCM(playerid,plava2, "(info):  "siva"U vozilo moze biti najvise 5 kutija!"); // != 0
	if(!IsPlayerAttachedObjectSlotUsed(playerid, DOSTAVLJAC_SLOT)) return SCM(playerid,plava2, "(info):  "siva"Niste uzeli kutiju!");
	new Float:Poz[3]; GetVehiclePos(GetClosestVehicle(playerid), Poz[0], Poz[1], Poz[2]);
	if(!IsPlayerInRangeOfPoint(playerid, 5.0, Poz[0], Poz[1], Poz[2])) return SCM(playerid,plava2, "(info):  "siva"Niste u blizini vozila od dostavljaca!");
	if(!DostavljacVozila(GetClosestVehicle(playerid))) return SCM(playerid,plava2, "(info):  "siva"Niste u blizini vozila od dostavljaca!");
	ProduktiVozila[GetClosestVehicle(playerid)]++; RemovePlayerAttachedObject(playerid, DOSTAVLJAC_SLOT); ClearAnimations(playerid);// stojalo 1 kod produkt vozila
	SCM(playerid,plava2, "(info): "bela"Uspesno ste utovarili proizvode, otidjite ih odvesti u firmu kojoj su potrebni!");
	UzeoKutiju[playerid] = 0;
    return 1;
}
/////////////////////////////////////////////////////
CMD:istovari(playerid, params[])
{

    //#pragma unused help
	//#pragma unused params
    if(UlogovanProvera[playerid] == 0) return SCM(playerid,crvena2,"(greska): "bela"Moras se ulogovati da bi koristio ovu komandu!");
	if(PlayerInfo[playerid][pPosao] != POSAO_DOSTAVLJAC) return SCM(playerid,crvena2,"(greska): "bela"Niste dostavljac!");
	if(!DostavljacVozila(GetPlayerVehicleID(playerid))) return SCM(playerid,crvena2,"(greska): "bela"Niste u vozilu dostavljaca!");
	if(ProduktiVozila[GetPlayerVehicleID(playerid)] == 0) return SCM(playerid,plava2, "(info):  "siva"U vozilu nema produkata!");
	for(new i = 0; i < MAX_FIRMI; i++)
	{
	    if(IsPlayerInRangeOfPoint(playerid, 15.0, FirmaInfo[i][fUlazX], FirmaInfo[i][fUlazY], FirmaInfo[i][fUlazZ]))
	    {
	 		if(FirmaInfo[i][fVrsta] == VRSTA_SBIZZ) return SCM(playerid,siva2," Ne mozete dostavljati proizvode u tu firmu!");
			if(FirmaInfo[i][fImaVlasnika] != 1) return SCM(playerid,siva2," Ta firma nema vlasnika!");
			if(FirmaInfo[i][fProizvodi] >= 300) return SCM(playerid,siva2," Toj firmi nisu potrebni proizvodi!");
			if(FirmaInfo[i][fKasa] < 700) return SCM(playerid,siva2," Ta firma nema dovoljno novca za proizvode!");
			//ProduktiVozila[GetPlayerVehicleID(playerid)] = 0;
			ProduktiVozila[GetPlayerVehicleID(playerid)]--;
    		if(ProduktiVozila[GetPlayerVehicleID(playerid)] == 0) SCM(playerid, plava2, "(info): "bela"Nemate vise proizvoda u kamionu!");
			FirmaInfo[i][fProizvodi] = 300; FirmaInfo[i][fKasa] -= 700;
			new bonus = random(100); g_NovacPlus(playerid, 600+bonus); UzeoKutiju[playerid] = 0; FirmaNovac(102, 600);
			SCMF(playerid,-1,""zuta"Dostavili ste proizvode u firmu i zaradili ste 600$ | Bonus: %d$!",bonus);
		}
	}
    return 1;
}

Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log):
Vaš odgovor

Ejs

*

Jesi probao dodat jos jednu varijablu koja ce brojat koliko puta je igrac "utovario" kutiju?
CMD:utovari(playerid, params[])
{......
UtovareneKutije[playerid]++;
....}


I onda kod komande /uzmikutiju provjera
if(UtovareneKutije[playerid] == 5) return SCM(playerid,crvena2,"(greska): "bela"Vec ste utovarili ste 5 kutija!");


I onda kod komande /istovari vratis u 0

CMD:istovari(playerid, params[])
{......
UtovareneKutije[playerid] = 0;
....}
Poslednja Izmena: Septembar 15, 2020, 01:05:53 PRE PODNE od Ejs

Reseno, hvala, tako jednostavno a nikad se setio ne bih.