Jump to content
  • 0

pomoc Help - Kredity - odečitani


Guest Thomas.

Dotaz

Zdravím chtěl bych jsem se zeptat kde jsem udělal chybičku při vytvořeni publicu na odečitani kreditu když si napřiklad koupim vozidlo a nechce to odečist z kreditu danou částku v gamemode street life od lyricse? Níže vám posilám kod cely ohledně kreditu jinak žádny error mi to nehazi

forward GivePlayerACKredit(playerid, tkredity);

public GivePlayerACKredit(playerid, tkredity)
{
	if(IsPlayerConnected(playerid))
	{
 		Player[playerid][Kredity]+=tkredity;
	}
	return 1;
}
 

onplayercommandtext
			dcmd(setkredity,10,cmdtext);

onplayerconnect
		Player[playerid][Kredity]=0;
onplayerdisconnect
			dini_IntSet(way,"Kredity", Player[playerid][Kredity]);

dcmd_setkredity(playerid, params[])
{
	if(IsPlayerConnected(playerid))
	{
		new id = strval(params);

			 if(Player[playerid][AdminLevel]==0) return SendClientMessage(playerid,COLOR_WARNING,"[ADMIN]: Nejsi Administrátor !");
		else if(Player[playerid][AdminLevel]<=4) return SendClientMessage(playerid,COLOR_WARNING,"[ADMIN]: Na požiti tohoto přikazu potrebuješ Admin Level 5 !");
		else if(!strlen(params) || !strlen(params[chrfind(' ',params)+1])) return SendClientMessage(playerid,COLOR_WARNING,"[ADMIN]: Použiti: /setkredity [ ID ] [Kredity]");
		else if(!IsPlayerConnected(id)) return SendClientMessage(playerid,COLOR_WARNING,"[ADMIN]: Hrač není na serveru !");
		else if(IsPlayerNPC(id)) return SendClientMessage(playerid,COLOR_WARNING,"[ADMIN]: Tohle je NPC !");
		else
		{
			new Name[26];
			new Name2[26];
			GetPlayerName(playerid,Name,26);
			GetPlayerName(id,Name2,26);
			new string[128];
			format(string, 128, "(( Administrátor %s nastavil hráči %s Kreditů %d ! ))", Name,Name2,strval(params[chrfind(' ',params)+1]));
			SendMessageToAdmin(COLOR_ADMIN,string);
			Player[id][Kredity]=strval(params[chrfind(' ',params)+1]);
		}
	}
    return 1;
}

u shopu mam jeden uveden :

				if(listitem == 13)
		        {
					if(Player[playerid][Kredity]>200) return SendClientMessage(playerid, COLOR_WARNING,"[INFO]: Nemáš dostatek kreditů - 200 !");
		            kredit = 250;
					modelid = 411;
		        }
pod tím v dialogu stejném


		            GivePlayerACMoney(playerid, -price);
Link to comment
Share on other sites

9 odpovědí na tuto otázku

Recommended Posts

  • 0
  • Globální moderátor

U shopu je nikde neodečítáš. nebo GivePlayerACMoney má být GivePlayerACKredit

 

dále doporučuji ZCDM a nepoužívat dini ;)

Link to comment
Share on other sites

  • 0

sem to spatne překopiroval misto toho      GivePlayerACMoney(playerid, -price);

mělo byt                      GivePlayerACKredit(playerid, -kredit);

Link to comment
Share on other sites

  • 0
  • Globální moderátor

proměnou kredit jsi definoval kde? 

 

zkus si ji vypsat třeba do SCM jestl odpovídá cenně. a následně vypisovat použití té funkce + částka při použití té funkce.

Link to comment
Share on other sites

  • 0

else if(dialogid == Dialog_CarShop2)
{
if(response == 1)
{
SetTimerEx("IsPlayerInPickupFalse", 1500, 0, "i", playerid);

new modelid;
new price;
new kredit;

if(listitem == 0)
{
modelid = 400;
price = 160000;
}
if(listitem == 1)
{
modelid = 402;
price = 180000;
}
if(listitem == 2)
{
modelid = 405;
price = 200000;
}
if(listitem == 3)
{
modelid = 421;
price = 130000;
}
if(listitem == 4)
{
modelid = 439;
price = 150000;
}
if(listitem == 5)
{
modelid = 445;
price = 105000;
}
if(listitem == 6)
{
modelid = 474;
price = 80000;
}
if(listitem == 7)
{
modelid = 475;
price = 140000;
}
if(listitem == 8)
{
modelid = 492;
price = 135000;
}
if(listitem == 9)
{
modelid = 516;
price = 150000;
}
if(listitem == 10)
{
modelid = 543;
price = 60000;
}
if(listitem == 11)
{
modelid = 551;
price = 100000;
}
if(listitem == 12)
{
if(Player[playerid][VIP]==0) return SendClientMessage(playerid, COLOR_WARNING,"[VIP]: Nejsi vlastníkem VIP účtu !");
if(Player[playerid][VIP]==1) return SendClientMessage(playerid,COLOR_WARNING,"[VIP]: Až od VIP Tarif Silver !");
modelid = 541;
price = 270000;
}
if(listitem == 13)
{
if(Player[playerid][Kredity]>200) return SendClientMessage(playerid, COLOR_WARNING,"[INFO]: Nemáš dostatek kreditů - 200 !");
kredit = 250;
modelid = 411;
}
if(listitem == 14)
{
if(Player[playerid][VIP]==0) return SendClientMessage(playerid, COLOR_WARNING,"[VIP]: Nejsi vlastníkem VIP účtu !");
if(Player[playerid][VIP]==1) return SendClientMessage(playerid,COLOR_WARNING,"[VIP]: Až od VIP Tarif Silver !");
modelid = 560;
price = 285000;
}
if(listitem == 15)
{
modelid = 451;
price = 250000;
}

new bool:IsPlayerVehicleSlotFree = false;
new slotid;

if(Player[playerid][VIP] == 0)
{
for(new v=0; v<3; v++)
{
if(PlayerVehicle_State[v][playerid] == false)
{
IsPlayerVehicleSlotFree = true;
slotid = v;
break;
}
}
}
else
{
for(new v=0; v<5; v++)
{
if(PlayerVehicle_State[v][playerid] == false)
{
IsPlayerVehicleSlotFree = true;
slotid = v;
break;
}
}
}

if(GetPlayerACMoney(playerid) < price) return SendClientMessage(playerid, COLOR_WHITE, "[CARSHOP]: Nemáš dostatek peněz !");
else if(IsPlayerVehicleSlotFree == false) return SendClientMessage(playerid, COLOR_WHITE, "[CARSHOP]: Nemáš volný slot pro koupení vozidla !");
else
{
new Name[24], way[32], V_id[16], V_posX[16], V_posY[16], V_posZ[16], V_angle[16], V_spz[16], V_color1[16], V_color2[16];
GetPlayerName(playerid, Name, 24);
format(way, 32, "SL/%s.cfg", Name);
format(V_id, 16, "V%d_id", slotid);
format(V_posX, 16, "V%d_posX", slotid);
format(V_posY, 16, "V%d_posY", slotid);
format(V_posZ, 16, "V%d_posZ", slotid);
format(V_angle, 16, "V%d_angle", slotid);
format(V_spz, 16, "V%d_spz", slotid);
format(V_color1, 16, "V%d_color1", slotid);
format(V_color2, 16, "V%d_color2", slotid);

new V_sell[16];
format(V_sell, 16, "V%d_sell", slotid);
dini_IntSet(way, V_sell, (price / 4 * 3));

dini_IntSet(way, V_id, modelid);
dini_IntSet(way, V_color1, random(126));
dini_IntSet(way, V_color2, random(126));
dini_FloatSet(way, V_posX, CarShopVehicleSpawnPos[0][2]);
dini_FloatSet(way, V_posY, CarShopVehicleSpawnPos[1][2]);
dini_FloatSet(way, V_posZ, CarShopVehicleSpawnPos[2][2]);
dini_FloatSet(way, V_angle, CarShopVehicleSpawnPos[3][2]);

PlayerVehicle[slotid][playerid] = CreateVehicle(dini_Int(way, V_id), dini_Float(way, V_posX), dini_Float(way, V_posY), dini_Float(way, V_posZ), dini_Float(way, V_angle), dini_Int(way, V_color1), dini_Int(way, V_color2), 99999999);

if(dini_Isset(way, V_spz))
{
SetVehicleNumberPlate(PlayerVehicle[slotid][playerid], dini_Get(way, V_spz));
SetVehicleToRespawn(PlayerVehicle[slotid][playerid]);
}

PlayerVehicle_State[slotid][playerid]=true;

GivePlayerACMoney(playerid, -price);
GivePlayerACKredit(playerid, -kredit);

new string[256];
format(string, 256, "~w~Koupil sis vozidlo ~y~%s~w~ za ~y~%d$~w~!", VehicleName[modelid - 400], price);
FormatPlayerInfoBox(playerid, "~g~Vehicles", string, 3000);
}
}

if(response == 0)
{
SetTimerEx("IsPlayerInPickupFalse", 1500, 0, "i", playerid);
}
}
Link to comment
Share on other sites

  • 0

Jestli to dobře chápu tak chceš od proměnný price odečíst tu částku.

Máš tam ale například tohle: price = 160000;

a jestli chceš aby to do toho price odečetlo těch 160000

tak to máš špatně udělej to například takhle: price = -160000;

musí tam být mínus pokud chceš aby se těch 160000 odečetlo od price

 

pokud jsem ti pomohl klikni prosím u mě na: rep_up.png

Edited by Dominik Rozporka
Link to comment
Share on other sites

  • 0

Dominik Rozporka

 

Nejprve bych si být tebou pročetl jeho kód a pak až psal. 

price = - 160000; nastaví hodnotu proměnné price na -160000. Neodečte to od původní hodnoty proměnné price 160000. To by to muselo být price -= 160000 atd.

Pokud jsem ti pomohl klikni taky na to zelené lol

Edited by Lukasz
  • Líbí se mi to! (+1) 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...