05:20
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
          





Рекомендуем:





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
[GM] The Big PEN1:LS v2.00 ... 04.12.2017
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
  • Страница 1 из 1
  • 1
Модератор форума: AXE, Weddew  
Сохранение оружий при выходе
WintMaxДата: Четверг, 22.05.2008, 11:20 | Сообщение # 1
Местный
Группа: Продвинутые
Сообщений: 562
Награды: 2
Город: Ростов-на-Дону
Репутация: 67
Замечания: 0%
Статус:
Вот такой вопрос. Предположим, игрок зарегестрировался. Купил в аммунации оружие. Оно не сохранилось. А если он купит через меню пушки, то они сохранятся при респе и перезаходе. Такое возможно реализовать? (Знаю, что возможно, во Freerom'e было такое). И как это сделать? С меня +.
kiril94Дата: Четверг, 22.05.2008, 11:32 | Сообщение # 2
Освоившийся
Группа: Продвинутые
Сообщений: 128
Награды: 2
Город: VLN
Репутация: 6
Замечания: 20%
Статус:
j bi tozebe hotel znat )))) i smenj + esli pamogut ))
3dgamerДата: Четверг, 22.05.2008, 18:58 | Сообщение # 3
Постоялец
Группа: Продвинутые
Сообщений: 314
Награды: 1
Репутация: 15
Замечания: 20%
Статус:
ага_я_тоже_создавал_такую_тему_про_респаун_оружее_но_она_ушла_в_оф_топ!Вот_надеюсь_теперь_дадут_кодик_нам=)





Мои работги:
[FS]Mobile 99%(Потерял павн в поисках)
[GM]The_Eternal_City0.2 15%
[GM]Testing_mode0.1 100% Скачать
OKStyle™Дата: Пятница, 23.05.2008, 08:14 | Сообщение # 4
Мастер джэдай
Группа: I'm V.I.P.
Сообщений: 2444
Награды: 16
Город: Оренбург
Репутация: 1174
Замечания: 40%
Статус:
Создавай параметр в реге, отвечающий за оружие. А потом при спавне (после смерти) или при логине они будут восстанавливаться.


Да потому что когда человек делает на заказ он не старается. © kRiSyo
Кланяимся нофаму королю анимаций =))))))) © Manusya
В MTA - для вас все багоюзеры. Не юзают там +с только EFO и ACF. © SeWeR
WintMaxДата: Пятница, 23.05.2008, 15:15 | Сообщение # 5
Местный
Группа: Продвинутые
Сообщений: 562
Награды: 2
Город: Ростов-на-Дону
Репутация: 67
Замечания: 0%
Статус:
Вот, предположим, моя регистрация:
Code
enum pInfo
{
  pPassword[128],
  pKills,
  pDeaths,
  pCash,
  pWeap,//Это я добавил...
};

Code
new gActivePlayers[MAX_PLAYERS];
new PlayerInfo[MAX_PLAYERS][pInfo];
new gPlayerLogged[MAX_PLAYERS];
new gPlayerAccount[MAX_PLAYERS];

Code
   if (strcmp(cmd, "/login", true) ==0 )
  {
      if(IsPlayerConnected(playerid))
      {
          new tmppass[64];
    if(gPlayerLogged[playerid] == 1)
    {
     SendClientMessage(playerid, COLOR_GREY, "* Вы уже вошли!");
     return 1;
    }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
     SendClientMessage(playerid, COLOR_GREY, "* Использовать: /login [пароль]");
     return 1;
    }
    strmid(tmppass, tmp, 0, strlen(cmdtext), 255);
    Encrypt(tmppass);
    OnPlayerLogin(playerid,tmppass);
   }
   return 1;
  }
  if (strcmp(cmd, "/register", true)==0)
  {
   tmp = strtok(cmdtext, idx);
   if(!strlen(tmp))
   {
    SendClientMessage(playerid, COLOR_GREY, "* Использовать: /register [пароль]");
    return 1;
   }
   if (gPlayerAccount[playerid] == 1)
   {
    SendClientMessage(playerid, COLOR_GREY, "* Этот аккаунт уже зарегистрирован!");
    return 1;
   }

   strmid(PlayerInfo[playerid][pPassword], tmp, 0, strlen(cmdtext), 255);
   Encrypt(PlayerInfo[playerid][pPassword]);
   GetPlayerName(playerid, playername, sizeof(playername));
   format(string, sizeof(string), "%s", playername);
   new File: file = fopen(string, io_read);
   if (file)
   {
    SendClientMessage(playerid, COLOR_GREY, "* Этот аккаунт уже зарегистрирован!");
    fclose(file);
    return 1;
   }
   new File:hFile;
   hFile = fopen(string, io_append);
   new var[32];//
         format(var, 32, "%s\n", PlayerInfo[playerid][pPassword]);fwrite(hFile, var);
         format(var, 32, "Kills=%d\r\n",PlayerInfo[playerid][pKills]);fwrite(hFile, var);
         format(var, 32, "Deaths=%d\r\n",PlayerInfo[playerid][pDeaths]);fwrite(hFile, var);
         PlayerInfo[playerid][pCash] = GetPlayerMoney(playerid);
         format(var, 32, "Money=%d\r\n",PlayerInfo[playerid][pCash]);fwrite(hFile, var);
         format(var, 32, "Weapons=%d\r\n",PlayerInfo[playerid][pWeap]);fwrite(hFile, var);// Добавил 1
         PlayerInfo[playerid][pWeap] = GetPlayerWeapon(playerid); // Добавил 2
   fclose(hFile);
   SendClientMessage(playerid, COLOR_WHITE, "* Ваша регистрация окончена! Теперь ваши фраги будут сохраняться!");
   SendClientMessage(playerid, COLOR_WHITE, "* В следущий раз при входе в игру вводите /login <пароль> чтобы залогиться.");
   OnPlayerLogin(playerid,PlayerInfo[playerid][pPassword]);
   return 1;
  }
  if (strcmp(cmd, "/stats", true) == 0)
  {
      if(IsPlayerConnected(playerid))
      {
    if (gPlayerLogged[playerid] != 0)
    {
     ShowStats(playerid,playerid);
    }
    else
    {
     SendClientMessage(playerid, COLOR_GRAD1, "* Вы не вошли!");
    }
   }
   return 1;
  }


Ну и там куча функций, в которые я добавил строчку с оружием. А вот что писать при спавне?

Добавлено (23.05.2008, 15:15)
---------------------------------------------

Code
public OnPlayerLogin(playerid,const string[])
{
     new pname2[MAX_PLAYER_NAME];
  new pname3[MAX_PLAYER_NAME];
  new string2[64];
  new string3[128];
  GetPlayerName(playerid, pname2, sizeof(pname2));
  format(string2, sizeof(string2), "%s", pname2);
  new File: UserFile = fopen(string2, io_read);

  if (UserFile)
  {
   new valtmp[128];
   fread(UserFile, valtmp);strmid(PlayerInfo[playerid][pPassword], valtmp, 0, strlen(valtmp)-1, 255);

   if ((strcmp(PlayerInfo[playerid][pPassword], string, true, strlen(valtmp)-1) == 0))
   {
    new key[128],val[128];
     new Data[128];
     while(fread(UserFile,Data,sizeof(Data)))
    {
     key = ini_GetKey(Data);
                 if( strcmp( key , "Kills" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pKills] = strval( val ); }
                 if( strcmp( key , "Deaths" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pDeaths] = strval( val ); }
                 if( strcmp( key , "Money" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pCash] = strval( val ); }
                 if( strcmp( key , "Weapons" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pWeap] = strval( val ); }
                 ResetPlayerMoney(playerid);
     GivePlayerMoney(playerid,PlayerInfo[playerid][pCash]);
    }
    fclose(UserFile);
    gPlayerLogged[playerid] = 1;
    gPlayerAccount[playerid] = 1;
       new kills = PlayerInfo[playerid][pKills];
             SetPlayerScore(playerid, kills);
    GetPlayerName(playerid, pname3, sizeof(pname3));
    format(string3, sizeof(string3), "* %s, ты удачно вошел!", pname3);
    SendClientMessage(playerid, COLOR_GREEN,string3);
   }
   else
   {
    SendClientMessage(playerid, COLOR_GREY, "* Неправильный пароль");
    fclose(UserFile);
   }
  }
  return 1;
}

public OnPlayerUpdate(playerid)
{
  if(IsPlayerConnected(playerid))
  {
   if(gPlayerLogged[playerid])
   {
    new string3[32];
    new pname3[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pname3, sizeof(pname3));
    format(string3, sizeof(string3), "%s", pname3);
    new File: pFile = fopen(string3, io_write);
    if (pFile)
    {
     new var[32];
     format(var, 32, "%s\n", PlayerInfo[playerid][pPassword]);fwrite(pFile, var);
     fclose(pFile);
     new File: hFile = fopen(string3, io_append);
     PlayerInfo[playerid][pCash] = GetPlayerMoney(playerid);
     format(var, 32, "Kills=%d\r\n",PlayerInfo[playerid][pKills]);fwrite(hFile, var);
     format(var, 32, "Deaths=%d\r\n",PlayerInfo[playerid][pDeaths]);fwrite(hFile, var);
     format(var, 32, "Money=%d\r\n",PlayerInfo[playerid][pCash]);fwrite(hFile, var);
     format(var, 32, "Weapons=%d\r\n",PlayerInfo[playerid][pWeap]);fwrite(hFile, var);     
     fclose(hFile);
    }
   }
  }
  return 1;
}

stock ini_GetKey( line[] )
{
  new keyRes[128];
  keyRes[0] = 0;
     if ( strfind( line , "=" , true ) == -1 ) return keyRes;
     strmid( keyRes , line , 0 , strfind( line , "=" , true ) , sizeof( keyRes) );
     return keyRes;
}

stock ini_GetValue( line[] )
{
  new valRes[128];
  valRes[0]=0;
  if ( strfind( line , "=" , true ) == -1 ) return valRes;
  strmid( valRes , line , strfind( line , "=" , true )+1 , strlen( line ) , sizeof( valRes ) );
  return valRes;
}

Вот функции.

AlekseyДата: Пятница, 23.05.2008, 15:39 | Сообщение # 6
Советчик
Группа: Продвинутые
Сообщений: 1028
Награды: 5
Город: Челябинск
Репутация: 41
Замечания: 0%
Статус:
ну а где расшифровка что такое веапонс?


вааааааааааййй..// :(0
WintMaxДата: Суббота, 24.05.2008, 15:35 | Сообщение # 7
Местный
Группа: Продвинутые
Сообщений: 562
Награды: 2
Город: Ростов-на-Дону
Репутация: 67
Замечания: 0%
Статус:
Это по-русски говоря оружия. Если ты не знал :) Или ты про скрипт?

Добавлено (24.05.2008, 15:35)
---------------------------------------------
Ну и? Никто чтоли не поможет?

  • Страница 1 из 1
  • 1
Поиск:





 


 


 
Хостинг от uCoz samp.at.ua