Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!: Обмен авто - Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Тема закрыта

[ Pawn ]
Обмен авто

#1
Пользователь офлайн   Dati4o 

  • Новичок
  • Вставить ник
  • Раскрыть информацию
Здравствуйте. Пишу систему обмена авто с другим игроком. Сделал так что бы при вводе команды /changecar ид доплата, высвечивалось игроку что бы совершить сделку. Что бы он ввел /use car и выскакивает табличка. В табличке Машина, Проценты машины. Почему то не выскакивает диалог. Подскажите что я тут набудрил и как разобраться :biggrin:

else if(strcmp(cmd, "/changecar", true) == 0)
	{

		if(pInfo[playerid][pPhousekey] == INVALID_HOUSE_ID) return SendClientMessage(playerid,COLOR_RED,"У вас нет дома");
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "Используйте: /change [car] [ID игрока] [цена]");
		new playa, money;
		playa = ReturnUser(tmp);
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "Используйте: /change [car] [ID игрока] [цена]");
		money = strval(tmp);
		if(money < 1 || money > 10000000) { SendClientMessage(playerid, COLOR_GREY, "Нельзя меньше 1, и больше 10000000!"); return true; }
		if(IsPlayerConnected(playa))
		{
			if(playa != INVALID_PLAYER_ID)
			{
				if(ProxDetectorS(8.0, playerid, playa))
				{
					if(playa == playerid) { SendClientMessage(playerid, COLOR_GREY, "Вы не можете продать самому себе машину!"); return true; }
					format(string, sizeof(string), "Вы предложили %s купить вашу машину за %d рублей.",pInfo[playa][pNickname],money);
					SendClientMessage(playerid, 0x6495EDFF, string);
					format(string, sizeof(string), "%s предлагает вам купить его машину за %d рублей (( Введите /use car, чтобы совершить сделку ))",pInfo[playerid][pNickname],money);
					SendClientMessage(playa, 0x6495EDFF, string);
					format(string, sizeof(string), "%s предложил(а) %s купить его машину", pInfo[playerid][pNickname] ,pInfo[playa][pNickname]);
					ProxDetector(20.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
					CarOffer[playa] = playerid;
					CarPrice[playa] = money;
				}
				else return SendClientMessage(playerid, COLOR_GREY, "Игрок не рядом с вами!");
			}
		}
		else return SendClientMessage(playerid, COLOR_GREY, "[Ошибка] Игрок не найден!");
		return true;
	}


else if(strcmp(x_job,"car",true) == 0)
		{
			if(CarOffer[playerid] == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_GREY, "Вам никто не предлагал купить машину!");
			if(!ProxDetectorS(8.0, playerid, CarOffer[playerid])) return SendClientMessage(playerid, COLOR_GREY, "Игрок слишком далеко от вас!");
			if(pInfo[playerid][pCash] < CarPrice[playerid]) return SendClientMessage(playerid, COLOR_GREY, "У вас нет столько денег на руках!");
		 	new str[512];
		    format(str, sizeof str, "{FFFFFF}Вы собираетесь обменяться своим личным транспортом с %s\n\n\
			{E3C100}Вы отдаете:\n{ffffff}\t%s (%d %)\n\n{E3C100}Вы получаете:\n{ffffff}\t%s (%d %)\n\t%d вирт\n\nВы согласны на сделку?",
			VehicleNames[pInfo[playerid][pCar]-400],pInfo[playerid]
[pProcent],VehicleNames[pInfo[params[0]][pCar]
-400],pInfo[params[0]][pProcent],params[1]);
		    ShowPlayerDialog(playerid,112,DIALOG_STYLE_MSGBOX,"{FFFFFF}Подтверждение"
,str,"Согласен","Отмена");

		    format(str, sizeof str, "{FFFFFF}Вы собираетесь обменяться своим личным транспортом с %s\n\n\
			{E3C100}Вы отдаете:\n{ffffff}\t%s (%d %)\n\t%d вирт\n\n{E3C100}Вы получаете:\n{ffffff}\t%s (%d %)\n\nВы согласны на сделку?",
			VehicleNames[pInfo[params[0]][pCar]-400],pInfo[
params[0]][pProcent],params[1],VehicleNames[pInfo[
playerid][pCar]-400],pInfo[playerid][pProcent]);
		    ShowPlayerDialog(params[0],112,DIALOG_STYLE_MSGBOX,"{FFFFFF}Подтверждение"
,str,"Согласен","Отмена");
		    return 1;
		}


case 112:
  		{
			pInfo[playerid][pProcent] = pInfo[CarOffer[playerid]][pProcent];
			pInfo[playerid][pCar] = pInfo[CarOffer[playerid]][pCar];
			pInfo[CarOffer[playerid]][pCar] = 462;
			pInfo[playerid][pCash] -=CarPrice[playerid];
			pInfo[CarOffer[playerid]][pCash] +=CarPrice[playerid];
			format(string, sizeof(string), "Вы продали машину %s за %d рублей!", pInfo[playerid][pNickname], CarPrice[playerid]);
			SendClientMessage(CarOffer[playerid], 0x6495EDFF, string);
			format(string, sizeof(string), "Вы купили машину у %s за %d рублей!", pInfo[CarOffer[playerid]][pNickname], CarPrice[playerid]);
			SendClientMessage(playerid, 0x6495EDFF, string);
			DestroyVehicle(caridhouse[playerid]);
			caridhouse[playerid] = INVALID_VEHICLE_ID;
			DestroyVehicle(caridhouse[CarOffer[playerid]]);
			caridhouse[CarOffer[playerid]] = INVALID_VEHICLE_ID;
			OnPropUpdate();
			sql_str[0] = EOS;
			format(sql_str, sizeof(sql_str), "UPDATE accounts SET procent=%d, car=%d, cash=%d WHERE id=%d",
			pInfo[playerid][pProcent], pInfo[playerid][pCar], pInfo[playerid][pCash], pInfo[playerid][pID]);
			mysql_tquery(dbHandle, sql_str);
			sql_str[0] = EOS;
			format(sql_str, sizeof(sql_str), "UPDATE accounts SET procent=%d, car=%d, cash=%d WHERE id=%d",
			pInfo[CarOffer[playerid]][pProcent], pInfo[CarOffer[playerid]][pCar], pInfo[CarOffer[playerid]][pCash], pInfo[CarOffer[playerid]][pID]);
			mysql_tquery(dbHandle, sql_str);
			CarOffer[playerid] = INVALID_PLAYER_ID;
			CarPrice[playerid] = 0;
			return true;
		}

0

#2
Пользователь офлайн   DeimoS 

  • Evil Scripter
  • Вставить ник
  • Раскрыть информацию
А что за "params[0]" в коде команды /use car? Скорее всего ты ловишь выход за пределы массива, ибо неправильную переменную полставил
0

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Тема закрыта

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей


Яндекс.Метрика