PDA

Просмотр полной версии : [Вопрос] Варнинги в команде



Andrik851
05.05.2019, 01:06
Доброй ночи помогите решить варнинги в кманде

варнинги


C:\Users\Генерал\Desktop\локальный сервер\gamemodes\mrpv1.pwn(36635) : warning 213: tag mismatch: expected tag "pInfo", but found "cInfo"
C:\Users\Генерал\Desktop\локальный сервер\gamemodes\mrpv1.pwn(36639) : warning 213: tag mismatch: expected tag "pInfo", but found "cInfo"
Pawn compiler 3.10.8 Copyright (c) 1997-2006, ITB CompuPhase

Header size: 19836 bytes
Code size: 6277176 bytes
Data size: 7670100 bytes
Stack/heap size: 16384 bytes; estimated max. usage=7264 cells (29056 bytes)
Total requirements:13983496 bytes

2 Warnings.



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


CMD:carar(playerid, params[])// штрафстоянка
{
if(PlayerInfo[playerid][pMember] == F_DPS)
{
if(!IsPlayerInRangeOfPoint(playerid, 5.0, 2394.0767,-1790.1770,21.8604)) return SendClientMessage(playerid, COLOR_GREY, "[INFO] Отправлять авто на штрафстоянку можно только возле штрафстоянки");
new Float:x,Float:y, Float:z;
for(new v; v < MAX_VEHICLES; v++)
{
GetVehiclePos(v, x, y, z);
if(!IsPlayerInRangeOfPoint(playerid, 3.0, x,y,z)) continue;
foreach(new i:Player)
{
if(PlayerInfo[i][cCarId] == v)// варнинг 1
{
SetPVarInt(playerid, "ArCars", v);
SetPVarInt(playerid, "PrCars", i);
format(totalstring, 500, "{FFFFFF}Вы хотите отправить на штрафстоянку автомобиль {CD5C5C}%s{FFFFFF} с номерными знаками {1E90FF}%s{FFFFFF}?",VehicleNameS[GetVehicleModel(v)-400], PlayerInfo[i][cNumber]);// варнинг 2
ShowPlayerDialog(playerid, D_CAR+4, 0, "{66CC00}Госавтоинспекция", totalstring, "Да", "Нет");
}
}
return 1;
}
}
return true;
}

Paradox
05.05.2019, 03:36
Посмотри, cCarId, cNumber в каком enum'e находятся?
И замени на верный.

Andrik851
05.05.2019, 08:33
Посмотри, cCarId, cNumber в каком enum'e находятся?
И замени на верный.

У меня вот такой enum но куда его писать то


enum cInfo
{
cId,
cModel,
Float:cX,
Float:cY,
Float:cZ,
Float:cFa,
cFuel,
cNumber[40],
cCarAr,
cClass,
cColor1,
cColor2,
cLock,
cCost,
cVehcom[64],
cVehcoms[14],
cPaintjob,
cMoney,
cKan,
cDeer,
Text3D:cText,
cCarId,
Float:cHealth
}

verteich
05.05.2019, 12:32
У тебя массив привязан к pInfo, но вводишь ты cInfo, скорее всего массив у тебя CarInfo

Andrik851
05.05.2019, 13:52
У тебя массив привязан к pInfo, но вводишь ты cInfo, скорее всего массив у тебя CarInfo

я прописывал CarInfo но тогда вообще ошибка в этой строке

Andrik851
05.05.2019, 14:46
А вот когда прописал таким образом варнинг пропал


if(CarInfo[playerid][i][cCarId] == v)


но а вот здесь такое не катит и выдает ошибку


if(checkpointid == Pickup[36])// штрафстоянка
{
if(PlayerInfo[playerid][cCarAr] == 1) return ShowPlayerDialog(playerid, D_PODEZD+8, 0, "Штрафстоянка", "{FFFFFF}Ваш автомобиль находиться под арестом.\n\
{FFFFFF}Причина: {FFD700} Отсуствие парковочного места.\n\
{FFFFFF}Залог: {FFD700} 5000 руб.\n\
{CD5C5C}Настоятельно рекомендуем Вам приобрести парковочное место.", "Забрать", "Отмена");
else
SendClientMessage(playerid, COLOR_GREY, "{BEBEBE}[INFO] Вашего авто нет на ШС!");
}

Paradox
05.05.2019, 14:56
Замени:


if(PlayerInfo[playerid][cCarAr] == 1)



if(CarInfo[и здесь не playerid а ид машины должен быть!][cCarAr] == 1)

Andrik851
05.05.2019, 15:10
Замени:


if(PlayerInfo[playerid][cCarAr] == 1)



if(CarInfo[и здесь не playerid а ид машины должен быть!][cCarAr] == 1)


ну а как если я поставлю какой нибудь id машины то оно будет работать только для этой машины

verteich
05.05.2019, 16:51
GetPlayerVehicleID

Paradox
05.05.2019, 17:06
GetPlayerVehicleID
Именно, И тут ошибка тоже)


if(CarInfo[playerid][i][cCarId] == v)


Должно быть примерно так:


if(CarInfo[Ид машины][cCarId] == v)


P.S enum с cInfo, должен обрабатываться полностью по иду машины, и к игроку не должен иметь не какого отношения.

Andrik851
05.05.2019, 17:12
Именно, И тут ошибка тоже)


if(CarInfo[playerid][i][cCarId] == v)


Должно быть примерно так:


if(CarInfo[Ид машины][cCarId] == v)


P.S enum с cInfo, должен обрабатываться полностью по иду машины, и к игроку не должен иметь не какого отношения.

вообще тогда ошибку вызает


C:\Users\Генерал\Desktop\локальный сервер\gamemodes\mrpv1.pwn(36575) : error 076: syntax error in the expression, or invalid function call
Pawn compiler 3.10.8 Copyright (c) 1997-2006, ITB CompuPhase


1 Error.


- - - Добавлено - - -

рописал так как и сказали


if(CarInfo[GetPlayerVehicleID][cCarId] == v)

Paradox
05.05.2019, 21:51
вообще тогда ошибку вызает


C:\Users\Генерал\Desktop\локальный сервер\gamemodes\mrpv1.pwn(36575) : error 076: syntax error in the expression, or invalid function call
Pawn compiler 3.10.8 Copyright (c) 1997-2006, ITB CompuPhase


1 Error.


- - - Добавлено - - -

рописал так как и сказали


if(CarInfo[GetPlayerVehicleID][cCarId] == v)


Ты функцию читал?
GetPlayerVehicleID PLAYER, то есть должно быть так GetPlayerVehicleID(playerid)

Andrik851
06.05.2019, 09:18
Ты функцию читал?
GetPlayerVehicleID PLAYER, то есть должно быть так GetPlayerVehicleID(playerid)

короче не фига я ничего не понял я в этомновичек и только учусь

BENGO
06.05.2019, 21:24
Один не пойму зачем там перебор игроков?
Мне одному кажется, что там сплошная каша?


CMD:carar(playerid)
{
if(!PlayerInfo[playerid][pMember] == F_DPS)
return SendClientMessage(playerid,COLOR_GREY,"Вы не сотрудник ДПС.");
else if(!IsPlayerInRangeOfPoint(playerid, 5.0, 2394.0767,-1790.1770,21.8604))
return SendClientMessage(playerid,COLOR_GREY,"[Ошибка] Вы не находитесь у штрафстоянки.");

for(new veh; veh < MAX_VEHICLES; veh++) {

new Float:x, Float:y, Float:z;
GetVehiclePos(veh, x,y,z);
if(!IsPlayerInRangeOfPoint(playerid, 3.0, x,y,z)) continue;
if(CarInfo[GetVehicleID(veh)][cCarId] == veh) {

format(
totalstring,
500,
"{FFFFFF}Вы хотите отправить на штрафстоянку автомобиль {CD5C5C}%s{FFFFFF} с номерными знаками {1E90FF}%s{FFFFFF}?",VehicleNameS[GetVehicleModel(veh)-400], CarInfo[GetVehicleID(veh)][cNumber]);
ShowPlayerDialog(playerid,D_CAR+4,0,"{66CC00}Госавтоинспекция",totalstring,"Да","Нет");
SetPVarInt(playerid, "ArCars", veh);
//SetPVarInt(playerid, "PrCars", i); Так и не понял для чего тебе это PVar и как ты его использовал.
}
}
return true;
}

Andrik851
07.05.2019, 01:30
Один не пойму зачем там перебор игроков?
Мне одному кажется, что там сплошная каша?


CMD:carar(playerid)
{
if(!PlayerInfo[playerid][pMember] == F_DPS)
return SendClientMessage(playerid,COLOR_GREY,"Вы не сотрудник ДПС.");
else if(!IsPlayerInRangeOfPoint(playerid, 5.0, 2394.0767,-1790.1770,21.8604))
return SendClientMessage(playerid,COLOR_GREY,"[Ошибка] Вы не находитесь у штрафстоянки.");

for(new veh; veh < MAX_VEHICLES; veh++) {

new Float:x, Float:y, Float:z;
GetVehiclePos(veh, x,y,z);
if(!IsPlayerInRangeOfPoint(playerid, 3.0, x,y,z)) continue;
if(CarInfo[GetVehicleID(veh)][cCarId] == veh) {

format(
totalstring,
500,
"{FFFFFF}Вы хотите отправить на штрафстоянку автомобиль {CD5C5C}%s{FFFFFF} с номерными знаками {1E90FF}%s{FFFFFF}?",VehicleNameS[GetVehicleModel(veh)-400], CarInfo[GetVehicleID(veh)][cNumber]);
ShowPlayerDialog(playerid,D_CAR+4,0,"{66CC00}Госавтоинспекция",totalstring,"Да","Нет");
SetPVarInt(playerid, "ArCars", veh);
//SetPVarInt(playerid, "PrCars", i); Так и не понял для чего тебе это PVar и как ты его использовал.
}
}
return true;
}


после вшивания этой команды образовались ошибки


C:\Users\Ãåíåðàë\Desktop\ëîêàëüíûé ñåðâåð\gamemodes\mrpv1.pwn(36655) : warning 213: tag mismatch: expected tag none ("_"), but found "bool"
C:\Users\Ãåíåðàë\Desktop\ëîêàëüíûé ñåðâåð\gamemodes\mrpv1.pwn(36665) : error 017: undefined symbol "GetVehicleID"
C:\Users\Ãåíåðàë\Desktop\ëîêàëüíûé ñåðâåð\gamemodes\mrpv1.pwn(36667 -- 36670) : error 017: undefined symbol "GetVehicleID"
Pawn compiler 3.10.8 Copyright (c) 1997-2006, ITB CompuPhase


2 Errors.

BENGO
08.05.2019, 14:27
после вшивания этой команды образовались ошибки


C:\Users\Ãåíåðàë\Desktop\ëîêàëüíûé ñåðâåð\gamemodes\mrpv1.pwn(36655) : warning 213: tag mismatch: expected tag none ("_"), but found "bool"
C:\Users\Ãåíåðàë\Desktop\ëîêàëüíûé ñåðâåð\gamemodes\mrpv1.pwn(36665) : error 017: undefined symbol "GetVehicleID"
C:\Users\Ãåíåðàë\Desktop\ëîêàëüíûé ñåðâåð\gamemodes\mrpv1.pwn(36667 -- 36670) : error 017: undefined symbol "GetVehicleID"
Pawn compiler 3.10.8 Copyright (c) 1997-2006, ITB CompuPhase


2 Errors.


if(!PlayerInfo[playerid][pMember] == F_DPS)
Замени на:

if(PlayerInfo[playerid][pMember] != F_DPS)

Касаемо "GetVehicleID", думал у тебя уже прописана в моде так или как-то аналогично данная функция.
Она обозначает id загруженных тобой личных авто игроков, ведь не все же серверные т/c, можно будет ставить на штрафстоянку. Верно?
Напишешь данную функцию все будет работать и разберись с PVar'ми.