Текущая версия SA-MP: 0.3.7


IP: 77.220.180.96:7777
  Новые сообщения · Поиск
  • Страница 1 из 1
  • 1
Модератор форума: KaTacTpOqpa  
Регистрация
Parkan Сообщение # 1  | 12:16:31
Пользователи
Сообщений: 17
Репутация: 0
Остался последний не решенный вопрос!
Регистрация для сервера:
Есть FS.Думаю знаете.

Code
#include <a_samp>

#define FILTERSCRIPT

#if defined FILTERSCRIPT
#define COLOR_GREY 0xBEBEBEAA
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_GRAD5 0xE3E3E3FF
#define COLOR_GRAD1 0xB4B5B7FF

forward ShowStats(playerid,targetid);
forward OnPlayerUpdate(playerid);
forward Encrypt(string[]);
forward OnPlayerLogin(playerid,const string[]);

enum pInfo
{
    pPassword[128],
    pKills,
    pDeaths,
    pCash,
};

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

public OnFilterScriptInit()
{
    print("\n$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$");
    print(" Kevin433's Login/Register Filterscript");
    print("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n");
    return 1;
}

public OnFilterScriptExit()
{
    return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
    return 1;
}

public OnPlayerRequestSpawn(playerid)
{
    return 1;
}

public OnPlayerConnect(playerid)
{
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
       OnPlayerUpdate(playerid);
       gPlayerLogged[playerid] = 0;
    return 1;
}

public OnPlayerSpawn(playerid)
{
    return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
       new kills = PlayerInfo[playerid][pKills];
       SetPlayerScore(playerid, kills);
       new Float:Health;
       GetPlayerHealth(playerid, Health);
       if(Health == 0.0)
       {
       PlayerInfo[playerid][pDeaths] += 1;
       }
       GivePlayerMoney(killerid,2000);
       PlayerInfo[killerid][pKills] = PlayerInfo[killerid][pKills] + 1;
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
       new cmd[256];
       new idx;
       cmd = strtok(cmdtext, idx);
       new tmp[256];
       new playername[MAX_PLAYER_NAME];
       if (strcmp(cmd, "/login", true) ==0 )
    {
        if(IsPlayerConnected(playerid))
        {
            new tmppass[64];
      if(gPlayerLogged[playerid] == 1)
      {
       SendClientMessage(playerid, COLOR_GREY, "    You are already logged in.");
       return 1;
      }
      tmp = strtok(cmdtext, idx);
      if(!strlen(tmp))
      {
       SendClientMessage(playerid, COLOR_GREY, "    USAGE: /login [password]");
       return 1;
      }
      strmid(tmppass, tmp, 0, strlen(cmdtext), 255);
      Encrypt(tmppass);
      OnPlayerLogin(playerid,tmppass);
     }
     return 1;
    }
    if (strcmp(cmd, "/register", true)==0)
    {
     new string[265];
     tmp = strtok(cmdtext, idx);
     if(!strlen(tmp))
     {
      SendClientMessage(playerid, COLOR_GREY, "USAGE: /register [password]");
      return 1;
     }
     if (gPlayerAccount[playerid] == 1)
     {
      SendClientMessage(playerid, COLOR_GREY, "   That name is already registered");
      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.cer", playername);
     new File: file = fopen(string, io_read);
     if (file)
     {
      SendClientMessage(playerid, COLOR_GREY, "   That name is already registered");
      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\n",PlayerInfo[playerid][pKills]);fwrite(hFile, var);
           format(var, 32, "Deaths=%d\n",PlayerInfo[playerid][pDeaths]);fwrite(hFile, var);
           PlayerInfo[playerid][pCash] = GetPlayerMoney(playerid);
           format(var, 32, "Money=%d\n",PlayerInfo[playerid][pCash]);fwrite(hFile, var);
     fclose(hFile);
     SendClientMessage(playerid, COLOR_WHITE, "Succesfully Registered!");
     SendClientMessage(playerid, COLOR_WHITE, "Next time you connect, type /login <password> to log in.");
     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, "   You are not Logged in !");
      }
     }
     return 1;
    }
    return 0;
}

public Encrypt(string[])
{
    for(new x=0; x < strlen(string); x++)
      {
       string[x] += (3^x) * (x % 15);
       if(string[x] > (0xff))
       {
        string[x] -= 64;
       }
      }
    return 1;
}

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.cer", 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 ); }
                   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), "Welcome %s, you have been succesfully logged in!", pname3);
      SendClientMessage(playerid, COLOR_WHITE,string3);
     }
     else
     {
      SendClientMessage(playerid, COLOR_GREY, "    Password does not match your name");
      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.cer", 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\n",PlayerInfo[playerid][pKills]);fwrite(hFile, var);
       format(var, 32, "Deaths=%d\n",PlayerInfo[playerid][pDeaths]);fwrite(hFile, var);
       format(var, 32, "Money=%d\n",PlayerInfo[playerid][pCash]);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;
}

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++;
    }
    result[index - offset] = EOS;
    return result;
}

public ShowStats(playerid,targetid)
{
       if(IsPlayerConnected(playerid)&&IsPlayerConnected(targetid))
    {
     new cash =  GetPlayerMoney(targetid);
     new deaths = PlayerInfo[targetid][pDeaths];
     new kills = PlayerInfo[targetid][pKills];
     new name[MAX_PLAYER_NAME];
     GetPlayerName(targetid, name, sizeof(name));
     new Float:px,Float:py,Float:pz;
     GetPlayerPos(targetid, px, py, pz);
     new coordsstring[256];
     SendClientMessage(playerid, COLOR_GREEN,"_______________________________________");
     format(coordsstring, sizeof(coordsstring),"*** %s ***",name);
     SendClientMessage(playerid, COLOR_WHITE,coordsstring);
     format(coordsstring, sizeof(coordsstring), "Kills:[%d] Deaths:[%d] Cash:[$%d]",kills,deaths,cash);
     SendClientMessage(playerid, COLOR_GRAD5,coordsstring);
     SendClientMessage(playerid, COLOR_GREEN,"_______________________________________");
    }
}

#endif

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

За помощь буду рад, так как над этим делом я бьюс неделю и бесполезно.
И еще: другие скрипты предлагать если только очень схожи, так как мне рега нужна именно эта!

Добавлено (06.03.2011, 12:16)
---------------------------------------------
Что некто не в состоянии немного подредактировать?


Редактировано Parkan - Суббота, 05 Мар 2011, 21:35:12
BJIADOKC Сообщение # 2  | 10:44:30
Скриптеры
Сообщений: 601
Репутация: 161
Quote (Parkan)
Что некто не в состоянии немного подредактировать?

хм... тут старая рега, не в диалогах. лучше найди регу в диалогах, эта оч устаревшая...


тут больше не сижу... открыл свой проект


Редактировано BJIADOKC - Вторник, 08 Мар 2011, 11:11:15
Parkan Сообщение # 3  | 11:29:34
Пользователи
Сообщений: 17
Репутация: 0
Quote (BJIADOKC)
щя напишу... поготь

BJIADOKC, ты серьезно или как?

Добавлено (08.03.2011, 11:29)
---------------------------------------------

Quote (BJIADOKC)
хм... тут старая рега, не в диалогах. лучше найди регу в диалогах, эта оч устаревшая...

не мне именно такая нужна.
Demetrius Сообщение # 4  | 12:31:01
VIP-пользователи
Сообщений: 1192
Репутация: 158
Code
public OnPlayerConnect(playerid)
{
   if(gPlayerLogged[playerid] == 0)
{
Kick(playerid);
}
   return 1;
}

если не зарегится/залогинется будет кикать


Sweet >>> Armin >>> Demetrius

SA:MP >> MTA:SA >> IRL
Parkan Сообщение # 5  | 12:40:42
Пользователи
Сообщений: 17
Репутация: 0
Quote (Armin)
если не зарегится/залогинется будет кикать

Идея.. Но думаю игроку на сервер это не очень понравиться..
да и каждый не станет писать /register*/login
Мне бы обязательной, то есть в окно.
Demetrius Сообщение # 6  | 12:52:37
VIP-пользователи
Сообщений: 1192
Репутация: 158
Quote (Parkan)
Мне бы обязательной, то есть в окно.

хм...это долго, я могу переделать просто уроки пока делаю:D
а потом хз


Sweet >>> Armin >>> Demetrius

SA:MP >> MTA:SA >> IRL
BJIADOKC Сообщение # 7  | 13:16:18
Скриптеры
Сообщений: 601
Репутация: 161
Quote (Armin)
public OnPlayerConnect(playerid)
{
if(gPlayerLogged[playerid] == 0)
{
Kick(playerid);
}
return 1;
}

ты хоть понял че написал то? lol при коннекте если игрок не залогинен его сразу кикает biggrin
хотябы для приличия в спавн вписал biggrin biggrin


тут больше не сижу... открыл свой проект
Parkan Сообщение # 8  | 14:51:18
Пользователи
Сообщений: 17
Репутация: 0
Народ так подредактируйте немного плиз!
С меня++ тому кто сделает.

Добавлено (08.03.2011, 14:51)
---------------------------------------------
Но там же совсем немного строк.
Надо только вписать пару окон.
Но сам я не справляюс(

BJIADOKC Сообщение # 9  | 14:54:12
Скриптеры
Сообщений: 601
Репутация: 161
вот так... мб гдето ошибся... ну хз ушло 15 минут)
Code
#include <a_samp>

#define DIALOG_LOGIN 998   
#define DIALOG_REGISTER 999

#define COLOR_GREY 0xBEBEBEAA
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_GRAD5 0xE3E3E3FF
#define COLOR_GRAD1 0xB4B5B7FF

forward ShowStats(playerid,targetid);
forward OnPlayerUpdate(playerid);
forward Encrypt(string[]);
forward OnPlayerLogin(playerid,const string[]);
forward ShowPlayerRegisterDialog(playerid);
forward ShowPlayerLoginDialog(playerid);

enum pInfo
{
      pPassword[128],
      pKills,
      pDeaths,
      pCash,
};

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

public OnFilterScriptInit()
{
      print("\n$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$");
      print(" Kevin433's Login/Register Filterscript");
      print("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n");
      return 1;
}

public OnFilterScriptExit()
{
      return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
      return 1;
}

public OnPlayerRequestSpawn(playerid)
{
      return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_LOGIN) // диалог логина
      {
          if(!response) Kick(playerid);
          if(strlen(inputtext) == 0) return ShowPlayerLoginDialog(playerid);
          OnPlayerLogged(playerid, inputtext);
          return 1;
      }
   if(dialogid == DIALOG_REGISTER) // диалог регистрации
      {
          if(!response) Kick(playerid);
          if(strlen(inputtext) == 0) return ShowPlayerRegisterDialog(playerid);
          OnPlayerRegistered(playerid, inputtext);
          return 1;
      }
return 1;
}

public OnPlayerConnect(playerid)
{
new name[24], accstr[256];
GetPlayerName(playerid,name,24);
format(accstr,sizeof(accstr),"%s.cer",name);
      if(fexist(accstr))   
   {
          ShowPlayerLoginDialog(playerid);   
      }
   else
   {
     ShowPlayerRegisterDialog(playerid);
      }
      return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
         gPlayerLogged[playerid] = 0;
         gPlayerRegistered[playerid] = 0;
      return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
         new Float:Health;
         GetPlayerHealth(playerid, Health);
         if(Health == 0.0)
         {
         PlayerInfo[playerid][pDeaths] += 1;
         }
         GivePlayerMoney(killerid,2000);
         PlayerInfo[killerid][pKills] = PlayerInfo[killerid][pKills] + 1;
         SetPlayerScore(killerid,PlayerInfo[killerid][pKills]);
      return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
         new cmd[256];
         new idx;
         cmd = strtok(cmdtext, idx);
         new tmp[256];
         new playername[MAX_PLAYER_NAME];
         if (strcmp(cmd, "/login", true) ==0 )
      {
          if(IsPlayerConnected(playerid))
          {
              new tmppass[64];
        if(gPlayerLogged[playerid] == 1)
        {
         SendClientMessage(playerid, COLOR_GREY, "    You are already logged in.");
         return 1;
        }
        ShowPlayerLoginDialog(playerid);
       return 1;
      }
      if (strcmp(cmd, "/register", true)==0)
      {
       new string[265];
       tmp = strtok(cmdtext, idx);
       if(!strlen(tmp))
       {
        SendClientMessage(playerid, COLOR_GREY, "USAGE: /register [password]");
        return 1;
       }
       if (gPlayerAccount[playerid] == 1)
       {
        SendClientMessage(playerid, COLOR_GREY, "   That name is already registered");
        return 1;
       }
       ShowPlayerRegisterDialog(playerid);
       return 1;
      }
      if (strcmp(cmd, "/stats", true) == 0)
      {
          if(IsPlayerConnected(playerid))
          {
        if (gPlayerLogged[playerid] != 0)
        {
         ShowStats(playerid,playerid);
        }
        else
        {
         SendClientMessage(playerid, COLOR_GRAD1, "   You are not Logged in !");
        }
       }
       return 1;
      }
      return 0;
}

public Encrypt(string[])
{
      for(new x=0; x < strlen(string); x++)
        {
         string[x] += (3^x) * (x % 15);
         if(string[x] > (0xff))
         {
          string[x] -= 64;
         }
        }
      return 1;
}

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.cer", 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 ); }
                     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), "Welcome %s, you have been succesfully logged in!", pname3);
        SendClientMessage(playerid, COLOR_WHITE,string3);
       }
       else
       {
        SendClientMessage(playerid, COLOR_GREY, "    Password does not match your name");
        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.cer", 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\n",PlayerInfo[playerid][pKills]);fwrite(hFile, var);
         format(var, 32, "Deaths=%d\n",PlayerInfo[playerid][pDeaths]);fwrite(hFile, var);
         format(var, 32, "Money=%d\n",PlayerInfo[playerid][pCash]);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;
}

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++;
      }
      result[index - offset] = EOS;
      return result;
}

public ShowStats(playerid,targetid)
{
         if(IsPlayerConnected(playerid)&&IsPlayerConnected(targetid))
      {
       new cash =  GetPlayerMoney(targetid);
       new deaths = PlayerInfo[targetid][pDeaths];
       new kills = PlayerInfo[targetid][pKills];
       new name[MAX_PLAYER_NAME];
       GetPlayerName(targetid, name, sizeof(name));
       new Float:px,Float:py,Float:pz;
       GetPlayerPos(targetid, px, py, pz);
       new coordsstring[256];
       SendClientMessage(playerid, COLOR_GREEN,"_______________________________________");
       format(coordsstring, sizeof(coordsstring),"*** %s ***",name);
       SendClientMessage(playerid, COLOR_WHITE,coordsstring);
       format(coordsstring, sizeof(coordsstring), "Kills:[%d] Deaths:[%d] Cash:[$%d]",kills,deaths,cash);
       SendClientMessage(playerid, COLOR_GRAD5,coordsstring);
       SendClientMessage(playerid, COLOR_GREEN,"_______________________________________");
      }
}

public ShowPlayerRegisterDialog(playerid)   
{
   new mstring[256], name[24];
GetPlayerName(playerid,name,24);
   format(mstring,sizeof(mstring), "Регистрация:\n\nИмя вашей учётной записи - %s\n\nВнимание!: устанавливайте уникальный пароль (который ранее не использовали, возможны взломы)\n\nСовет: пароль должен быть сложный. Например: *7fgr*\n\nВведите свой будущий пароль:",name);
      ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Регистрация:", mstring, "Ок", "Выход");
   return 1;
}

public ShowPlayerLoginDialog(playerid)
{
    new lstring[256], name[24];
GetPlayerName(playerid,name,24);
   format(lstring,sizeof(lstring), "\n\nДобро пожаловать!\n\nМы рады Вас приветствовать на нашем сервере.\n\nВаша учётная запись - %s\n\nВведите пароль от учётной записи:",name);
      ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Авторизация:", lstring, "Ок", "Выход");       
   return 1;
}

тут все в диалоговых.


тут больше не сижу... открыл свой проект


Редактировано BJIADOKC - Вторник, 08 Мар 2011, 14:54:52
Parkan Сообщение # 10  | 18:16:54
Пользователи
Сообщений: 17
Репутация: 0
Вот что дает мне павно!

Ошибки :-( Пробовл убирать, еще хуже :-(

Добавлено (08.03.2011, 18:16)
---------------------------------------------
Может у кого нить есть завалявшиеся FS
с сохранением фрагов?

VERGIL Сообщение # 11  | 14:12:06
Пользователи
Сообщений: 82
Репутация: 28
Code
#include <a_samp>

#define MAX_STRING 255
#define MAX_NAME 40

#define COLOR_GREEN 0x33AA33AA
#define COLOR_LIGHTGREEN 0x9ACD32AA
#define COLOR_RED 0xAA3333AA
#define COLOR_LIGHTRED 0xFF6347AA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_BLUE 0x33AAFFAA

forward LoadDB(playerid);
forward SaveDB(playerid);

enum pInfo
{
  Name[40],
  Password[128],
  Date,
  Level,
  Money,
  Kills,
  Deaths,
  SkinModel,
  Admin,
}

new Warned[MAX_PLAYERS];
new PlayerAccount[MAX_PLAYERS];
new Mode_Account_db[MAX_STRING] = "Mode/Accounts/";

public OnPlayerConnect(playerid)
{
  new pname[40],str[256];
  GetPlayerName(playerid,pname,sizeof(pname));
  format(str,sizeof(str),"%s%s.txt",Mode_Account_db,pname);
  if(!fexist(str))
  {
      PlayerAccount[playerid] = 0;
  }
  else
  {
      PlayerAccount[playerid] = 1;
  }
  return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
     Warned[playerid] = 0;
  PlayerAccount[playerid] = 0;
  return 1;
}

public OnPlayerSpawn(playerid)
{
  new loginmsg[256+1],pname[40];
  GetPlayerName(playerid,pname,40);
  if(PlayerAccount[playerid] == 0)
  {
   format(loginmsg,256,"Добро пожаловать на сервер.\nЭтот ник %s не зарегистрирован. \nПожалуйста зарегистрируйтесь:",pname);
         ShowPlayerDialog(playerid,4,DIALOG_STYLE_INPUT,"~Пишите ваш пароль~",loginmsg,".::Регистрация::.",".::Отмена::.");
  }
  else
  {
   format(loginmsg,256,"Добро пожаловать на сервер\nЭтот ник %s зарегистрирован. \nАвторизуйтесь:",pname);
   ShowPlayerDialog(playerid,5,DIALOG_STYLE_INPUT,"~Залогиньтесь~",loginmsg,".::Логин::.",".::Отмена::.");
  }
  return 1;
}


радуйся теперь на спавне будет регистрация

Добавлено (30.06.2011, 14:12)
---------------------------------------------
да и окно не отстанет пока не зарегаешься


THIS IS POLCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAR!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
I your friend ;D
Demetrius Сообщение # 12  | 00:51:28
VIP-пользователи
Сообщений: 1192
Репутация: 158
Quote (VERGIL)
радуйся теперь на спавне будет регистрация

по-моему при коннекте будет лучше
при спавне на некоторых сервах (на универсале это очень заметно) спавнишься секунд за 5


Sweet >>> Armin >>> Demetrius

SA:MP >> MTA:SA >> IRL
VERGIL Сообщение # 13  | 19:32:43
Пользователи
Сообщений: 82
Репутация: 28
оно не отлезиться пока не зарегаешься

Добавлено (06.07.2011, 19:32)
---------------------------------------------
Ну можно тупо в public OnPlayerConnect () вставить


THIS IS POLCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAR!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
I your friend ;D
VIRUS8308 Сообщение # 14  | 10:39:16
Пользователи
Сообщений: 4
Репутация: 0
а у меня 2 такие ошибки error 017: undefined symbol "ShowPlayerDialog"
что сделать? confused
BJIADOKC Сообщение # 15  | 12:29:38
Скриптеры
Сообщений: 601
Репутация: 161
Quote (VIRUS8308)
а у меня 2 такие ошибки error 017: undefined symbol "ShowPlayerDialog"
что сделать? confused

скачай новый сервер с офф. сайта http://team.sa-mp.com/files/samp03csvr_R2-2_win32.zip - Прямая ссылка, бамс
распакуй
открой папку pawno/includes
скопируй все инклуды из папки и вставь в папку includes павно, с которого ты работаешь (с заменой естестна)
перезагрузи павно и радуйся скриптингу


тут больше не сижу... открыл свой проект
FAMAS Сообщение # 16  | 12:30:40
Фанат Владокса :D
Скриптеры
Сообщений: 84
Репутация: 44
BJIADOKC,
[off]ухахах сука, ушел он biggrin
VIRUS8308 Сообщение # 17  | 16:08:21
Пользователи
Сообщений: 4
Репутация: 0
у меня текстуры не загружаються.... я выбираю скин появляеться окно регистрации вокруг всё серое ввожу пароль жму зарегаться ничего не происходит вокруг всё остаёться серым


Редактировано VIRUS8308 - Четверг, 11 Авг 2011, 19:50:56
  • Страница 1 из 1
  • 1
Поиск: