Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!: Ошибка при компилировании - Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

[ Error ]
Ошибка при компилировании Помогите

#1
Пользователь офлайн   Danik38 

  • Прохожий
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Вот здесь ошибка в return 1;

public OnPlayerConnect(playerid)
{
new playername[MAX_PLAYER_NAME];// Massiv for player name
new string[128];// way to folder with name player
GetPlayerName(playerid,playername,sizeof(playername));// know name player
format(string,sizeof(string),"players/%s.ini", playername);// path to file with account
if(fexist(string))// Check for file if it is there then carry out the following action.
{
PAccount[playerid] = 1;// Account have
}
else// if on file, if he have it the action is
PAccount[playerid] = 0;// Account don't have
}
return 1;
}

Код ошибки: E:\Games\Original Role Play\gamemodes\O-RP.pwn(59) : error 010: invalid function or declaration
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase


1 Error.

Помогите как можно скорее! ЗАРАНЕЕ СПАСИБО!
0

#2
Пользователь офлайн   Long- 

  • Местный
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
public OnPlayerConnect(playerid)
{
      new playername[MAX_PLAYER_NAME];
      new string[128];
      GetPlayerName(playerid,playername,sizeof(playername));
      format(string,sizeof(string),"players/%s.ini", playername);
      if(fexist(string))
           PAccount[playerid] = 1;// Account have
      else
      {
           PAccount[playerid] = 0;// Account don't have
           return 1;
      }
}

0

#3
Пользователь офлайн   MuhammadPawn 

  • Местный
  • Вставить ник
  • Цитировать
  • Раскрыть информацию

Просмотр сообщенияLong- (12 Октябрь 2017 - 17:32) писал:

public OnPlayerConnect(playerid)
{
      new playername[MAX_PLAYER_NAME];
      new string[128];
      GetPlayerName(playerid,playername,sizeof(playername));
      format(string,sizeof(string),"players/%s.ini", playername);
      if(fexist(string))
           PAccount[playerid] = 1;// Account have
      else
      {
           PAccount[playerid] = 0;// Account don't have
           return 1;
      }
}


и чё ты тут сделал?

ну кароче как-то так
public OnPlayerConnect(playerid)
{
    static const file[] = "players/%s.ini";
    new string[(sizeof file + MAX_PLAYER_NAME) / 4 + 1];
    format(string,sizeof(string), string, Name(players));
    if(fexist(string)) PAccount[playerid] = 1;
    else PAccount[playerid] = 0;
    return 1;
}
Name(playerid)
{
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof name);
    return name;
}


Сообщение отредактировал MuhammadPawn: 12 Октябрь 2017 - 17:53

0

#4
Пользователь офлайн   SooBad 

  • I'm a part of the troubles
  • Вставить ник
  • Цитировать
  • Раскрыть информацию

Просмотр сообщенияMuhammadPawn (12 Октябрь 2017 - 17:48) писал:

и чё ты тут сделал?


А что тебе не нравится в его варианте? Ты свой код видел? Он далеко не ушёл.
Ради такого крохотного количества символов объявлять константу для дальнейшего юза автоподсчёта?
Объявлять массив, в котором, непонятно зачем, мы уменьшаем кол-во требуемых ячеек в четыре раза?
Создать отдельную функцию для определения никнейма? WTF?

public OnPlayerConnect(playerid) {

    new 
       name[MAX_PLAYER_NAME-2],
       string[13+MAX_PLAYER_NAME-1];

    GetPlayerName(playerid, name, sizeof name);

    strcat(string, "players/");
    strcat(string, name);
    strcat(string, ".ini");

    PAccount[playerid] = ((fexist(string)) ? (1) : (0));

    return 1;
}

Сообщение отредактировал SooBad: 12 Октябрь 2017 - 18:35

0

#5
Пользователь офлайн   MuhammadPawn 

  • Местный
  • Вставить ник
  • Цитировать
  • Раскрыть информацию

Просмотр сообщенияSooBad (12 Октябрь 2017 - 18:24) писал:

А что тебе не нравится в его варианте? Ты свой код видел? Он далеко не ушёл.
Ради такого крохотного количества символов объявлять константу для дальнейшего юза автоподсчёта?
Объявлять массив, в котором, непонятно зачем, мы уменьшаем кол-во требуемых ячеек в четыре раза?
Создать отдельную функцию для определения никнейма? WTF?

public OnPlayerConnect(playerid) {

    new 
       name[MAX_PLAYER_NAME-2],
       string[13+MAX_PLAYER_NAME-1];

    GetPlayerName(playerid, name, sizeof name);

    strcat(string, "players/");
    strcat(string, name);
    strcat(string, ".ini");

    PAccount[playerid] = ((fexist(string)) ? (1) : (0));

    return 1;
}



я про то что он return 1; унёс в скобки
нащёт своего кода знаю не ахти но всё ж

Сообщение отредактировал MuhammadPawn: 13 Октябрь 2017 - 02:06

0

#6
Пользователь офлайн   SooBad 

  • I'm a part of the troubles
  • Вставить ник
  • Цитировать
  • Раскрыть информацию

Просмотр сообщенияMuhammadPawn (13 Октябрь 2017 - 02:05) писал:

я про то что он return 1; унёс в скобки
нащёт своего кода знаю не ахти но всё ж

Так зачем ПОЛНОСТЬЮ переиначивать чужой вариант, только ухудшая производительность кода?
0

#7
Пользователь офлайн   Long- 

  • Местный
  • Вставить ник
  • Цитировать
  • Раскрыть информацию

Просмотр сообщенияMuhammadPawn (12 Октябрь 2017 - 17:48) писал:

и чё ты тут сделал?

ну кароче как-то так
public OnPlayerConnect(playerid)
{
    static const file[] = "players/%s.ini";
    new string[(sizeof file + MAX_PLAYER_NAME) / 4 + 1];
    format(string,sizeof(string), string, Name(players));
    if(fexist(string)) PAccount[playerid] = 1;
    else PAccount[playerid] = 0;
    return 1;
}
Name(playerid)
{
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof name);
    return name;
}




Добавил скобку там где ее не было, и тем самым вызывало ошибку?
Он ясно пояснил ошибку, посмотрев его код, видно что он пропустил скобку.
Или вы видите у него в сообщение : "Оптимизируйте мне пожалуйста код"!?

Цитата

if(fexist(string))
{
PAccount[playerid] = 1;
}
else
PAccount[playerid] = 0;
}


Так я правильно пояснил вам где в его коде ошибка?
А вот вы код реально перевернули и опустили на дно, без обид)

Просмотр сообщенияSooBad (12 Октябрь 2017 - 18:24) писал:

А что тебе не нравится в его варианте? Ты свой код видел? Он далеко не ушёл.
Ради такого крохотного количества символов объявлять константу для дальнейшего юза автоподсчёта?
Объявлять массив, в котором, непонятно зачем, мы уменьшаем кол-во требуемых ячеек в четыре раза?
Создать отдельную функцию для определения никнейма? WTF?

public OnPlayerConnect(playerid) {

    new 
       name[MAX_PLAYER_NAME-2],
       string[13+MAX_PLAYER_NAME-1];

    GetPlayerName(playerid, name, sizeof name);

    strcat(string, "players/");
    strcat(string, name);
    strcat(string, ".ini");

    PAccount[playerid] = ((fexist(string)) ? (1) : (0));

    return 1;
}



Да не, в моем сообщение не было намека на оптимизация, да и не собирался я его как то оптимизировать этот код)
Я просто лишь исправил ошибку в коде автора не более.
А вообще таких людей стоит просто игнорировать, автор бы сам вставил код и проверил :)

Сообщение отредактировал Long-: 13 Октябрь 2017 - 21:30

1

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей