Question

DENIS.P.
Старожил

Прошу помочь, с этой проблемой, когда создаю авто в veh 

[21:54:11] [debug]  Accessing element at negative index -1
[21:54:11] [debug] AMX backtrace:
[21:54:11] [debug] #0 00465818 in public UpdateSpeedometr (playerid=4) at C:\Users\Денис\Desktop\Luxury RP Мой мод\gamemodes\orpbyden.pwn:43867

 

Share this post


Link to post

10 answers to this question

  • 0
DEST
Maintainer

@DENIS.P. можно сделать как написали выше, хотя насколько я помню машины с 0 ID и начинаются, ну не суть. В таком случае везде проверку нужно будет заменить. Просто в самом таймере добавьте обработку исключения: 
 

Спойлер

public UpdateSpeedometr(playerid)
{
    new info[8][20];
    new vehicleid = GetPlayerVehicleID(playerid);
    new id_car = GetVehicleIdxByID(vehicleid);
	new speed = fGetPlayerSpeed(playerid)/2;
	if(lights == 1)
	{
		PlayerTextDrawColor(playerid,SpeedPlayerText[playerid][7],10748074);//ÔÀÐÛ
        PlayerTextDrawShow(playerid,SpeedPlayerText[playerid][7]);
	}
	else
	{
		PlayerTextDrawColor(playerid,SpeedPlayerText[playerid][7],-1);//ÔÀÐÛ
		PlayerTextDrawShow(playerid,SpeedPlayerText[playerid][7]);//ÔÀÐÛ
    }
	if(engine == 1)
	{
		PlayerTextDrawColor(playerid,SpeedPlayerText[playerid][6],10748074);//Äâèãàòåëü
		PlayerTextDrawShow(playerid,SpeedPlayerText[playerid][6]);
	}
	else
	{
		PlayerTextDrawColor(playerid,SpeedPlayerText[playerid][6],-1);//Äâèãàòåëü
		PlayerTextDrawShow(playerid,SpeedPlayerText[playerid][6]);
	}
	if(IsLocked[vehicleid])
	{
		PlayerTextDrawColor(playerid,SpeedPlayerText[playerid][5],10748074);//Äâåðè
		PlayerTextDrawShow(playerid,SpeedPlayerText[playerid][5]);
	}
	else
	{
		PlayerTextDrawColor(playerid,SpeedPlayerText[playerid][5],-1);//Äâåðè
		PlayerTextDrawShow(playerid,SpeedPlayerText[playerid][5]);
	}
	if(id_car != -1) {
          format(info[0],20,"%d", aData[id_car][aFuel]);
          PlayerTextDrawSetString(playerid,SpeedPlayerText[playerid][14],info[0]);//Áåíç!!!
          format(info[1],20,"%d", speed);
          PlayerTextDrawSetString(playerid,SpeedPlayerText[playerid][3],info[1]);//Ñêîðîñòü!!!
          format(info[5],20,"%.1f",aData[id_car][aMilleage]);//Îáùèé ïðîáåã êàðà
          PlayerTextDrawSetString(playerid,SpeedPlayerText[playerid][19],info[5]);
	}
	return 1;
}

 

 

Share this post


Link to post
  • 0
DENIS.P.
Старожил

@DEST @DEST держите

public UpdateSpeedometr(playerid)
{
    new info[8][20];
    new vehicleid = GetPlayerVehicleID(playerid);
    new id_car = GetVehicleIdxByID(vehicleid);
	new speed = fGetPlayerSpeed(playerid)/2;
	if(lights == 1)
	{
		PlayerTextDrawColor(playerid,SpeedPlayerText[playerid][7],10748074);//ÔÀÐÛ
        PlayerTextDrawShow(playerid,SpeedPlayerText[playerid][7]);
	}
	else
	{
		PlayerTextDrawColor(playerid,SpeedPlayerText[playerid][7],-1);//ÔÀÐÛ
		PlayerTextDrawShow(playerid,SpeedPlayerText[playerid][7]);//ÔÀÐÛ
    }
	if(engine == 1)
	{
		PlayerTextDrawColor(playerid,SpeedPlayerText[playerid][6],10748074);//Äâèãàòåëü
		PlayerTextDrawShow(playerid,SpeedPlayerText[playerid][6]);
	}
	else
	{
		PlayerTextDrawColor(playerid,SpeedPlayerText[playerid][6],-1);//Äâèãàòåëü
		PlayerTextDrawShow(playerid,SpeedPlayerText[playerid][6]);
	}
	if(IsLocked[vehicleid])
	{
		PlayerTextDrawColor(playerid,SpeedPlayerText[playerid][5],10748074);//Äâåðè
		PlayerTextDrawShow(playerid,SpeedPlayerText[playerid][5]);
	}
	else
	{
		PlayerTextDrawColor(playerid,SpeedPlayerText[playerid][5],-1);//Äâåðè
		PlayerTextDrawShow(playerid,SpeedPlayerText[playerid][5]);
	}
	format(info[0],20,"%d", aData[id_car][aFuel]);
	PlayerTextDrawSetString(playerid,SpeedPlayerText[playerid][14],info[0]);//Áåíç!!!
	format(info[1],20,"%d", speed);
    PlayerTextDrawSetString(playerid,SpeedPlayerText[playerid][3],info[1]);//Ñêîðîñòü!!!
 	format(info[5],20,"%.1f",aData[id_car][aMilleage]);//Îáùèé ïðîáåã êàðà
	PlayerTextDrawSetString(playerid,SpeedPlayerText[playerid][19],info[5]);
	return 1;
}
строка находиться в другом стоке и там только скобка      {

 

Share this post


Link to post
  • 0
DENIS.P.
Старожил

Все еще требуется помощь 

@DEST и еще это может быть из за ид_кар ?где то он бывает такой 

if(id_car == -1)

 

Share this post


Link to post
  • 0
DEST
Maintainer

@DENIS.P. после четвертой строки попробуйте вставить:

printf("%d - IDCAR", id_car);

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

Share this post


Link to post
  • 0
MuhammadPawn
Великий Гуру
PlayerTextDrawColor(playerid,SpeedPlayerText[playerid][7],-1);

псс (hex - RGBA цвета ток)

Share this post


Link to post
  • 0
DENIS.P.
Старожил

@MuhammadPawn меня л это у цвета, всеравно нет.

Заметка от DEST , создано

Отвечайте сразу на два поста.

Share this post


Link to post
  • 0
MuhammadPawn
Великий Гуру

кстати код б глянуть функции 

GetVehicleIdxByID скидывай сюда её 

Share this post


Link to post
  • 0
DENIS.P.
Старожил

@MuhammadPawn 

tock GetVehicleIdxByID(idcar)
{
	for(new i = 0; i < MAX_VEHICLES; i++)
	{
		if(!aData[i][aKey]) continue;
		if(aData[i][aCarid] == idcar) return i;
	}
	return -1;
}

 

Share this post


Link to post
  • 0
MuhammadPawn
Великий Гуру

@DENIS.P. ошибка сама нашлась return -1;

я так понял stock возвращает -1 если кар не домашний или чё (ставь за место -1 = 0) (все автомобили начинаются с id 1)

Edited by MuhammadPawn

Share this post


Link to post
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • ВасилийСталин
      By ВасилийСталин
      VERDICT PROJECT - V:ACE
       
      Соревновательный проект на платформе SA-MP, вдохновлённый духом Counter-Strike: тактические перестрелки, честный рейтинг и ванильное PVP.
      В разработке, не используются ресурсы, из открытых источников. Всё строится с нуля, собственный игровой мод, полностью кастомный интерфейс и игровой лаунчер.
      Что мы разрабатываем:
       
      - Рейтинговый режим с подбором по ELO. Равные соперники, честные матчи, путь от новичка до вершины таблицы.
      - Полностью кастомный интерфейс (CEF): меню, лобби, магазин и статистика такого уровня, какого на SA-MP почти не встретишь.
      - Легионеры - уникальные оперативники с индивидуальным дизайном и редкостью, открываются через боевой пропуск или чёрные ячейки (кейсы).
      - Скины на оружие и кейсы - коллекционная система в духе CS. -> В активной разработке
      - Киберспортивные команды: теги, ростеры, матчи команда против команды.
      - Тренировка аима, система рангов, ежедневные награды и не только.
       
      Продуманный баланс и внимание к деталям ванильного сражения - то, ради чего мы за это взялись.
      Проект уже на серьёзной стадии разработки. Мы открываем сообщество раньше официального анонса, чтобы первые скриншоты, новости и дата старта достались тем, кто был с нами с самого начала. Мы всегда рады открытой критике, или советам - сделаем игру лучше для всех!
      Подписывайтесь, чтобы не пропустить официальное заявление о запуске и первые материалы проекта.
       
      Группа VK: https://vk.ru/verdictcs
      Официальная почта: verdictproject@mail.ru
    • Kevin_McCarthy
      By Kevin_McCarthy
      🔒 ОТКРЫТИЕ НАБОРА НА ЗАКРЫТОЕ БЕТА-ТЕСТИРОВАНИЕ (ЗБТ)!
      Друзья! Мы выходим на самый ответственный этап разработки Brilliant RP. Проект уже практически готов к полноценному запуску, но перед тем как открыть двери для всех игроков, нам нужно тщательно проверить каждую систему, каждую работу и каждую строчку кода.
      Именно поэтому мы объявляем о старте Закрытого Бета-Тестирования!
      🏆 ТОП-3 ТЕСТЕРА ПОЛУЧАТ КРУТЫЕ ПРИЗЫ!
      Мы высоко ценим время и вклад каждого участника. Тестеры, которые проявят наибольшую активность, найдут больше всего уникальных багов и подробно опишут их в нашей Google-форме, получат ценные награды:
      🥇 1 МЕСТО: 3000 рублей на кошелек, 100.000$ игровой валюты, и Diamond VIP на 30 дней
      🥈 2 МЕСТО: 2000 рублей на кошелек, 75.000$ игровой валюты, и Diamond VIP на 30 дней
      🥉 3 МЕСТО: 1000 рублей на кошелек, 50.000$ игровой валюты, и Diamond VIP на 30 дней
      📝 Как стать участником ЗБТ?
      Заполни заявку на участие: 👉 https://vk.ru/gtasamp_brilliantrp
      Дождись одобрения.
    • OOLOAIS
      By OOLOAIS
      Ищу скрипт для самп/crmp который может скопировать акссесуары с аризоны/родины пж помогите