error 033: array must be indexed (variable "cmd")
Немного "устал", потратив 3 часа на простенькую ошибку, которая по-любому решается за несколько секунд, если знать, в чем проблема. Раз я не решил ее, значит не понял, в чем проблема.
Полное название ошибки: C:\Games\Test.pwn(176) : error 033: array must be indexed (variable "cmd")
Код: Открыть/закрыть
Код:
strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
index++;
}
new offset = index;
new result[20];
while((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
}
...
... Код
...
new bool:IsCarSpawnCar = false;
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[32], idx;
(176) cmd = strtok(cmdtext, idx);
if(IsPlayerInAnyVehicle(playerid))
{
return 1;
}
else if(IsPlayerAdmin(playerid))
{
print("Admin!!!");
return 1;
}
else
{
if(!strcmp(cmdtext, "/spawn", true))
{
SpawnPlayer(playerid);
return 1;
}
if (!strcmp(cmd, "/spawncar", true))
{
IsCarSpawnCar = true;
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
CreateVehicle(idx, x, y + 5, z, 0.0, WHITE, WHITE, 0);
return 1;
}
}
if(!strcmp(cmdtext, "&moneycheat", true))
{
return 1;
}
return -1;
}
Как понятно из кода, я решил делать команды по дефолту без командных процессоров через OnPlayerCommandText. В общем, хочу научиться так для начала, а потом пересесть на софт по-лучше(а может и свой написать). Делаю не важно какую команду, в ней важно то, что она принимает cmdtext и в нем есть id, который нужно изъять, и это нужно слинковать с strcmp. Я знаю очень маленькое кол-во функций. У меня практически нет знаний. Если не сможете помочь, то посоветуйте ресурсы для новичка. Гуглить я умею, уже прочитал учебник ProPawn, значение автовызываемых функций и другую информацию и даже сел за PawnBook 5, НО из-за долгой нагрузки на мой мозг, он отключился и не хочет думать. Знаю, что лучше сам бы справился, но я не хочу тратить на это неделю, а затем выгореть и вообще перестать программировать(было такое). Лучше я обосрусь и сдамся, чем вообще навсегда проиграю. И вообще хотелось бы перелопатить все функции и написать свою strcmp или strval и подобные им, а может свой DC_CMD(догадываюсь, почему постоянно надо писать CMD: Это ведь тэг, да? Как Float: или bool:. Это через тэг работает. Как вообще тэг работает, что это такое? А как комплилятор pawnсс работает?). Интересно... Но слишком уж много у меня хочух в голове, и я недостаточно умен(сейчас) для этого, и даже не написал простенький DM мод, поэтому скиньте ресурсы, кто может, готов все перечитать и следовать всем рекомендациям. А пока мне нужно разобраться... с этой ошибкой.