Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Индекс массива вне границ

Статус
В этой теме нельзя размещать новые ответы.

I name Alex

Умник
Помогите пожалуйста, друг вводит команду /sellmyfuelst чтобы продать мне заправку, ему выдаёт SERVER: ункновн команд. Инддекс массива вне границ.

PHP:
if(strcmp(cmd, "/sellmyfuelst", true) == 0)
	{
		if(PlayerInfo[playerid][pFuel] == 999) return SendClientMessage(playerid, COLOR_GRAD1, "У Вас нет АЗС.");
		tmp = strtok(cmdtext, idx);
		new price;
		if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD2, "Используйте: /sellmyfuelst [id игрока] [цена]");
		giveplayerid = ReturnUser(tmp);
		tmp = strtok(cmdtext, idx);
		price = strval(tmp);
		if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD2, "Используйте: /sellmyfuelst [id игрока] [цена]");
		if (PlayerInfo[playerid][pFuel] < 999)
		{
			if(IsPlayerConnected(giveplayerid))
			{
				if(giveplayerid != INVALID_PLAYER_ID)
				{
					if(GetPVarInt(playerid,"yes") == 1) return SendClientMessage(playerid,COLOR_GRAD2, "Вы не можете использовать это в данный момент, отзовите своё предыдущее предложение {0099FF}/cancel");
					if(playerid == giveplayerid) return SendClientMessage(playerid, COLOR_GRAD1, "Игрока с таким id нет");
					if(GetDistanceBetweenPlayers(playerid, giveplayerid) > 5 || GetPlayerVirtualWorld(playerid) != GetPlayerVirtualWorld(giveplayerid)) return SendClientMessage(playerid, COLOR_GRAD1, "Игрок слишком далеко от Вас.");
					if(price < BizInfo[PlayerInfo[playerid][pFuel]][bPrice]) { SendClientMessage(playerid, COLOR_GRAD1, "Цена не может быть меньше государственной!"); return true; }
					if(PlayerInfo[giveplayerid][pMoney] < price) return SendClientMessage(playerid, COLOR_GRAD1, "У игрока нет такой суммы денег!");
					if(PlayerInfo[giveplayerid][pFuel] < 999) return SendClientMessage(playerid, COLOR_GRAD1, "У этого игрока уже есть АЗС!");
					if(!IsPlayerInRangeOfPoint(playerid,20.0,BizInfo[PlayerInfo[playerid][pBusiness]][ExitX],BizInfo[PlayerInfo[playerid][pBusiness]][ExitY],BizInfo[PlayerInfo[playerid][pBusiness]][ExitZ])) return SendClientMessage(playerid, COLOR_GRAD1, "Вы должны находиться у АЗС!");
					SetPVarInt(giveplayerid,"sellmyfuel",1);
					SetPVarInt(playerid,"yes",1);
					yesid[playerid] = giveplayerid;
					GetPlayerTransfer1[giveplayerid] = playerid;
					GetPlayerOption1[giveplayerid] = price;
					format(query,sizeof(query), "Вы предложили игроку {9DDAF2}%s{1e90ff} купить АЗС №%d за {00CC00}%d$", PlayerInfo[giveplayerid][pName],PlayerInfo[playerid][pFuel], price);
					SendClientMessage(playerid, 0x1e90ffAA, query);
					format(query,sizeof(query),  "{1e90ff}%s {1e90ff}предлагает Вам купить АЗС №%d за {34c924}%d$", PlayerInfo[playerid][pName],PlayerInfo[playerid][pFuel], price);
					SendClientMessage(giveplayerid, COLOR_WHITE, query);
					SendClientMessage(giveplayerid, CWHITE, "Нажмите {03c03c}Y {FFFFFF}чтобы согласиться или {ff7518}N {FFFFFF}для отказа.");
					return true;
				}
			}
			else
			{
				SendClientMessage(playerid, COLOR_GRAD1, "Игрока с таким id нет");
			}
		}
		return true;
	}

PHP:
[21:36:29] [debug] Run time error 4: "Array index out of bounds"
[21:36:29] [debug]  Accessing element at index 999 past array upper bound 200
[21:36:29] [debug] AMX backtrace:
[21:36:29] [debug] #0 00432b68 in public OnPlayerCommandText (playerid=0, cmdtext[]=@004bd860 "/sellmyfuelst 1 2000000") at путь\server RP\gamemodes\server.pwn:32817
[21:36:44] [debug] Run time error 4: "Array index out of bounds"
[21:36:44] [debug]  Accessing element at index 999 past array upper bound 200
[21:36:44] [debug] AMX backtrace:
[21:36:44] [debug] #0 00432b68 in public OnPlayerCommandText (playerid=0, cmdtext[]=@004bd860 "/sellmyfuelst 1 2000000") at путь\server RP\gamemodes\server.pwn:32817
PHP:
32817:if(!IsPlayerInRangeOfPoint(playerid,20.0,BizInfo[PlayerInfo[playerid][pBusiness]][ExitX],BizInfo[PlayerInfo[playerid][pBusiness]][ExitY],BizInfo[PlayerInfo[playerid][pBusiness]][ExitZ])) return SendClientMessage(playerid, COLOR_GRAD1, "Вы должны находиться у АЗС!");
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу