PDA

Просмотр полной версии : [Вопрос] Срочно помогите



#Jason
22.10.2015, 15:56
Код ошибки:
error 079: inconsistent return types (array & non-array)


stock в котором находится ошибка

stock MaskPN(playerid)
{
new unknown[24] = "Неизвестно";
if(!MaskHit[playerid])
{
return PlayerInfo[playerid][pNames]; // выше указанная ошибка, находится на этой строке.
}
return unknown;
}


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

Desulaid
22.10.2015, 16:00
Есть только два вопроса к вам:

Что это за функция? Если функция псевдо костыля к GetPlayerName, то зачем?
Хотите возвратить массив? :russian_roulette:

NewGreen
22.10.2015, 16:20
Попробуйте так:



stock MaskPN(playerid)
{
new unknown[24] = "Неизвестно";
if(!MaskHit[playerid])
{
new name_string[MAX_PLAYER_NAME+1];
format(name_string, sizeof(name_string),"%s", PlayerInfo[playerid][pNames]);
return name_string;
}
return unknown;
}

Daniel_Cortez
22.10.2015, 17:21
SetPlayerName(playerid,"Неизвестно");
Проверяли, что будет, если попытаться установить 2 и более игрокам один и тот же ник?

NewGreen
22.10.2015, 18:17
Проверяли, что будет, если попытаться установить 2 и более игрокам один и тот же ник?
Забросил самп давно) и начал подзабывать подобные нюансы, спасибо что поправили, переделаю пожалуй функцию топикстартера))

#Jason
23.10.2015, 01:03
Не стал парится и исправлять, раз начали помогите до конца =)

Вместо старый ошибки выходит новая


error 047: array sizes do not match, or destination array is too small

На этой строке ошибка


return unknown;

Геннадий Акимов
23.10.2015, 09:52
может return 1; попробуешь за место return unknown; - Я не скриптер ну может поможет ! ))

NewGreen
23.10.2015, 10:40
Не стал парится и исправлять, раз начали помогите до конца =)

Вместо старый ошибки выходит новая


error 047: array sizes do not match, or destination array is too small

На этой строке ошибка


return unknown;


stock MaskPN(playerid)
{
new unknown[MAX_PLAYER_NAME+1] = "Неизвестно";
if(!MaskHit[playerid])
{
new name_string[MAX_PLAYER_NAME+1];
format(name_string, sizeof(name_string),"%s", PlayerInfo[playerid][pNames]);
return name_string;
}
return unknown;
}

#Jason
23.10.2015, 13:22
Все спасибо помог.

Unreal
23.10.2015, 13:28
покажу свой вариант тебе


format(string, sizeof(string), "%s поздаровался(-ась)",(!HitMask{playerid}) ? PN(playerid) : ("Незнакомец"));
SetPlayerChatBubble(playerid,string,COLOR_PURPLE,30.0,10000);

#Jason
23.10.2015, 16:26
покажу свой вариант тебе


format(string, sizeof(string), "%s поздаровался(-ась)",(!HitMask{playerid}) ? PN(playerid) : ("Незнакомец"));
SetPlayerChatBubble(playerid,string,COLOR_PURPLE,30.0,10000);

Так не удобно.

Unreal
23.10.2015, 19:25
Так не удобно.



stock MaskPN(playerid)
{
new unknown[MAX_PLAYER_NAME+1] = "Неизвестно";
if(!MaskHit[playerid])
{
new name_string[MAX_PLAYER_NAME+1];
format(name_string, sizeof(name_string),"%s", PlayerInfo[playerid][pNames]);
return name_string;
}
return unknown;
}

а так удобно значит?

[ForD]
23.10.2015, 21:31
Так не удобно.

не удобно это когда х%р в 5 точке,остальное терпимо или поправимо

$continue$
24.10.2015, 11:52
а так удобно значит?

Тернарный оператор построен не логично, в первом условии:

? PN(playerid)
Будет возвращаться значение из PN(playerid), может вернуться и unknown ("Неизвестно") по сути fail (http://lurkmore.co/Fail) использовать тут тернарный оператор.

UPD: Перепутал "PN" и "MaskPN", вот что значит называть переменные от жопы.

Unreal
24.10.2015, 13:45
Тернарный оператор построен не логично, в первом условии:

? PN(playerid)
Будет возвращаться значение из PN(playerid), может вернуться и unknown ("Неизвестно") по сути fail (http://lurkmore.co/Fail) использовать тут тернарный оператор.

UPD: Перепутал "PN" и "MaskPN", вот что, значит называть переменные от жопы.

Если вы подумали что PN это функция которая возвращает ник игрока (return name;) то нет
это просто PN макрос/define PlayerName
если хотите можно и так

format(string, sizeof(string), "%s поздаровался(-ась)",(!HitMask{playerid}) ? PlayerName[playerid] : ("Незнакомец"));

Giffka
08.12.2015, 21:41
может return 1; попробуешь за место return unknown; - Я не скриптер ну может поможет ! ))
Странноватое высказывание...