• Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: dr40  
как реализовать
SeryogaPlusДата: Воскресенье, 24.06.2012, 13:53 | Сообщение # 1
.::Offline::.
Разбойник
Сообщений: 39
[ 0 ]
Награды: 0

Статус отсутствует
Добрый день сново я biggrin
Вчера целый вечер мучался с реализацией простой команды /stats, без окон а в чате что бы выводилась простенькая статистика и всё таки сделал (могу выложить)
Тут с утра решил протестить что да как и дошла одна вещь самая последня что я пока хочу сделать.

1. Как реализовать что бы файл данных игрока (сохранения) грузились когда он входит на сервер. Я у себя менях файл данных зашёл всё по нулям wacko
2. Как сделать когдя я убиваю мне дают +1 убийство и деньги допустим 5000, а у того кого я убил -1 в смерти и -1000 денег например и что бы это всё сохранялось
3. Как сделать что бы это всё сохранялось? и после выходы и захода вся стата загружалась ? wacko

Что то наверное много вопросов задал sad

Желательно на пример я ещё со слов очень плохо понимаю.
Если нужны куски мода или сам пишите дам посмеяться biggrin


Сообщение отредактировал SeryogaPlus - Воскресенье, 24.06.2012, 13:57
 
[S]ilverbac[k]Дата: Воскресенье, 24.06.2012, 14:56 | Сообщение # 2
.::Offline::.
Пахан
Сообщений: 723
[ 86 ]
Награды: 17

Статус отсутствует
какой инклуд ты используеш(Dini, mxINI, ...)?


[FS]Neon[APP]FCP[APP]Vehicle Tuning Generator ||||| 20% -- Работа приостановленаОбложка:
 
ZioHikДата: Воскресенье, 24.06.2012, 15:08 | Сообщение # 3
.::Offline::.
http://u.to/N46EAw
Сообщений: 831
[ 82 ]
Награды: 29

Статус отсутствует
2.Делай переменную потом в паблике OnPlayerDeath для killerid эту переменную ++ а для того кого убил playerid -- переменную и GivePlayerMoney(playerid,-1000);
3.Подгляди в моде godfather итд там есть паблики update login и register

Добавлено (24.06.2012, 14:08)
---------------------------------------------
Например:

Code
  
PlayerInfo[killerid][pKills] ++;
PlayerInfo[playerid][pKills] --;
GivePlayerMoney(playerid,-1000);  
GivePlayerMoney(killerid,1000);  
 
SeryogaPlusДата: Воскресенье, 24.06.2012, 15:19 | Сообщение # 4
.::Offline::.
Разбойник
Сообщений: 39
[ 0 ]
Награды: 0

Статус отсутствует
mxINI
 
SeryogaPlusДата: Воскресенье, 24.06.2012, 15:30 | Сообщение # 5
.::Offline::.
Разбойник
Сообщений: 39
[ 0 ]
Награды: 0

Статус отсутствует
Code
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
  if(dialogid == 1)// Ид диалога Для Логина
  {
      if(response)// Если игрок нажал первую кнопку входа
      {
    if(!strlen(inputtext))// Если окно ввода пустое, выводим диалог снова
       {
           ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Окно Входа","Здравствуйте\nВаш аккаунт есть на сервере\nВведите свой пароль в окошко","Ввод","");// Показываем диалог входа в игру.
           return 1;
       }
          new pass[64];// Масив с паролем
          strmid(pass,inputtext,0,strlen(inputtext),64);// Считываем текст с диалога
       OnPlayerLogin(playerid,pass);// Запускаем паблик входа
      }
      else// Если игрок нажал Esc, вернём ему диалог
      {
          ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Окно Входа","Здравствуйте\nВаш аккаунт есть на сервере\nВведите свой пароль в окошко","Ввод","");// Показываем диалог входа в игру.
      }
  }
  if(dialogid == 2)// Ид диалога для регистрации
  {
      if(response)// Если игрок нажал первую кнопку  
      {
          if(!strlen(inputtext))// Если окно ввода пустое, выводим диалог снова
       {
                 ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Окно Регистрации","Здравствуйте\nВаш аккаунт не найден.\nЗарегистрируйтесь введя пароль в окошко","Ввод","");// Показываем диалог регистрации.
           return 1;
       }
           new pass[64];// Масив с паролем
       strmid(pass,inputtext,0,strlen(inputtext),64);// Считываем текст с диалога
       OnPlayerRegister(playerid,pass);// Запускаем паблик регистрации
      }
      else// Если игрок нажал Esc, вернём ему диалог
      {
             ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Окно Регистрации","Здравствуйте\nВаш аккаунт не найден.\nЗарегистрируйтесь введя пароль в окошко","Ввод","");// Показываем диалог регистрации.
      }
  }
  return 1;
}
 
[S]ilverbac[k]Дата: Воскресенье, 24.06.2012, 15:31 | Сообщение # 6
.::Offline::.
Пахан
Сообщений: 723
[ 86 ]
Награды: 17

Статус отсутствует
Кинь public OnPlayerLogin


[FS]Neon[APP]FCP[APP]Vehicle Tuning Generator ||||| 20% -- Работа приостановленаОбложка:
 
SeryogaPlusДата: Воскресенье, 24.06.2012, 15:33 | Сообщение # 7
.::Offline::.
Разбойник
Сообщений: 39
[ 0 ]
Награды: 0

Статус отсутствует
А вот весь если что
Code
#include <a_samp>
#include <mxINI>
//------------------------------------------------------------------------------
forward ShowStats(playerid, targetid);
//------------------------------------------------------------------------------
#define COLOR_GREEN 0x33AA33AA
#define COLOR_ORANGE 0xFF9900AA
//-----------------
new PAccount[MAX_PLAYERS];// Есть аккаунт, или нет

enum pInfo
{
  pPass[64],
     pAdmin,
  pCash,
  pKills,
  pDeaths,
}
new Player[MAX_PLAYERS][pInfo];
//-------------------------------[РАНДОМНЫЙ ЦВЕТ ИГРОКОВ]-----------------------
new playerColors[200] = {0xFF8C13FF,0xC715FFFF,0x20B2AAFF,0xDC143CFF,0x6495EDFF,0xf0e68cFF,0x778899FF,
0xEE82EEFF,0xFFD720FF,0x8b4513FF,0x4949A0FF,0x148b8bFF,0x14ff7fFF,0x556b2fFF,0x0FD9FAFF,0x10DC29FF,
0x534081FF,0x0495CDFF,0xEF6CE8FF,0xBD34DAFF,0x247C1BFF,0x0C8E5DFF,0x635B03FF,0xCB7ED3FF,0x65ADEBFF,
0x5C1ACCFF,0xF2F853FF,0x11F891FF,0x7B39AAFF,0x53EB10FF,0x54137DFF,0x275222FF,0xF09F5BFF,0x3D0A4FFF,
0x22F767FF,0xD63034FF,0x9A6980FF,0xDFB935FF,0x3793FAFF,0x90239DFF,0xE9AB2FFF,0xAF2FF3FF,0x057F94FF,
0xB98519FF,0x388EEAFF,0x028151FF,0xA55043FF,0x0DE018FF,0x93AB1CFF,0x95BAF0FF,0x369976FF,0x18F71FFF,
0x4B8987FF,0x491B9EFF,0x829DC7FF,0xBCE635FF,0xCEA6DFFF,0x20D4ADFF,0x2D74FDFF,0x3C1C0DFF,0x12D6D4FF,
0x48C000FF,0x2A51E2FF,0xE3AC12FF,0xFC42A8FF,0x2FC827FF,0x1A30BFFF,0xB740C2FF,0x42ACF5FF,0x2FD9DEFF,
0xFAFB71FF,0x05D1CDFF,0xC471BDFF,0x94436EFF,0xC1F7ECFF,0xCE79EEFF,0xBD1EF2FF,0x93B7E4FF,0x3214AAFF,
0x184D3BFF,0xAE4B99FF,0x7E49D7FF,0x4C436EFF,0xFA24CCFF,0xCE76BEFF,0xA04E0AFF,0x9F945CFF,0xDCDE3DFF,
0x10C9C5FF,0x70524DFF,0x0BE472FF,0x8A2CD7FF,0x6152C2FF,0xCF72A9FF,0xE59338FF,0xEEDC2DFF,0xD8C762FF,
0xD8C762FF,0xFF8C13FF,0xC715FFFF,0x20B2AAFF,0xDC143CFF,0x6495EDFF,0xf0e68cFF,0x778899FF,0xFF1493FF,
0xF4A460FF,0xEE82EEFF,0xFFD720FF,0x8b4513FF,0x4949A0FF,0x148b8bFF,0x14ff7fFF,0x556b2fFF,0x0FD9FAFF,
0x10DC29FF,0x534081FF,0x0495CDFF,0xEF6CE8FF,0xBD34DAFF,0x247C1BFF,0x0C8E5DFF,0x635B03FF,0xCB7ED3FF,
0x65ADEBFF,0x5C1ACCFF,0xF2F853FF,0x11F891FF,0x7B39AAFF,0x53EB10FF,0x54137DFF,0x275222FF,0xF09F5BFF,
0x3D0A4FFF,0x22F767FF,0xD63034FF,0x9A6980FF,0xDFB935FF,0x3793FAFF,0x90239DFF,0xE9AB2FFF,0xAF2FF3FF,
0x057F94FF,0xB98519FF,0x388EEAFF,0x028151FF,0xA55043FF,0x0DE018FF,0x93AB1CFF,0x95BAF0FF,0x369976FF,
0x18F71FFF,0x4B8987FF,0x491B9EFF,0x829DC7FF,0xBCE635FF,0xCEA6DFFF,0x20D4ADFF,0x2D74FDFF,0x3C1C0DFF,
0x12D6D4FF,0x48C000FF,0x2A51E2FF,0xE3AC12FF,0xFC42A8FF,0x2FC827FF,0x1A30BFFF,0xB740C2FF,0x42ACF5FF,
0x2FD9DEFF,0xFAFB71FF,0x05D1CDFF,0xC471BDFF,0x94436EFF,0xC1F7ECFF,0xCE79EEFF,0xBD1EF2FF,0x93B7E4FF,
0x3214AAFF,0x184D3BFF,0xAE4B99FF,0x7E49D7FF,0x4C436EFF,0xFA24CCFF,0xCE76BEFF,0xA04E0AFF,0x9F945CFF,
0xDCDE3DFF,0x10C9C5FF,0x70524DFF,0x0BE472FF,0x8A2CD7FF,0x6152C2FF,0xCF72A9FF,0xE59338FF,0xEEDC2DFF,
0xD8C762FF,0xD8C762FF,0xFF1493FF,0xF4A460FF};
//------------------------------------------------------------------------------
public OnGameModeInit()
{
     DisableInteriorEnterExits();//Убирает все маркеры от сингла что есть
  SetGameModeText("[RU]");
  AddPlayerClass(5, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  return 1;
}

main()
{
  print("\n----------------------------------");
  print("[RU]");
  print("----------------------------------\n");
}

public OnGameModeExit()
{
  return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
  SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  return 1;
}

public OnPlayerConnect(playerid)
{
     SetPlayerColor(playerid,playerColors[random(sizeof(playerColors))]);//Выдача рандомного цвета игрокам
     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;// Аккаунт есть
     }
     else// Если файла с именем нет, то выполняется это действие.
     {
     PAccount[playerid] = 0;// Аккаунта нет
     }
     if(PAccount[playerid] == 1)// Если аккаунт есть
     {
     ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Окно Входа","Здравствуйте\nВаш аккаунт есть на сервере\nВведите свой пароль в окошко","Ввод","");// Показываем диалог входа в игру. Стиль диалога выставляем на ввод текста.
     }
     else// Если аккаунта нет
     {
     ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Окно Регистрации","Здравствуйте\nВаш аккаунт не найден.\nЗарегистрируйтесь введя пароль в окошко","Ввод","");// Показываем диалог регистрации. Стиль диалога выставляем на ввод текста.
     }
     return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
     SavePlayer(playerid);
  return 1;
}

public OnPlayerSpawn(playerid)
{
  return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
  return 1;
}

public OnVehicleSpawn(vehicleid)
{
  return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{
  return 1;
}

public OnPlayerText(playerid, text[])
{
  return 1;
}
//------------------------------[КОМАНДЫ]---------------------------------------
public OnPlayerCommandText(playerid, cmdtext[])
{
     new cmd[256];
//-------------------------------[/STATS]---------------------------------------
     if(!strcmp(cmd, "/stats", true) && IsPlayerConnected(playerid)) return ShowStats(playerid,playerid);
     return 0;
}
//------------------------------------------------------------------------------
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
  return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
  return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
  return 1;
}

public OnPlayerEnterCheckpoint(playerid)
{
  return 1;
}

public OnPlayerLeaveCheckpoint(playerid)
{
  return 1;
}

public OnPlayerEnterRaceCheckpoint(playerid)
{
  return 1;
}

public OnPlayerLeaveRaceCheckpoint(playerid)
{
  return 1;
}

public OnRconCommand(cmd[])
{
  return 1;
}

public OnPlayerRequestSpawn(playerid)
{
  return 1;
}

public OnObjectMoved(objectid)
{
  return 1;
}

public OnPlayerObjectMoved(playerid, objectid)
{
  return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
  return 1;
}

public OnVehicleMod(playerid, vehicleid, componentid)
{
  return 1;
}

public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
  return 1;
}

public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
  return 1;
}

public OnPlayerSelectedMenuRow(playerid, row)
{
  return 1;
}

public OnPlayerExitedMenu(playerid)
{
  return 1;
}

public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
  return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
  return 1;
}

public OnRconLoginAttempt(ip[], password[], success)
{
  return 1;
}

public OnPlayerUpdate(playerid)
{
  return 1;
}

public OnPlayerStreamIn(playerid, forplayerid)
{
  return 1;
}

public OnPlayerStreamOut(playerid, forplayerid)
{
  return 1;
}

public OnVehicleStreamIn(vehicleid, forplayerid)
{
  return 1;
}

public OnVehicleStreamOut(vehicleid, forplayerid)
{
  return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
  if(dialogid == 1)// Ид диалога Для Логина
  {
      if(response)// Если игрок нажал первую кнопку входа
      {
    if(!strlen(inputtext))// Если окно ввода пустое, выводим диалог снова
       {
           ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Окно Входа","Здравствуйте\nВаш аккаунт есть на сервере\nВведите свой пароль в окошко","Ввод","");// Показываем диалог входа в игру.
           return 1;
       }
          new pass[64];// Масив с паролем
          strmid(pass,inputtext,0,strlen(inputtext),64);// Считываем текст с диалога
       OnPlayerLogin(playerid,pass);// Запускаем паблик входа
      }
      else// Если игрок нажал Esc, вернём ему диалог
      {
          ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Окно Входа","Здравствуйте\nВаш аккаунт есть на сервере\nВведите свой пароль в окошко","Ввод","");// Показываем диалог входа в игру.
      }
  }
  if(dialogid == 2)// Ид диалога для регистрации
  {
      if(response)// Если игрок нажал первую кнопку  
      {
          if(!strlen(inputtext))// Если окно ввода пустое, выводим диалог снова
       {
                 ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Окно Регистрации","Здравствуйте\nВаш аккаунт не найден.\nЗарегистрируйтесь введя пароль в окошко","Ввод","");// Показываем диалог регистрации.
           return 1;
       }
           new pass[64];// Масив с паролем
       strmid(pass,inputtext,0,strlen(inputtext),64);// Считываем текст с диалога
       OnPlayerRegister(playerid,pass);// Запускаем паблик регистрации
      }
      else// Если игрок нажал Esc, вернём ему диалог
      {
             ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Окно Регистрации","Здравствуйте\nВаш аккаунт не найден.\nЗарегистрируйтесь введя пароль в окошко","Ввод","");// Показываем диалог регистрации.
      }
  }
  return 1;
}

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
  return 1;
}

stock SavePlayer(playerid)
{
     new string[64];// Масив с путём для файла
  new playername[MAX_PLAYER_NAME];// Масив для получения имени игрока
  GetPlayerName(playerid, playername, sizeof(playername));// Получаем Имя игрока
  format(string, sizeof(string), "players/%s.ini", playername);// Добавляем имя игрока, в путь для сохранения
  new iniFile = ini_openFile(string);// Открываем файл по тому пути который указали.
  ini_setString(iniFile,"Pass",Player[playerid][pPass]);// Записываем пароль игрока в файл
  ini_setInteger(iniFile,"Admin",Player[playerid][pAdmin]);// Записываем админ уровень в файл
  ini_setInteger(iniFile,"Cash",Player[playerid][pCash]);// Записываем колличество денег к файл
  ini_setInteger(iniFile,"Kills",Player[playerid][pKills]);// Запиаем коллсывичество убийст к файл
  ini_setInteger(iniFile,"Deaths",Player[playerid][pDeaths]);// Запиаем коллсывичество смертей в файл
  ini_closeFile(iniFile);// Закрываем файл
}

forward OnPlayerRegister(playerid, password[]);
public OnPlayerRegister(playerid, password[])// Паблик регистрации
{
  if(IsPlayerConnected(playerid))// Проверка на подключение игрока
  {
      new string[64];// Масив с путём для файла
   new playername[MAX_PLAYER_NAME];// Масив для получения имени игрока
   GetPlayerName(playerid, playername, sizeof(playername));// Получаем Имя игрока
   format(string,sizeof(string), "players/%s.ini", playername);// Добавляем имя игрока, в путь для сохранения
   new iniFile = ini_createFile(string);// Создаём файл с именем игрока в папке players
   if(iniFile < 0)// Если Файла нет
   {
    iniFile = ini_openFile(string);// Открываем
   }
   if(iniFile >= 0)// Если файл есть
   {
    strmid(Player[playerid][pPass],password,0,strlen(password),255);// Присваиваем масиву pPass, значение password[]
    ini_setString(iniFile,"Pass",Player[playerid][pPass]);// Записываем пароль игрока в файл
    ini_closeFile(iniFile);// Закрываем файл
    ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Окно Входа","Здравствуйте\nВаш аккаунт есть на сервере\nВведите свой пароль в окошко","Ввод","");// Показываем диалог входа в игру.
   }
  }
  return 1;
}

forward OnPlayerLogin(playerid,password[]);
public OnPlayerLogin(playerid,password[])
{
  if(IsPlayerConnected(playerid))// Проверка на подключение игрока
  {
       new string[64];// Масив с путём для файла
       new pass[64];// Масив с паролем
   new playername[MAX_PLAYER_NAME];// Масив для получения имени игрока
   GetPlayerName(playerid, playername, sizeof(playername));// Получаем Имя игрока
   format(string,sizeof(string), "players/%s.ini", playername);// Добавляем имя игрока, в путь для загрузки
   new iniFile = ini_openFile(string);// Открываем файл
     ini_getString(iniFile,"Pass",pass,64);// Загружаем пароль
      if(strcmp(pass,password,true) == 0)// Если введёный пароль, соответсвует паролю при регистрации, то загружаем акк
      {
        ini_getString(iniFile,"Pass",Player[playerid][pPass],64);// Загружаем пароль
        ini_getInteger(iniFile,"Admin",Player[playerid][pAdmin]);// Загружаем админ уровень
        ini_getInteger(iniFile,"Cash",Player[playerid][pCash]);// Загружаем кол-во денег
        ini_getInteger(iniFile,"Kills",Player[playerid][pKills]);// Загружаем кол-во убийств
        ini_getInteger(iniFile,"Deaths",Player[playerid][pDeaths]);// Загружаем кол-во смертей
        ini_closeFile(iniFile);// Закрываем файл
      }
   else// Если пароль не верен..
   {
       ini_closeFile(iniFile);// Закрываем файл
       ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Окно Входа","Здравствуйте\nВаш аккаунт есть на сервере\nВведите свой пароль в окошко","Ввод","");// Показываем диалог входа в игру.
       return 1;
   }
   SendClientMessage(playerid,0xFF00000,"Добро пожаловать на наш сервер");// Выводим игрок сообщение
   SpawnPlayer(playerid);// Спавним игрока
  }
  return 1;
}

public ShowStats(playerid,targetid) // /stats и всё что с ним связано
{
     if(IsPlayerConnected(playerid)&&IsPlayerConnected(targetid))
  {
      new coordsstring[256];
   new kills = Player[playerid][pKills];
   new deaths = Player[playerid][pDeaths];
   new cash = Player[playerid][pCash];
   new name[MAX_PLAYER_NAME];
   format(coordsstring, sizeof(coordsstring),"{DB1111}---------------------------[Сататистика]---------------------------",name);
   SendClientMessage(playerid, COLOR_GREEN,coordsstring);
   format(coordsstring, sizeof(coordsstring), "{ffffff}Убийства:{DB1111}[%d] {ffffff}Cмерти:{DB1111}[%d] {ffffff}Деньги:{DB1111}[%d]",kills,deaths,cash);
   SendClientMessage(playerid, COLOR_GREEN,coordsstring);
   if(Player[playerid][pAdmin] == 1)
   {
     SendClientMessage(playerid,COLOR_ORANGE,"{db1111}Вы модератор {ffffff}[TDM] Сервера");
     SendClientMessage(playerid,COLOR_ORANGE,"{DB1111}----------------------------------------------------------------------");
     return 1;
   }
   else if(Player[playerid][pAdmin] == 2)
   {
     SendClientMessage(playerid,COLOR_ORANGE,"{db1111}Вы администратор {ffffff}[TDM] Сервера");
     SendClientMessage(playerid,COLOR_ORANGE,"{DB1111}----------------------------------------------------------------------");
     return 1;
   }
  }
  return 1;
}

Добавлено (24.06.2012, 14:33)
---------------------------------------------

Code
forward OnPlayerLogin(playerid,password[]);
public OnPlayerLogin(playerid,password[])
{
  if(IsPlayerConnected(playerid))// Проверка на подключение игрока
  {
       new string[64];// Масив с путём для файла
       new pass[64];// Масив с паролем
   new playername[MAX_PLAYER_NAME];// Масив для получения имени игрока
   GetPlayerName(playerid, playername, sizeof(playername));// Получаем Имя игрока
   format(string,sizeof(string), "players/%s.ini", playername);// Добавляем имя игрока, в путь для загрузки
   new iniFile = ini_openFile(string);// Открываем файл
     ini_getString(iniFile,"Pass",pass,64);// Загружаем пароль
      if(strcmp(pass,password,true) == 0)// Если введёный пароль, соответсвует паролю при регистрации, то загружаем акк
      {
        ini_getString(iniFile,"Pass",Player[playerid][pPass],64);// Загружаем пароль
        ini_getInteger(iniFile,"Admin",Player[playerid][pAdmin]);// Загружаем админ уровень
        ini_getInteger(iniFile,"Cash",Player[playerid][pCash]);// Загружаем кол-во денег
        ini_getInteger(iniFile,"Kills",Player[playerid][pKills]);// Загружаем кол-во убийств
        ini_getInteger(iniFile,"Deaths",Player[playerid][pDeaths]);// Загружаем кол-во смертей
        ini_closeFile(iniFile);// Закрываем файл
      }
   else// Если пароль не верен..
   {
       ini_closeFile(iniFile);// Закрываем файл
       ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Окно Входа","Здравствуйте\nВаш аккаунт есть на сервере\nВведите свой пароль в окошко","Ввод","");// Показываем диалог входа в игру.
       return 1;
   }
   SendClientMessage(playerid,0xFF00000,"Добро пожаловать на наш сервер");// Выводим игрок сообщение
   SpawnPlayer(playerid);// Спавним игрока
  }
  return 1;
}
 
[S]ilverbac[k]Дата: Воскресенье, 24.06.2012, 15:41 | Сообщение # 8
.::Offline::.
Пахан
Сообщений: 723
[ 86 ]
Награды: 17

Статус отсутствует
Замени весь паблик OnPlayerLogin на это:

Code
forward OnPlayerLogin(playerid,password[]);
  public OnPlayerLogin(playerid,password[])
  {
   if(IsPlayerConnected(playerid))// Ïðîâåðêà íà ïîäêëþ÷åíèå èãðîêà
   {
        new string[64];// Ìàñèâ ñ ïóò¸ì äëÿ ôàéëà
        new pass[64];// Ìàñèâ ñ ïàðîëåì
    new playername[MAX_PLAYER_NAME];// Ìàñèâ äëÿ ïîëó÷åíèÿ èìåíè èãðîêà
    GetPlayerName(playerid, playername, sizeof(playername));// Ïîëó÷àåì Èìÿ èãðîêà
    format(string,sizeof(string), "players/%s.ini", playername);// Äîáàâëÿåì èìÿ èãðîêà, â ïóòü äëÿ çàãðóçêè
    new iniFile = ini_openFile(string);// Îòêðûâàåì ôàéë
      ini_getString(iniFile,"Pass",pass,64);// Çàãðóæàåì ïàðîëü
       if(strcmp(pass,password,true) == 0)// Åñëè ââåä¸íûé ïàðîëü, ñîîòâåòñâóåò ïàðîëþ ïðè ðåãèñòðàöèè, òî çàãðóæàåì àêê
       {
         ini_getString(iniFile,"Pass",Player[playerid][pPass],64);// Çàãðóæàåì ïàðîëü
         Player[playerid][pAdmin] = ini_getInteger(iniFile,"Admin",Player[playerid][pAdmin]);// Çàãðóæàåì àäìèí óðîâåíü
         Player[playerid][pCash] = ini_getInteger(iniFile,"Cash",Player[playerid][pCash]);// Çàãðóæàåì êîë-âî äåíåã
         Player[playerid][pKills] = ini_getInteger(iniFile,"Kills",Player[playerid][pKills]);// Çàãðóæàåì êîë-âî óáèéñòâ
         Player[playerid][pDeaths] = ini_getInteger(iniFile,"Deaths",Player[playerid][pDeaths]);// Çàãðóæàåì êîë-âî ñìåðòåé
         SetPlayerScore(playerid,Player[playerid][pKills]);
         GivePlayerMoney(playerid,Player[playerid][pCash]);
         ini_closeFile(iniFile);// Çàêðûâàåì ôàéë
       }
    else// Åñëè ïàðîëü íå âåðåí..
    {
        ini_closeFile(iniFile);// Çàêðûâàåì ôàéë
        ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Îêíî Âõîäà","Çäðàâñòâóéòå\nÂàø àêêàóíò åñòü íà ñåðâåðå\nÂâåäèòå ñâîé ïàðîëü â îêîøêî","Ââîä","");// Ïîêàçûâàåì äèàëîã âõîäà â èãðó.
        return 1;
    }
    SendClientMessage(playerid,0xFF00000,"Äîáðî ïîæàëîâàòü íà íàø ñåðâåð");// Âûâîäèì èãðîê ñîîáùåíèå
    SpawnPlayer(playerid);// Ñïàâíèì èãðîêà
   }
   return 1;
  }

Добавлено (24.06.2012, 14:41)
---------------------------------------------
Не обращай внимание на иероглифы



[FS]Neon[APP]FCP[APP]Vehicle Tuning Generator ||||| 20% -- Работа приостановленаОбложка:
 
SeryogaPlusДата: Воскресенье, 24.06.2012, 15:43 | Сообщение # 9
.::Offline::.
Разбойник
Сообщений: 39
[ 0 ]
Награды: 0

Статус отсутствует
C:\Documents and Settings\Администратор\Рабочий стол\[RU]\gamemodes\new.pwn(377) : warning 217: loose indentation

вот тут какую то ошибку выдаёт

SendClientMessage(playerid,0xFF00000,"Aia?i ii?aeiaaou ia iao na?aa?");// Auaiaei ea?ie niiauaiea


Сообщение отредактировал SeryogaPlus - Воскресенье, 24.06.2012, 15:45
 
ZioHikДата: Воскресенье, 24.06.2012, 15:45 | Сообщение # 10
.::Offline::.
http://u.to/N46EAw
Сообщений: 831
[ 82 ]
Награды: 29

Статус отсутствует
#pragma tabsize 0 в начало мода после инклудов
 
SeryogaPlusДата: Воскресенье, 24.06.2012, 15:48 | Сообщение # 11
.::Offline::.
Разбойник
Сообщений: 39
[ 0 ]
Награды: 0

Статус отсутствует
Всё ошибок нет щас протестю

Добавлено (24.06.2012, 14:48)
---------------------------------------------
хм зарегался и вот такая штука
Pass = 12345
Admin = -9
Cash = -9
Kills = -9
Deaths = -9
везде -9 выдало

 
ZioHikДата: Воскресенье, 24.06.2012, 15:56 | Сообщение # 12
.::Offline::.
http://u.to/N46EAw
Сообщений: 831
[ 82 ]
Награды: 29

Статус отсутствует
При реге 0 выстави
 
SeryogaPlusДата: Воскресенье, 24.06.2012, 15:57 | Сообщение # 13
.::Offline::.
Разбойник
Сообщений: 39
[ 0 ]
Награды: 0

Статус отсутствует
Quote (ZioHik)
При реге 0 выстави

где ?
 
[S]ilverbac[k]Дата: Воскресенье, 24.06.2012, 16:21 | Сообщение # 14
.::Offline::.
Пахан
Сообщений: 723
[ 86 ]
Награды: 17

Статус отсутствует
Замени public OnPlayerRegister на этот

Code
forward OnPlayerRegister(playerid, password[]);
public OnPlayerRegister(playerid, password[])// Паблик регистрации
{
if(IsPlayerConnected(playerid))// Проверка на подключение игрока
{
new string[64];// Масив с путём для файла
new playername[MAX_PLAYER_NAME];// Масив для получения имени игрока
GetPlayerName(playerid, playername, sizeof(playername));// Получаем Имя игрока
format(string,sizeof(string), "players/%s.ini", playername);// Добавляем имя игрока, в путь для сохранения
new iniFile = ini_createFile(string);// Создаём файл с именем игрока в папке players
if(iniFile < 0)// Если Файла нет
{
iniFile = ini_openFile(string);// Открываем
}
if(iniFile >= 0)// Если файл есть
{
strmid(Player[playerid][pPass],password,0,strlen(password),255);// Присваиваем масиву pPass, значение password[]
ini_setString(iniFile,"Pass",Player[playerid][pPass]);// Записываем пароль игрока в файл
ini_setInteger(iniFile,"Admin",0);// Загружаем админ уровень
ini_setInteger(iniFile,"Cash",1000);// Загружаем кол-во денег
ini_setInteger(iniFile,"Kills",0);// Загружаем кол-во убийств
ini_setInteger(iniFile,"Deaths",0);// Загружаем кол-во смертей
ini_closeFile(iniFile);// Закрываем файл
ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Окно Входа","Здравствуйте\nВаш аккаунт есть на сервере\nВведите свой пароль в окошко","Ввод","");// Показываем диалог входа в игру.
}
}
return 1;
}


[FS]Neon[APP]FCP[APP]Vehicle Tuning Generator ||||| 20% -- Работа приостановленаОбложка:
 
SeryogaPlusДата: Воскресенье, 24.06.2012, 16:27 | Сообщение # 15
.::Offline::.
Разбойник
Сообщений: 39
[ 0 ]
Награды: 0

Статус отсутствует
всё работает
как я понял
ini_setInteger(iniFile,"Cash",1000);// Загружаем кол-во денег
Выдаёт 1000 после регистрации в теории, а на деле не даёт biggrin
 
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:


Copyright www.SAMP-TEAM.com (c) 2009-2024
Правила использования материалов сайта

При копировании материалов из нашего сайта
ссылка на www.SAMP-TEAM.com обязательна!
Нарушители правил будут строго наказаны!

Хостинг от uCoz   
Для корректного просмотра мы рекомендуем Вам использовать браузер Google Chrome.
Яндекс.Метрика
Яндекс.Метрика