shape1
shape2
shape3
shape4
shape7
shape8

Ошибка с командой /delveh


Статус
Закрыто для дальнейших ответов.

Агустин

Новичок
Пользователь
20.03.2017
0
1
0
Помогите с исправлением ошибки пожалуйста
Пытаюсь сделать на сервер команду чтоб удалять созданное авто админом

Добавляю ко всем new

new CreatedCar;
new CreatedCars;

А вот сам код команды

if(strcmp(cmd, "/delveh", true) == 0 || strcmp(cmd, "/dv", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pAdmin] < 3) return MSG_NOADMIN1(playerid);
for(new i = 0; i < CreatedCar; i++)
{
DestroyVehicle(CreatedCars);
}
CreatedCar=0;
SendClientMessage(COLOR_ORANGE, " Вся созданная техника уничтожена!");
}
return 1;
}

Но при компилировании ругается на 

C:\Users\DENIS\Desktop\ÑËÈÂ ALBAINA\gamemodes\NRP.pwn(11799) : error 028: invalid subscript (not an array or too many subscripts): "CreatedCars"
C:\Users\DENIS\Desktop\ÑËÈÂ ALBAINA\gamemodes\NRP.pwn(11799) : warning 215: expression has no effect
C:\Users\DENIS\Desktop\ÑËÈÂ ALBAINA\gamemodes\NRP.pwn(11799) : error 001: expected token: ";", but found "]"
C:\Users\DENIS\Desktop\ÑËÈÂ ALBAINA\gamemodes\NRP.pwn(11799) : error 029: invalid expression, assumed zero
C:\Users\DENIS\Desktop\ÑËÈÂ ALBAINA\gamemodes\NRP.pwn(11799) : fatal error 107: too many error messages on one line

Вот сама строка

Код:
{
                       DestroyVehicle(CreatedCars[i]);
               }
 
Последнее редактирование модератором:

Pavel_Mafter

Освоившийся
Пользователь
23.01.2017
4
37
0
Попробуй на эту заменить

 

Код:
if(strcmp(cmd, "/dveh", true) == 0)
{
        if(GetPVarInt(playerid, "VehicleID") > 10)
        {
                new carid = GetPVarInt(playerid, "VehicleID");
                DestroyVehicle(carid);
                DeletePVar(playerid, "VehicleID");
        }
}
 

Агустин

Новичок
Пользователь
20.03.2017
0
1
0
Так что ли?

if(strcmp(cmd, "/dveh", true) == 0)
{
if(GetPVarInt(playerid, "VehicleID") > 10)
{
new carid = GetPVarInt(playerid, "VehicleID");
DestroyVehicle(carid);
DeletePVar(playerid, "VehicleID")
CreatedCar=0;
}
}
SendClientMessage(COLOR_ORANGE, " Вся созданная техника уничтожена!");
}
return 1;
}

А то у меня сразу Pawn не отвечает

 

Агустин

Новичок
Пользователь
20.03.2017
0
1
0
if(strcmp(cmd, "/dveh", true) == 0) {         if(GetPVarInt(playerid, "VehicleID") > 10)         {                 new carid = GetPVarInt(playerid, "VehicleID");                 DestroyVehicle(carid);                 DeletePVar(playerid, "VehicleID");         } }
Я так понял что любой сможет юзать эту команду? а как сделать стоб смог админ 5 лвл

if(strcmp(cmd, "/dveh", true) == 0)
{
if(GetPVarInt(playerid, "VehicleID") > 10)
{
new carid = GetPVarInt(playerid, "VehicleID");
DestroyVehicle(carid);
DeletePVar(playerid, "VehicleID");
}
}


Дополнение к сообщению:
и как сделать чтоб в чат писало что весь транспорт удален?

 

Doberman

Освоившийся
Пользователь
20.07.2014
430
69
0
@Агустин, проверка на админа как в любой другой команде и вывод сообщения в чат так же как и везде.Основы надо учить, без основ в скриптинге делать нечего.

 

Alim

Освоившийся
Пользователь
10.03.2016
347
23
0
перед командой добавь

if(PlayerInfo[playerid][pAdmin] < 5) return SCM(playerid, -1, "Вы не администратор 5 уровня!");

 
Последнее редактирование модератором:

Alim

Освоившийся
Пользователь
10.03.2016
347
23
0
@Агустин, если какие то ошибки, скидывай сюда

Код:
if(strcmp(cmd, "/dveh", true) == 0)
{
if(PlayerInfo[playerid][pAdmin] < 5) return SCM(playerid, -1, "Вы не администратор 5 уровня!");
        if(GetPVarInt(playerid, "VehicleID") > 10)
        {
                new carid = GetPVarInt(playerid, "VehicleID");
                DestroyVehicle(carid);
                DeletePVar(playerid, "VehicleID");
        }
}
 
Последнее редактирование модератором:

Агустин

Новичок
Пользователь
20.03.2017
0
1
0
if(strcmp(cmd, "/dveh", true) == 0) { if(PlayerInfo[playerid][pAdmin] < 5) return SCM(playerid, -1, "Вы не администратор 5 уровня!");         if(GetPVarInt(playerid, "VehicleID") > 10)         {                 new carid = GetPVarInt(playerid, "VehicleID");                 DestroyVehicle(carid);                 DeletePVar(playerid, "VehicleID");         } }
Отлично чувак, а как сделать чтоб в чат писало "Весь созданный транспорт уничтожен"

 

Alim

Освоившийся
Пользователь
10.03.2016
347
23
0
@Агустин

Код:
if(strcmp(cmd, "/dveh", true) == 0)
{
if(PlayerInfo[playerid][pAdmin] < 5) return SCM(playerid, -1, "Вы не администратор 5 уровня!");
        if(GetPVarInt(playerid, "VehicleID") > 10)
        {
                new carid = GetPVarInt(playerid, "VehicleID");
                DestroyVehicle(carid);
                DeletePVar(playerid, "VehicleID");
                SCMToAll(playerid, -1, "Весь созданный транспорт уничтожен");
        }
}
 
Последнее редактирование модератором:

Агустин

Новичок
Пользователь
20.03.2017
0
1
0
if(strcmp(cmd, "/dveh", true) == 0) { if(PlayerInfo[playerid][pAdmin] < 5) return SCM(playerid, -1, "Вы не администратор 5 уровня!");         if(GetPVarInt(playerid, "VehicleID") > 10)         {                 new carid = GetPVarInt(playerid, "VehicleID");                 DestroyVehicle(carid);                 DeletePVar(playerid, "VehicleID");                 SCMToAll(playerid, -1, "Весь созданный транспорт уничтожен");         } }
Спасибо, ну вот такой вопрос когда я ввожу команду то пишет такая команда не найдена

 

noname_idk

Гуру
Пользователь
19.07.2015
4 046
7
787
0
Скриптер
@Агустин, перед последней скобкой return true нужно добавить: 

Код:
if(strcmp(cmd, "/dveh", true) == 0)
{
	if(PlayerInfo[playerid][pAdmin] < 5) return SCM(playerid, -1, "Вы не администратор 5 уровня!");
	if(GetPVarInt(playerid, "VehicleID") <= 10) return true;
	DestroyVehicle(GetPVarInt(playerid, "VehicleID"));
	DeletePVar(playerid, "VehicleID");
	SCMToAll(playerid, -1, "Весь созданный транспорт уничтожен");
	return true;
}
 

Агустин

Новичок
Пользователь
20.03.2017
0
1
0
Спасибо вам за помощь конечно ребят но вот теперь такая проблема.

(11799) : error 017: undefined symbol "SCMToAll"

Эта строка

SCMToAll(playerid, -1, "Весь созданный транспорт уничтожен!");

Ну вот если я создам переменную new SCMToAll; то возникает такая ошибка

(11800) : error 012: invalid function call, not a valid address
C:\Users\DENIS\Desktop\ÑËÈÂ ALBAINA\gamemodes\NRP.pwn(11800) : warning 215: expression has no effect
C:\Users\DENIS\Desktop\ÑËÈÂ ALBAINA\gamemodes\NRP.pwn(11800) : warning 215: expression has no effect
C:\Users\DENIS\Desktop\ÑËÈÂ ALBAINA\gamemodes\NRP.pwn(11800) : warning 215: expression has no effect
C:\Users\DENIS\Desktop\ÑËÈÂ ALBAINA\gamemodes\NRP.pwn(11800) : error 001: expected token: ";", but found ")"
C:\Users\DENIS\Desktop\ÑËÈÂ ALBAINA\gamemodes\NRP.pwn(11800) : error 029: invalid expression, assumed zero
C:\Users\DENIS\Desktop\ÑËÈÂ ALBAINA\gamemodes\NRP.pwn(11800) : fatal error 107: too many error messages on one line

Вот строка

Код:
SCMToAll(playerid, -1, "Весь созданный транспорт уничтожен!");
 

Basis

chto tut doljno bit`!?
Пользователь
24.06.2014
824
1
271
0
25
error 028: invalid subscript (not an array or too many subscripts): "CreatedCars"
тебе же сообщают что размер массива слишком маленький,а именно в new CreatedCars у тебя без массива,а при удалении с массивом,покажи как создаёшь машины,а ничего не происходит потому что неизвестно откуда берут GetPVarInt(playerid, "VehicleID")

 
Последнее редактирование модератором:

Агустин

Новичок
Пользователь
20.03.2017
0
1
0
@Basis,  Вот 

Код:
else if(!strcmp(cmd, "/veh", true))
	{
		if(PlayerInfo[playerid][pAdmin] < 4) return MSG_NOADMIN2(playerid);
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GREEN, "» Èñïîëüçîâàíèå: /veh [ id èãðîêà ] [ id ìàøèíû ] [ öâåò 1 ] [ öâåò 2 ]");
		giveplayerid = strval(tmp);
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GREEN, "» Èñïîëüçîâàíèå: /veh [ id èãðîêà ] [ id ìàøèíû ] [ öâåò 1 ] [ öâåò 2 ]");
		new carid = strval(tmp);
		new color1, color2;
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))
		{
			color1 = random(127);
		}
		else
		{
			color1 = strval(tmp);
		}
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))
		{
			color2 = random(127);
		}
		else
		{
			color2 = strval(tmp);
		}
		if(carid > 611 || carid < 400) return SendClientMessage(playerid, COLOR_GREEN, "Òû ââ¸ë íå âåðíûé id ìàøèíû. Èñïîëüçóé id îò 400 äî 611");
		if(IsPlayerConnected(giveplayerid))
		{
			new Float:POS[4];
			GetPlayerPos(giveplayerid, POS[0], POS[1], POS[2]);
			GetPlayerFacingAngle(giveplayerid, POS[3]);
			if(GiveAdminVehicle[giveplayerid] != INVALID_VEHICLE_ID)
			{
				DestroyVehicle(GiveAdminVehicle[giveplayerid]);
			}
			GiveAdminVehicle[giveplayerid] = AddStaticVehicleEx(carid, POS[0], POS[1], POS[2], POS[3], color1, color2, -1);
			SetVehicleNumber(GiveAdminVehicle[giveplayerid]);
			SetVehicleToRespawn(GiveAdminVehicle[giveplayerid]);
			VehicleLock[GiveAdminVehicle[giveplayerid]] = false;
			BootVehicleLock[GiveAdminVehicle[giveplayerid]] = false;
			new engine,lights,alarm,doors,bonnet,boot,objective;
			GetVehicleParamsEx(GiveAdminVehicle[giveplayerid],engine,lights,alarm,doors,bonnet,boot,objective);
			SetVehicleParamsEx(GiveAdminVehicle[giveplayerid],true,false,alarm,false,bonnet,boot,objective);
			SetVehicleVirtualWorld(GiveAdminVehicle[giveplayerid], GetPlayerVirtualWorld(giveplayerid));
			LinkVehicleToInterior(GiveAdminVehicle[giveplayerid], GetPlayerInterior(giveplayerid));
			PutPlayerInVehicle(giveplayerid, GiveAdminVehicle[giveplayerid], 0);
			VehicleEngine[GiveAdminVehicle[giveplayerid]] = true;

		}
		else
		{
			MSG_NOTPLAYER(playerid);
		}
		return 1;
	}
 

Basis

chto tut doljno bit`!?
Пользователь
24.06.2014
824
1
271
0
25
при создании должно быть

CreatedCar++;
CreatedCars[CreatedCar] = GiveAdminVehicle[giveplayerid];
в начале

new CreatedCar;
new CreatedCars[количество машин];//к примеру [40]
и при удалении машин(как и есть)

DestroyVehicle(CreatedCars);
вроде бы так должно быть.....

 
Статус
Закрыто для дальнейших ответов.