Перейти к содержанию
Авторизация  
SCRIPTMAN

Не правильно считает ДО.

Рекомендуемые сообщения

SCRIPTMAN

Народ, ку.

 

Короче, добавил в донат покупку авто. Сделал цены, так вот. Купил авто, стоимость 220 ДО. А у меня минус 760 вроде. Почему так? Покупка авто:

	if(dialogid == 1607)
	{
		if(response)
		{
			new buyid, cost;
			switch(listitem)
			{
				case 0: {buyid = 400; cost = 130; }//BMW X5
				case 1: {buyid = 402; cost = 85; }//ВАЗ 2172
				case 2: {buyid = 405; cost = 110; }//Mersedes-Benz AMG G500
				case 3: {buyid = 410; cost = 120; }//Renault Logan
				case 4: {buyid = 415; cost = 100; }//Toyota Camry
				case 5: {buyid = 445; cost = 60; }//ВАЗ 2114
				case 6: {buyid = 541; cost = 65; }//ВАЗ 2115
				case 7: {buyid = 529; cost = 60; }//ВАЗ 2109
				case 8: {buyid = 516; cost = 60; }//ВАЗ 2101
				case 9: {buyid = 602; cost = 135; }//Mitsubushi Lancer X Evo
				case 10: {buyid = 559; cost = 180; }//Volkswagen Passat
				case 11: {buyid = 494; cost = 190; }//Audi Q7
				case 12: {buyid = 458; cost = 190; }//AUDI A8
				case 13: {buyid = 475; cost = 100; }//Снегоход
				case 14: {buyid = 489; cost = 200; }//BMW M6
				case 15: {buyid = 505; cost = 210; }//Mersedes-Benz AMG GL 63
				case 16: {buyid = 502; cost = 210; }//Rolls-Royce Ghost
				case 17: {buyid = 503; cost = 205; }//Dodge Charger
				case 18: {buyid = 436; cost = 220; }//Lexus LX570
				case 19: {buyid = 603; cost = 200; }//Agera Koenigsegg
				case 20: {buyid = 495; cost = 215; }//Mersedes-Benz AMG S65
				case 21: {buyid = 490; cost = 205; }//Bugatti Veyron
			}
			if(cost > Player[playerid][pDonate]) return SendMes(playerid, -1, "Не достаточно ДО очков. Пополнить счет можно в группе - ");
			if(GetPlayerCar(playerid) != 0) return SCM(playerid, COLOR_GRAD1, "{00CCCC}У Вас уже есть транспортное средство.");
			new Float:POS[4];
			GetPlayerPos(playerid, POS[0], POS[1], POS[2]), GetPlayerFacingAngle(playerid, POS[3]);
			TOTALCARS++, ALLTOTALCARS++;
			new i = ALLTOTALCARS;
			CarInfo[i][cID] = i, CarInfo[i][cX] = POS[0], CarInfo[i][cY] = POS[1], CarInfo[i][cZ] = POS[2], CarInfo[i][cF] = POS[3], CarInfo[i][cPrice] = 1, CarInfo[i][cModel] = buyid;
			format(CarInfo[i][cOwner], 24, "%s", Player[playerid][pName]);
			CarInfo[i][cColor1] = 76;
			CarInfo[i][cPrice] = 1;
			format(Query, 1500, "INSERT INTO "TABLE_CARS" (ID, X, Y, Z, F) VALUES ('%i', '%f', '%f', '%f', '%f')", i,
			POS[0], POS[1], POS[2], POS[3]);
			mysql_function_query(handle, Query, false, "","");
			SetCarInt(i, "Price", 1), SetCarInt(i, "Model", buyid);
			OWNABLECAR[i] = AddStaticVehicleEx(buyid, CarInfo[i][cX], CarInfo[i][cY], CarInfo[i][cZ], CarInfo[i][cF], -1, -1, 300);
			PutPlayerInVehicle(playerid, i, 0);
			Player[playerid][pDonate] = Player[playerid][pDonate] - cost;
			SetDonate(playerid,1,cost);
			SetCarStr(i, "Owner", Player[playerid][pName]);
			SCM(playerid, COLOR_WHITE, "==========================================================================");
			SendMes(playerid, COLOR_ORANGE, "Данное средство было куплено за %d Донат-Очков.", cost);
			SCM(playerid, COLOR_ORANGE, "Поздравляем Вас . Меню транспорта - /pcar");
			SCM(playerid, COLOR_ORANGE, "Если у вас возникли какие-либо проблемы, они будут решены после рестарта!");
			SCM(playerid, COLOR_ORANGE, "ОБЯЗАТЕЛЬНО ПЕРЕПАРКУЙТЕ СРЕДСТВО!!! /pcar - Припарковать транспорт");
			SCM(playerid, COLOR_WHITE, "==========================================================================");

Команда донат:

CMD:donate(playerid, params[])
{
	SCM(playerid, COLOR_GOOD, "1 рубль - 1ДО");
	if(GetPlayerDonate(playerid) == 0)
	{
		new DONATE_MSG[][] = {
			{"На вашем счету 0 ДОНАТ,для пополнения счета,оправьте деньги на электронный кошелек:\n"},
			{"qiwi:  \n"},
			{"После пополнения,ДОнат счет пополниться!\n 1рубль=1ДО \n"},
			{"Внимания во время пополнения ДО,обязательно указывайте свой игровой ник! \n"},
			{"Связь: skype:d11652 | vk.com/roleplay  | vk.com/roleplay  \n"}
		};
		new pdddialog[1024];
		format(pdddialog, sizeof(pdddialog), "%s%s%s%s%s%s%s%s%s", DONATE_MSG[0], DONATE_MSG[1], DONATE_MSG[2], DONATE_MSG[3], DONATE_MSG[4]);
		if(Player[playerid][pDonate] == 0) return SPD(playerid, D_DONATE, DIALOG_STYLE_MSGBOX, "Уведомление", pdddialog, "Закрыть", "");
	}
	else
	{
		GetPlayerDonate(playerid);
		format(strcom, 50, "Cчет: %d - рублей | 1ДО = 1РУБ", Player[playerid][pDonate]);
		new DONATE_D[][] = {
			{"Замена ника - {FFFF00}30ДО\nСмена номера телефона - {FFFF00}50ДО\nСмена номера авто\nСнять варны - {FFFF00}50ДО"},
			{"\nПовышение на 1ур - {FFFF00}50ДО\n+1exp - {FFFF00}10ДО\nБронежелет - {FFFF00}10ДО\nКупить военный билет - {FFFF00}30ДО\nОбмен на игр.валюту - {FFFF00}1ДО-5000руб\nПремиум аккаунт - {FFFF00}220DО\nПокупка Транспорта"}
		};
		new donatdialog[534];
		format(donatdialog, sizeof(donatdialog), "%s%s", DONATE_D[0], DONATE_D[1]);
		SPD(playerid, D_DONATE, DIALOG_STYLE_LIST, strcom, donatdialog, "Выбрать", "Отмена");
	}
	return true;
}
Изменено пользователем Shapik

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Web

Полагаю все дело в этом:

Player[playerid][pDonate] = Player[playerid][pDonate] - cost;
SetDonate(playerid,1,cost);

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SCRIPTMAN

 


Player[playerid][pDonate] - cost;
SetDonate(playerid,1,cost);

?

Player[playerid][pDonate] = Player[playerid][pDonate] - cost; SetDonate(playerid,1,cost);

Я так и думал. Но возможно не до конца. Должно быть так:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Web

Не так:

Player[playerid][pDonate] = Player[playerid][pDonate] - cost;

А так:

Player[playerid][pDonate] - cost;

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SCRIPTMAN

 

 


SetDonate(playerid,1,cost);
Я так и написал. Просто почему в цитату взяло. А вот это?
SetDonate(playerid,1,cost);

Не трогать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Web

Кривой перенос в теге, вот по этому и взяло так. Нет, это не трогай.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SCRIPTMAN

D:\Сервер\FT ROLEPLAY\gamemodes\ftrp.pwn(4595) : warning 215: expression has no effect
Player[playerid][pDonate] - cost;

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Web
- cost

попробуй убрать вообще

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SCRIPTMAN

,Так вообще-то. cost - цена авто. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Web

А  что фукция?

SetDonate(playerid,1,cost); 

Списывает/прибавляет? Может просто достаточно убрать ее?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SCRIPTMAN

,

stock SetDonate(playerid,type,newdonate)
{
	switch(type)
	{
	    case 1: mysql_format(handle,Query,sizeof(Query),"UPDATE `acc` SET `Donate` = (`Donate` - '%d') WHERE `Name` = '%s'",newdonate, Player[playerid][pName]),mysql_function_query(handle, Query, true, "", ""),Player[playerid][pDonate] -=newdonate;
	    case 2: mysql_format(handle,Query,sizeof(Query),"UPDATE `acc` SET `Donate` = (`Donate` + '%d') WHERE `Name` = '%s'",newdonate, Player[playerid][pName]),mysql_function_query(handle, Query, true, "", ""),Player[playerid][pDonate] +=newdonate;
	}
	return true;
} 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Web

Нук возьми в коментарий:

 

/*

Player[playerid][pDonate] = Player[playerid][pDonate] - cost;
SetDonate(playerid,1,cost);

*/

 

и посмотри что будет в итоге

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SCRIPTMAN

,0 реакции павно. Только убрался варнинг. Но, тогда как будет вычитать сумму?! 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Web

Нук пробуй:

Player[playerid][pDonate] -= cost;
SetDonate(playerid,1,cost);
Изменено пользователем Веб

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SCRIPTMAN

,Норм. Ща в игру зайду - проверю. Отпишу.

Так, смотри. Было 5к ДО на счету. Купил авто за 210ДО. Стало 4580ДО, а должно 4790

Изменено пользователем Shapik

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Web

Возьми в коментарий или убери: SetDonate(playerid,1,cost);

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SCRIPTMAN

Вееебчик. Спасибо большое!!! Просто убрал SetDonate и всё норм. Спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.