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

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

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

#Pawno

вот код, что тут не так?

[20:26:23] [debug] #0 00073c60 in public OnPlayerKeyStateChange (playerid=23, newkeys=16, oldkeys=8) at C:\Users\Arte\Desktop\Фильмы\Royal Roleplay\gamemodes\RLRP.pwn:7960
[20:26:23] [debug] Run time error 4: "Array index out of bounds"
[20:26:23] [debug]  Accessing element at negative index -400
	for(new i = 1; i <= TOTALATM; i++)
	{
			if(PlayerToPoint(3.0, playerid, ATMInfo[i][aX], ATMInfo[i][aY], ATMInfo[i][aZ])) ATMList(playerid);
	}

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


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


for(new i = 1; i <= TOTALATM; i++)
{
if(PlayerToPoint(playerid, 3.0, ATMInfo[i][aX], ATMInfo[i][aY], ATMInfo[i][aZ])) ATMList(playerid);
}

 

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


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

 

 


if(PlayerToPoint(playerid, 3.0, ATMInfo[aX], ATMInfo[aY], ATMInfo[aZ])) ATMList(playerid);

 

И где же тут выход ? playerid - должен быть вторым аргументом, а радиус первым. Все правильно было.

for(new i = 1; i <= TOTALATM; i++)

на

for(new i = 0; i => TOTALATM; i++)

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


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

нормально будет? 


C:\Users\Arte\Desktop\Фильмы\Royal Roleplay\gamemodes\RLRP.pwn(7940) : warning 211: possibly unintended assignment
C:\Users\Arte\Desktop\Фильмы\Royal Roleplay\gamemodes\RLRP.pwn(7940) : error 029: invalid expression, assumed zero
C:\Users\Arte\Desktop\Фильмы\Royal Roleplay\gamemodes\RLRP.pwn(7940) : warning 215: expression has no effect
C:\Users\Arte\Desktop\Фильмы\Royal Roleplay\gamemodes\RLRP.pwn(7940) : error 001: expected token: ")", but found ";"
C:\Users\Arte\Desktop\Фильмы\Royal Roleplay\gamemodes\RLRP.pwn(7940) : error 036: empty statement
C:\Users\Arte\Desktop\Фильмы\Royal Roleplay\gamemodes\RLRP.pwn(7940) : fatal error 107: too many error messages on one line

Поставил вариант веба , ошибка

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


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

Попробуй и отпишись о результате.

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


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

 

 


for(new i = 1; i
Проверю твой вариант .

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


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

Эм... А так?  

    for(new i = 0; i <= TOTALATM; i++)
    {
            if(PlayerToPoint(3.0, playerid, ATMInfo[i][aX], ATMInfo[i][aY], ATMInfo[i][aZ])) ATMList(playerid);
    }
Изменено пользователем Веб

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


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

щас


,Ошибка 

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


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

Точно из за моего кода?

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


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

да.

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


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

Да быть не может

 

   

    for(new i = 1; i <= TOTALATM; i++)
    {
            if(PlayerToPoint(3.0, playerid, ATMInfo[i][aX], ATMInfo[i][aY], ATMInfo[i][aZ])) ATMList(playerid);
    }

Вот этот твой вариант норм и с ошибкой в лог? Попробуй сейчас с ним скомпилировать.

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


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

Сделал немножко по свойму , если что пока тему не закрываю 

 

for(new i = 1; i <= TOTALATM; i++)
		{
				if(IsPlayerInRangeOfPoint(playerid, 3.0, ATMInfo[i][aX], ATMInfo[i][aY], ATMInfo[i][aZ])) ATMList(playerid);
		}

Вроде понял и за чего такое выходит. 

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


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

, полгода путал написание этого оператора, надо просто запомнить - знак равенства всегда второй (>=

 

for(new i = 0; i => TOTALATM; i++)

 

Да и вариант так себе, цикл то не начнется никогда.

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

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


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

, прикол в том, что у него не компилировалось по какой то причине. Я выше предлагал так.

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


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

 

 


sers\Arte\Desktop\Фильмы\Royal Roleplay\gamemodes\RLRP.pwn(7940) : warning 211: possibly unintended assignment C:\Users\Arte\Desktop\Фильмы\Royal Roleplay\gamemodes\RLRP.pwn(7940) : error 029: invalid expression, assumed zero C:\Users\Arte\Desktop\Фильмы\Royal Roleplay\gamemodes\RLRP.pwn(7940) : warning 215: expression has no effect C:\Users\Arte\Desktop\Фильмы\Royal Roleplay\gamemodes\RLRP.pwn(7940) : error 001: expected token: ")", but found ";" C:\Users\Arte\Desktop\Фильмы\Royal Roleplay\gamemodes\RLRP.pwn(7940) : error 036: empty statement C:\Users\Arte\Desktop\Фильмы\Royal Roleplay\gamemodes\RLRP.pwn(7940) : fatal error 107: too many error messages on one line
 вот такая ошибка , еще вопрос. 
Почему то когда  у меня спидометр обновляется , и название машины, то выходит за границу, почему я так и не понял.
 
[01:12:08] [debug] #0 00022aec in public speedometr (playerid=0) at C:\Users\Arte\Desktop\Фильмы\Royal Roleplay\gamemodes\RLRP.pwn:2924
[01:12:08] [debug] Run time error 4: "Array index out of bounds"
[01:12:08] [debug]  Accessing element at negative index -400

Если убрать -400 то спедак не работает. 

format(str, sizeof(str), "%s", VehicleNames[GetVehicleModel(carid)-400]);
	PlayerTextDrawSetString(playerid, Speedo[playerid][13], str);

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


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

carid как получаешь?

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


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

, по причине того, что заменив оператор, ты перепутал положение двух символов (не =>, а >=).

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


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

new carid = GetPlayerVehicleID(playerid); вот так

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


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

Ну тогда:

for(new i = 1; i <= TOTALATM; i++)

на 

for(new i = 0; i >= TOTALATM; i++)

а что касаемо спидометра:

format(str, sizeof(str), "%s", VehicleNames[GetVehicleModel(carid)-400]);

что у тебя выше данного кода? То есть, в 2923 строчке

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


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

А почему бы не юзать стандартную функцию IsPlayerInRangeOfPoint?

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


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

if(PI[playerid][pAFK] >= 3 && GetPlayerState(playerid) != 2) return 1;
new carid = GetPlayerVehicleID(playerid);
if(IsAPlane(carid)==1 || IsABoat(carid)==1 || IsAMoped(carid)==1 || IsAVel(carid)==1) return 1;

new str[136];

format(str, sizeof(str), "%s", VehicleNames[GetVehicleModel(carid)-400]);
PlayerTextDrawSetString(playerid, Speedo[playerid][13], str);

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


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

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

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

×

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

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