- ВойтиАвторизация через uNet
- РегистрацияРегистрация на сайте через uNet
Текущая версия SA-MP: 0.3.7
IP: 77.220.180.96:7777
Новые сообщения · Поиск |
|
|
Модератор форума: KaTacTpOqpa |
Форум Помощь по скриптингу SA-MP Вопросы по скриптингу Регистрация (Загляните на минуту.) |
Регистрация | ||||
|
BJIADOKC | Сообщение # 2 | 10:44:30 08 Мар 2011 |
Скриптеры
Сообщений: 601
Репутация: 161
|
Quote (Parkan) Что некто не в состоянии немного подредактировать? хм... тут старая рега, не в диалогах. лучше найди регу в диалогах, эта оч устаревшая... тут больше не сижу... открыл свой проект Редактировано BJIADOKC - Вторник, 08 Мар 2011, 11:11:15 |
Parkan | Сообщение # 3 | 11:29:34 08 Мар 2011 |
Пользователи
Сообщений: 17
Репутация: 0
|
Quote (BJIADOKC) щя напишу... поготь BJIADOKC, ты серьезно или как? Добавлено (08.03.2011, 11:29) Quote (BJIADOKC) хм... тут старая рега, не в диалогах. лучше найди регу в диалогах, эта оч устаревшая... не мне именно такая нужна. |
Demetrius | Сообщение # 4 | 12:31:01 08 Мар 2011 |
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 08 Мар 2011 |
Пользователи
Сообщений: 17
Репутация: 0
|
Quote (Armin) если не зарегится/залогинется будет кикать Идея.. Но думаю игроку на сервер это не очень понравиться.. да и каждый не станет писать /register*/login Мне бы обязательной, то есть в окно. |
Demetrius | Сообщение # 6 | 12:52:37 08 Мар 2011 |
VIP-пользователи
Сообщений: 1192
Репутация: 158
|
Quote (Parkan) Мне бы обязательной, то есть в окно. хм...это долго, я могу переделать просто уроки пока делаю:D а потом хз Sweet >>> Armin >>> Demetrius SA:MP >> MTA:SA >> IRL |
BJIADOKC | Сообщение # 7 | 13:16:18 08 Мар 2011 |
Скриптеры
Сообщений: 601
Репутация: 161
|
Quote (Armin) public OnPlayerConnect(playerid) { if(gPlayerLogged[playerid] == 0) { Kick(playerid); } return 1; } ты хоть понял че написал то? при коннекте если игрок не залогинен его сразу кикает хотябы для приличия в спавн вписал тут больше не сижу... открыл свой проект |
Parkan | Сообщение # 8 | 14:51:18 08 Мар 2011 |
Пользователи
Сообщений: 17
Репутация: 0
|
Народ так подредактируйте немного плиз! С меня++ тому кто сделает. Добавлено (08.03.2011, 14:51) |
BJIADOKC | Сообщение # 9 | 14:54:12 08 Мар 2011 |
Скриптеры
Сообщений: 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 08 Мар 2011 |
Пользователи
Сообщений: 17
Репутация: 0
|
Вот что дает мне павно! Ошибки :-( Пробовл убирать, еще хуже :-( Добавлено (08.03.2011, 18:16) |
VERGIL | Сообщение # 11 | 14:12:06 30 Июн 2011 |
Пользователи
Сообщений: 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 01 Июл 2011 |
VIP-пользователи
Сообщений: 1192
Репутация: 158
|
Quote (VERGIL) радуйся теперь на спавне будет регистрация по-моему при коннекте будет лучше при спавне на некоторых сервах (на универсале это очень заметно) спавнишься секунд за 5 Sweet >>> Armin >>> Demetrius SA:MP >> MTA:SA >> IRL |
VERGIL | Сообщение # 13 | 19:32:43 06 Июл 2011 |
Пользователи
Сообщений: 82
Репутация: 28
|
оно не отлезиться пока не зарегаешься Добавлено (06.07.2011, 19:32) THIS IS POLCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAR!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! I your friend ;D |
VIRUS8308 | Сообщение # 14 | 10:39:16 10 Авг 2011 |
Пользователи
Сообщений: 4
Репутация: 0
|
а у меня 2 такие ошибки error 017: undefined symbol "ShowPlayerDialog" что сделать? |
BJIADOKC | Сообщение # 15 | 12:29:38 10 Авг 2011 |
Скриптеры
Сообщений: 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 10 Авг 2011 |
Фанат Владокса :D
Скриптеры
Сообщений: 84
Репутация: 44
|
BJIADOKC, [off]ухахах сука, ушел он |
VIRUS8308 | Сообщение # 17 | 16:08:21 11 Авг 2011 |
Пользователи
Сообщений: 4
Репутация: 0
|
у меня текстуры не загружаються.... я выбираю скин появляеться окно регистрации вокруг всё серое ввожу пароль жму зарегаться ничего не происходит вокруг всё остаёться серым
Редактировано VIRUS8308 - Четверг, 11 Авг 2011, 19:50:56 |
| |||
| |||