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

 



 
          





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





Последние Файлы 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  
Проблема с регой в моде
_BigSm0ke_Дата: Среда, 31.03.2010, 22:50 | Сообщение # 1
Местный
Группа: I'm V.I.P.
Сообщений: 674
Награды: 5
Город: Москва
Репутация: 127
Замечания: 0%
Статус:
Когда начал делать мод, долго думал что всетаки сделать с регой, ну кароче решил частично выдернуть из гф\cream life .... вроде все получилось, если не одно НО:

Когда я регаюсь первый раз и логинюсь - норм все спаунит, а когда я уже когда зареганный захожу на серв и хочу залогиниться, то нечего не происходит и если просто жму шифт то спаунит за сиджея...хотя должно кикать если не авторизованным зашел... а это присутствует в скрипте... вобщем вот выкладываю в двух вариантах:

Вариант I:

Ссылка для скачивания pwn

Вариант II:

Скрипт тут:

[pwn]

// This is a comment
// uncomment the line below if you want to write a filterscript
//#define FILTERSCRIPT

#include <a_samp>

#define COLOR_WHITE 0xFFFFFFFF
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_RED 0xAA3333AA
#define COLOR_LIGHTRED 0xFF6347AA
#define COLOR_LIGHTBLUE 0x33CCFFAA
#define COLOR_LIGHTGREEN 0x9ACD32AA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_YELLOW2 0xFFFF00AA

forward ini_GetKey( line[] );
forward ini_GetValue( line[] );
forward OnPlayerLogin(playerid,password[]);
forward Encrypt(string[]);
forward OnPlayerRegister(playerid, password[]);
forward SavePlayer(playerid);
forward SetPlayerSpawn(playerid);

new Account[MAX_PLAYERS];
new LoginON[MAX_PLAYERS];
new ActivePlayers[MAX_PLAYERS];
new LoginTry[MAX_PLAYERS];
new RegStep[MAX_PLAYERS];

//==================================//

enum pInfo
{
pKey[128],
pSex,
pAge,
pTut,
pModel,
};

new PlayerInfo[MAX_PLAYERS][pInfo];
//==================================//

main()
{
print("\n----------------------------------");
print(" Role Play Alpha Gm Test ");
print("----------------------------------\n");
}

public OnGameModeInit()
{
// Don't use these lines if it's a filterscript
SetGameModeText("LifeVegas [v0.1 alpha]");
//AddPlayerClass(269, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
return 1;
}

public OnGameModeExit()
{
return 1;
}

public OnPlayerConnect(playerid)
{
new plname[MAX_PLAYER_NAME];
new string[36];
//============================//
Account[playerid] = 0;
LoginON[playerid] = 0; LoginTry[playerid] = 0;
PlayerInfo[playerid][pTut] = 0;
PlayerInfo[playerid][pSex] = 0;
PlayerInfo[playerid][pAge] = 0;
RegStep[playerid] = 0;
//============================//
ActivePlayers[playerid]++;
//============================//
GetPlayerName(playerid, plname, sizeof(plname));
format(string, sizeof(string), "%s.ini", plname);
SendClientMessage(playerid, COLOR_LIGHTRED, "Добро пожаловать на сервер LifeVegas. ");
//============================//
if(fexist(string))
{
Account[playerid] = 1;
SendClientMessage(playerid, COLOR_YELLOW, " Вы зарегистрированы. Авторизуйтесь. ");
}
else
{
Account[playerid] = 0;
SendClientMessage(playerid, COLOR_YELLOW, " Вы не зарегистрированы, зарегистрируйтесь. ");
}
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);
//============================================================//
if(LoginON[playerid] != 1)
{
if(Account[playerid] != 0)
{
new loginstring[128];
new loginname[64];
GetPlayerName(playerid,loginname,sizeof(loginname));
format(loginstring,sizeof(loginstring)," Введи пароль регистрации ",loginname);
ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Авторизация",loginstring,"Ок","Выйти");
}
else
{
new regstring[128];
new regname[64];
GetPlayerName(playerid,regname,sizeof(regname));
format(regstring,sizeof(regstring)," Зарегистрируй себе аккаунт ",regname);
ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT," Регистрация ",regstring,"Ок","Выход");
}
}
return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
ActivePlayers[playerid]--;
SavePlayer(playerid);
LoginON[playerid] = 0;
return 1;
}

public OnPlayerSpawn(playerid)
{
if(LoginON[playerid] == 0)
{
SendClientMessage(playerid, COLOR_LIGHTRED, "** Вам надо авторизоваться прежде чем играть. **");
Kick(playerid);
}
SetPlayerSpawn(playerid);
return 1;
}

public SetPlayerSpawn(playerid)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pTut] == 0)
{
TogglePlayerControllable(playerid, 0);
SetPlayerSkin(playerid, 41);
RegStep[playerid] = 1;
SetPlayerCameraPos(playerid, 1.3905,27.2070,1199.5938 );
SetPlayerCameraLookAt(playerid, 2.8155,28.6501,1199.5938 );
//=================
SendClientMessage(playerid, COLOR_YELLOW, "Добро пожаловать на сервер! Чтобы продолжить, вам необходимо создать персонажа.");
SendClientMessage(playerid, COLOR_YELLOW2, "Используйте NUM4 и NUM6 для выбора пола.");
SendClientMessage(playerid, COLOR_YELLOW2, "Нажмите кнопку бега (SHIFT) для подтверждения.");
//=================
}
else
{
SetPlayerInterior(playerid,0);
SetPlayerPos(playerid,1958.3783, 1343.1572, 15.3746);
}
}
return 1;
}

public OnPlayerRegister(playerid, password[])
{
if(IsPlayerConnected(playerid))
{
new string[32];
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, sizeof(playername));
format(string, sizeof(string), "%s.ini", playername);
new File: hFile = fopen(string, io_write);
if (hFile)
{
strmid(PlayerInfo[playerid][pKey], password, 0, strlen(password), 255);
new var[32];
format(var, 32, "Key=%s\n", PlayerInfo[playerid][pKey]);fwrite(hFile, var);
format(var, 32, "Sex=%d\n",PlayerInfo[playerid][pSex]);fwrite(hFile, var);
format(var, 32, "Age=%d\n",PlayerInfo[playerid][pAge]);fwrite(hFile, var);
format(var, 32, "Tutorial=%d\n",PlayerInfo[playerid][pTut]);fwrite(hFile, var);
format(var, 32, "Model=%d\n",PlayerInfo[playerid][pModel]);fwrite(hFile, var);
fclose(hFile);
new loginstring[128];
new loginname[64];
GetPlayerName(playerid,loginname,sizeof(loginname));
format(loginstring,sizeof(loginstring),"Здравствуйте, %s\nЗалогинься:",loginname);
ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Авторизация",loginstring,"Вход","Выход");
}
}
return 1;
}

public OnPlayerLogin(playerid,password[])
{
new string[64];
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, sizeof(playername));
format(string, sizeof(string), "%s.ini", playername);
new File: UserFile = fopen(string, io_read);
if ( UserFile )
{
new PassData[256];
new keytmp[256], valtmp[256];
fread( UserFile , PassData , sizeof( PassData ) );
keytmp = ini_GetKey( PassData );
if( strcmp( keytmp , "Key" , true ) == 0 )
{
valtmp = ini_GetValue( PassData );
strmid(PlayerInfo[playerid][pKey], valtmp, 0, strlen(valtmp)-1, 255);

}
if(strcmp(PlayerInfo[playerid][pKey],password, true ) == 0 )
{
new key[ 256 ] , val[ 256 ];
new Data[ 256 ];
while ( fread( UserFile , Data , sizeof( Data ) ) )
{
key = ini_GetKey( Data );
if( strcmp( key , "Key" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pKey] = strval( val ); }
if( strcmp( key , "Sex" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pSex] = strval( val ); }
if( strcmp( key , "Age" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pAge] = strval( val ); }
if( strcmp( key , "Tutorial" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pTut] = strval( val ); }
if( strcmp( key , "Model" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pModel] = strval( val ); }
}
fclose(UserFile);
}
else
{
SendClientMessage(playerid, COLOR_WHITE, "*Пароль неверный. (Всего 3 попытки) ");
new loginstring[128];
new loginname[64];
GetPlayerName(playerid,loginname,sizeof(loginname));
format(loginstring,sizeof(loginstring),"Введи верный пароль:",loginname);
ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Авторизация",loginstring,"Ок","Выход");
fclose(UserFile);
LoginTry[playerid] += 1;
if(LoginTry[playerid] == 4) { Ban(playerid); }
return 1;
}

}
LoginON[playerid] = 1;
SetPlayerSpawn(playerid);
return 1;
}

public SavePlayer(playerid)
{
if(IsPlayerConnected(playerid))
{
if(LoginON[playerid])
{
new string[32];
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, sizeof(playername));
format(string, sizeof(string), "%s.ini", playername);
new File: hFile = fopen(string, io_write);
if (hFile)
{
new var[32];
format(var, 32, "Key=%s\n", PlayerInfo[playerid][pKey]);fwrite(hFile, var);
format(var, 32, "Sex=%d\n",PlayerInfo[playerid][pSex]);fwrite(hFile, var);
format(var, 32, "Age=%d\n",PlayerInfo[playerid][pAge]);fwrite(hFile, var);
format(var, 32, "Tutorial=%d\n",PlayerInfo[playerid][pTut]);fwrite(hFile, var);
format(var, 32, "Model=%d\n",PlayerInfo[playerid][pModel]);fwrite(hFile, var);
fclose(hFile);
SendClientMessage(playerid,COLOR_WHITE," Твой аккаунт сохранен.");
}
}
}
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[])
{
if (strcmp("/w", cmdtext, true, 10) == 0 || strcmp("/whisper", cmdtext, true, 10) == 0 || strcmp("/pm", cmdtext, true, 10) == 0)
{
SendClientMessage(playerid, COLOR_RED, " Данная команда отключена на этом сервере. Этот серв - Role Play ");
SendClientMessage(playerid, COLOR_RED, " Для общения позвоните другу по телефону или отправьте смс ");
SendClientMessage(playerid, COLOR_RED, " Для этого купите телефон в 24\7 и используйте команды /call /sms ");
return 1;
}
if (strcmp("/saveme", cmdtext, true, 10) == 0)
{
SendClientMessage(playerid, COLOR_RED, " Ваш аккаунт сохранен. ");
SavePlayer(playerid);
return 1;
}
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)
{
if(oldkeys == KEY_SPRINT)
{
if(RegStep[playerid] == 1)
{
if(PlayerInfo[playerid][pSex] == 1)
{
PlayerInfo[playerid][pSex] = 1;
PlayerInfo[playerid][pModel] = 269;
SetPlayerSkin(playerid, 269);
SendClientMessage(playerid, COLOR_YELLOW2, "Ваш персонаж мужского пола.");
TogglePlayerControllable(playerid, 1);
SetCameraBehindPlayer(playerid);
RegStep[playerid] = 0;
//===========================//
SetPlayerSpawn(playerid);
PlayerInfo[playerid][pTut] = 1;
return 1;
}
else if(PlayerInfo[playerid][pSex] == 2)
{
PlayerInfo[playerid][pSex] = 2;
PlayerInfo[playerid][pModel] = 41;
SetPlayerSkin(playerid, 41);
SendClientMessage(playerid, COLOR_YELLOW2, "Ваш персонаж женского пола.");
TogglePlayerControllable(playerid, 1);
SetCameraBehindPlayer(playerid);
RegStep[playerid] = 0;
//===========================//
SetPlayerSpawn(playerid);
PlayerInfo[playerid][pTut] = 1;
return 1;
}
}
}
if(newkeys == 16384 && RegStep[playerid] == 1 || newkeys == 8192 && RegStep[playerid] == 1)
{
if(GetPlayerSkin(playerid) == 269)
{
SetPlayerSkin(playerid, 41);
PlayerInfo[playerid][pSex] = 2;
SetPlayerCameraPos(playerid, 1.3905,27.2070,1199.5938 );
SetPlayerCameraLookAt(playerid, 2.8155,28.6501,1199.5938 );
}
else if(GetPlayerSkin(playerid) == 41)
{
SetPlayerSkin(playerid, 269);
PlayerInfo[playerid][pSex] = 1;
SetPlayerCameraPos(playerid, 1.3905,27.2070,1199.5938 );
SetPlayerCameraLookAt(playerid, 2.8155,28.6501,1199.5938 );
}
}
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[])
{
new sendername[MAX_PLAYER_NAME];
new string[128];
if(dialogid == 1)
{
if(response)
{
if(!strlen(inputtext))
{
new loginstring[128];
new loginname[64];
GetPlayerName(playerid,loginname,sizeof(loginname));
format(loginstring,sizeof(loginstring),"Здравствуйте, авторизируйтесь",loginname);
ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Авторизация",loginstring,"Ок","Выход");
}
new tmppass[64];
strmid(tmppass, inputtext, 0, strlen(inputtext), 255);
Encrypt(tmppass);
OnPlayerLogin(playerid,tmppass);
}
else
{
Kick(playerid);
}
}
if(dialogid == 2)
{
if(response)
{
if(!strlen(inputtext))
{
Account[playerid] = 0;
new regstring[128];
new regname[64];
GetPlayerName(playerid,regname,sizeof(regname));
format(regstring,sizeof(regstring),"Здравствуйте, зарегистрируйтесь",regname);
ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Регистрация",regstring,"Ок","Выход");
return 1;
}
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "%s.ini", sendername);
new File: hFile = fopen(string, io_read);
if (hFile)
{
SendClientMessage(playerid, COLOR_YELLOW, "*Такое имя уже существует.");
fclose(hFile);
return 1;
}
new tmppass[64];
strmid(tmppass, inputtext, 0, strlen(inputtext), 255);
Encrypt(tmppass);
OnPlayerRegister(playerid,tmppass);
}
else
{
Kick(playerid);
}
}
return 1;
}

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

stock ini_GetKey( line[] )
{
new keyRes[256];
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[256];
valRes[0]=0;
if ( strfind( line , "=" , true ) == -1 ) return valRes;
strmid( valRes , line , strfind( line , "=" , true )+1 , strlen( line ) , sizeof( valRes ) );
return valRes;
}

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

[/pwn]

Очень прошу помочь...

Добавлено (31.03.2010, 22:50)
---------------------------------------------
up! up! up! up! up! парни выручайте)) бьюсь ап стол.. непойму в чем дело...


LifeVegas: vk.com/lvgta - Покори вершины Лас-Вегаса в новом РП проекте. COMING SOON
Продаю РП мод: подробнее тут
Решаю задачи по техническим дисциплинам, подробнее тут


Сообщение отредактировал _BigSm0ke_ - Среда, 31.03.2010, 21:28
VagrantДата: Четверг, 01.04.2010, 06:11 | Сообщение # 2
Уважаемый человек
Группа: I'm V.I.P.
Сообщений: 904
Награды: 21
Город: Находка
Репутация: 489
Замечания: 0%
Статус:
в PlayerLogin где цикл чтения файла после ввода пароля. PlayerInfo(playerid)(pKey) = ini_GetValue( Data ). писал с телефона, круглые на квадратные скобки заменишь.


Человек учась ходить падает, и только падая, он учится ходить!
Мои работы:
[GM] W.F.S.A. V. 1.0 - 100%
[GM] San Fierro Enigmatic (TDM) V. 1.0 - 100%
[FS] Clan House V. 1.0 - 100%
[FS] Save Car Tun System V. 1.0 - 100%
[FS] Vagrant Anti-CapsLock V. 2.1 - 100%
[FS] Vagrant Anti-Advertise V. 1.1, V. 2.0 - 100%
[APP] SA-MP Interior Viewer V. 1.0 - 100%

Принимаю заказы на помощь в скриптинге!
_BigSm0ke_Дата: Суббота, 03.04.2010, 09:37 | Сообщение # 3
Местный
Группа: I'm V.I.P.
Сообщений: 674
Награды: 5
Город: Москва
Репутация: 127
Замечания: 0%
Статус:
Чет я невдуплю куда засунуть...

[pwn]public OnPlayerLogin(playerid,password[])
{
new string[64];
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, sizeof(playername));
format(string, sizeof(string), "%s.ini", playername);
new File: UserFile = fopen(string, io_read);
if ( UserFile )
{
new PassData[256];
new keytmp[256], valtmp[256];
fread( UserFile , PassData , sizeof( PassData ) );
keytmp = ini_GetKey( PassData );
if( strcmp( keytmp , "Key" , true ) == 0 )
{
valtmp = ini_GetValue( PassData );
strmid(PlayerInfo[playerid][pKey], valtmp, 0, strlen(valtmp)-1, 255);

}
if(strcmp(PlayerInfo[playerid][pKey],password, true ) == 0 )
{
new key[ 256 ] , val[ 256 ];
new Data[ 256 ];
while ( fread( UserFile , Data , sizeof( Data ) ) )
{
key = ini_GetKey( Data );
if( strcmp( key , "Key" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pKey] = strval( val ); }
if( strcmp( key , "Sex" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pSex] = strval( val ); }
if( strcmp( key , "Age" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pAge] = strval( val ); }
if( strcmp( key , "Tutorial" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pTut] = strval( val ); }
if( strcmp( key , "Model" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pModel] = strval( val ); }
}
fclose(UserFile);
}
else
{
SendClientMessage(playerid, COLOR_WHITE, "*Ïàðîëü íåâåðíûé. (Âñåãî 3 ïîïûòêè) ");
new loginstring[128];
new loginname[64];
GetPlayerName(playerid,loginname,sizeof(loginname));
format(loginstring,sizeof(loginstring),"Ââåäè âåðíûé ïàðîëü:",loginname);
ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Àâòîðèçàöèÿ",loginstring,"Îê","Âûõîä");
fclose(UserFile);
LoginTry[playerid] += 1;
if(LoginTry[playerid] == 4) { Ban(playerid); }
return 1;
}

}
LoginON[playerid] = 1;
SetPlayerSpawn(playerid);
return 1;
}[/pwn]

Добавлено (01.04.2010, 16:17)
---------------------------------------------
так куда там засовывать строку которую ты написал поподробнее можно?

Добавлено (03.04.2010, 09:37)
---------------------------------------------
ау народ, чо никто так и не скажет в чем проблема


LifeVegas: vk.com/lvgta - Покори вершины Лас-Вегаса в новом РП проекте. COMING SOON
Продаю РП мод: подробнее тут
Решаю задачи по техническим дисциплинам, подробнее тут
VagrantДата: Суббота, 10.04.2010, 03:20 | Сообщение # 4
Уважаемый человек
Группа: I'm V.I.P.
Сообщений: 904
Награды: 21
Город: Находка
Репутация: 489
Замечания: 0%
Статус:
_BigSm0ke_, Вырезано плоховато канечно. Не тестировал так как возможности небыло. Но возможно твоя проблема решится.
[pwn]
// This is a comment
// uncomment the line below if you want to write a filterscript
//#define FILTERSCRIPT

#include <a_samp>

#define COLOR_WHITE 0xFFFFFFFF
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_RED 0xAA3333AA
#define COLOR_LIGHTRED 0xFF6347AA
#define COLOR_LIGHTBLUE 0x33CCFFAA
#define COLOR_LIGHTGREEN 0x9ACD32AA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_YELLOW2 0xFFFF00AA

forward ini_GetKey( line[] );
forward ini_GetValue( line[] );
forward OnPlayerLogin(playerid,password[]);
forward Encrypt(string[]);
forward OnPlayerRegister(playerid, password[]);
forward SavePlayer(playerid);
forward SetPlayerSpawn(playerid);

new Account[MAX_PLAYERS];
new LoginON[MAX_PLAYERS];
new ActivePlayers[MAX_PLAYERS];
new LoginTry[MAX_PLAYERS];
new RegStep[MAX_PLAYERS];

//==================================//

enum pInfo
{
pKey[256],
pSex,
pAge,
pTut,
pModel,
};

new PlayerInfo[MAX_PLAYERS][pInfo];
//==================================//

main()
{
print("\n----------------------------------");
print(" Role Play Alpha Gm Test ");
print("----------------------------------\n");
}

public OnGameModeInit()
{
// Don't use these lines if it's a filterscript
SetGameModeText("LifeVegas [v0.1 alpha]");
//AddPlayerClass(269, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
return 1;
}

public OnGameModeExit()
{
return 1;
}

public OnPlayerConnect(playerid)
{
new plname[MAX_PLAYER_NAME];
new string[36];
//============================//
Account[playerid] = 0;
LoginON[playerid] = 0; LoginTry[playerid] = 0;
PlayerInfo[playerid][pTut] = 0;
PlayerInfo[playerid][pSex] = 0;
PlayerInfo[playerid][pAge] = 0;
RegStep[playerid] = 0;
//============================//
ActivePlayers[playerid]++;
//============================//
GetPlayerName(playerid, plname, sizeof(plname));
format(string, sizeof(string), "%s.ini", plname);
SendClientMessage(playerid, COLOR_LIGHTRED, "Добро пожаловать на сервер LifeVegas. ");
//============================//
if(fexist(string))
{
Account[playerid] = 1;
SendClientMessage(playerid, COLOR_YELLOW, " Вы зарегистрированы. Авторизуйтесь. ");
}
else
{
Account[playerid] = 0;
SendClientMessage(playerid, COLOR_YELLOW, " Вы не зарегистрированы, зарегистрируйтесь. ");
}
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);
//============================================================//
if(LoginON[playerid] != 1)
{
if(Account[playerid] != 0)
{
new loginstring[128];
new loginname[64];
GetPlayerName(playerid,loginname,sizeof(loginname));
format(loginstring,sizeof(loginstring)," Введи пароль регистрации ",loginname);
ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Авторизация",loginstring,"Ок","Выйти");
}
else
{
new regstring[128];
new regname[64];
GetPlayerName(playerid,regname,sizeof(regname));
format(regstring,sizeof(regstring)," Зарегистрируй себе аккаунт ",regname);
ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT," Регистрация ",regstring,"Ок","Выход");
}
}
return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
ActivePlayers[playerid]--;
SavePlayer(playerid);
LoginON[playerid] = 0;
return 1;
}

public OnPlayerSpawn(playerid)
{
if(LoginON[playerid] == 0)
{
SendClientMessage(playerid, COLOR_LIGHTRED, "** Вам надо авторизоваться прежде чем играть. **");
Kick(playerid);
}
SetPlayerSpawn(playerid);
return 1;
}

public SetPlayerSpawn(playerid)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pTut] == 0)
{
TogglePlayerControllable(playerid, 0);
SetPlayerSkin(playerid, 41);
RegStep[playerid] = 1;
SetPlayerCameraPos(playerid, 1.3905,27.2070,1199.5938 );
SetPlayerCameraLookAt(playerid, 2.8155,28.6501,1199.5938 );
//=================
SendClientMessage(playerid, COLOR_YELLOW, "Добро пожаловать на сервер! Чтобы продолжить, вам необходимо создать персонажа.");
SendClientMessage(playerid, COLOR_YELLOW2, "Используйте NUM4 и NUM6 для выбора пола.");
SendClientMessage(playerid, COLOR_YELLOW2, "Нажмите кнопку бега (SHIFT) для подтверждения.");
//=================
}
else
{
SetPlayerInterior(playerid,0);
SetPlayerPos(playerid,1958.3783, 1343.1572, 15.3746);
}
}
return 1;
}

public OnPlayerRegister(playerid, password[])
{
if(IsPlayerConnected(playerid))
{
new string[32];
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, sizeof(playername));
format(string, sizeof(string), "%s.ini", playername);
new File: hFile = fopen(string, io_write);
if (hFile)
{
strmid(PlayerInfo[playerid][pKey], password, 0, strlen(password), 255);
new var[32];
format(var, 32, "Key=%s\n", PlayerInfo[playerid][pKey]);fwrite(hFile, var);
format(var, 32, "Sex=%d\n",PlayerInfo[playerid][pSex]);fwrite(hFile, var);
format(var, 32, "Age=%d\n",PlayerInfo[playerid][pAge]);fwrite(hFile, var);
format(var, 32, "Tutorial=%d\n",PlayerInfo[playerid][pTut]);fwrite(hFile, var);
format(var, 32, "Model=%d\n",PlayerInfo[playerid][pModel]);fwrite(hFile, var);
fclose(hFile);
new loginstring[128];
new loginname[64];
GetPlayerName(playerid,loginname,sizeof(loginname));
format(loginstring,sizeof(loginstring),"Здравствуйте, %s\nЗалогинься!",loginname);
ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Авторизация",loginstring,"Вход","Выход");
}
}
return 1;
}

public OnPlayerLogin(playerid,password[])
{
new string[64];
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, sizeof(playername));
format(string, sizeof(string), "%s.ini", playername);
new File: UserFile = fopen(string, io_read);
if ( UserFile ) // Если открывается файл с именем "string" --- 1
{
new PassData[256];
new keytmp[256], valtmp[256];
fread( UserFile , PassData , sizeof( PassData ) );
keytmp = ini_GetKey( PassData );

if( strcmp( keytmp , "Key" , true ) == 0 ){ valtmp = ini_GetValue( PassData ); strmid(PlayerInfo[playerid][pKey], valtmp, 0, strlen(valtmp)-1, 255); } // Считываем пароль

if(strcmp(PlayerInfo[playerid][pKey],password, true ) == 0 ) // Проверяем совподает ли пароль из файла аккаунта с введённым...
{
new key[ 256 ] , val[ 256 ];
new Data[ 256 ];
while ( fread( UserFile , Data , sizeof( Data ) ) ) // Цикл чтения файла пока есть строки
{
key = ini_GetKey( Data );
if( strcmp( key , "Key" , true ) == 0 ) { PlayerInfo[playerid][pKey] = ini_GetValue( Data ); }
if( strcmp( key , "Sex" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pSex] = strval( val ); }
if( strcmp( key , "Age" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pAge] = strval( val ); }
if( strcmp( key , "Tutorial" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pTut] = strval( val ); }
if( strcmp( key , "Model" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pModel] = strval( val ); }
}
fclose(UserFile); // После выполнения цикла закрыть файл
LoginON[playerid] = 1;
SetPlayerSpawn(playerid); // Заспавнить игрока ---- Эту строку нужно было сюда. Она стояла в другом месте...
}
else
{
SendClientMessage(playerid, COLOR_WHITE, "*Пароль неверный. (Всего 3 попытки) ");
new loginstring[128];
new loginname[64];
GetPlayerName(playerid,loginname,sizeof(loginname));
format(loginstring,sizeof(loginstring),"%s, Введён неверный пароль. Попробуйте заного!",loginname);
ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Авторизация",loginstring,"Ок","Выход");
fclose(UserFile);
LoginTry[playerid] += 1;
if(LoginTry[playerid] == 4) { Kick(playerid); }
}
}
return 1;
}

public SavePlayer(playerid)
{
if(IsPlayerConnected(playerid))
{
if(LoginON[playerid])
{
new string[32];
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, sizeof(playername));
format(string, sizeof(string), "%s.ini", playername);
new File: hFile = fopen(string, io_write);
if (hFile)
{
new var[32];
format(var, 32, "Key=%s\n", PlayerInfo[playerid][pKey]);fwrite(hFile, var);
format(var, 32, "Sex=%d\n",PlayerInfo[playerid][pSex]);fwrite(hFile, var);
format(var, 32, "Age=%d\n",PlayerInfo[playerid][pAge]);fwrite(hFile, var);
format(var, 32, "Tutorial=%d\n",PlayerInfo[playerid][pTut]);fwrite(hFile, var);
format(var, 32, "Model=%d\n",PlayerInfo[playerid][pModel]);fwrite(hFile, var);
fclose(hFile);
SendClientMessage(playerid,COLOR_WHITE," Твой аккаунт сохранен.");
}
}
}
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[])
{
if (strcmp("/w", cmdtext, true, 10) == 0 || strcmp("/whisper", cmdtext, true, 10) == 0 || strcmp("/pm", cmdtext, true, 10) == 0)
{
SendClientMessage(playerid, COLOR_RED, " Данная команда отключена на этом сервере. Этот серв - Role Play ");
SendClientMessage(playerid, COLOR_RED, " Для общения позвоните другу по телефону или отправьте смс ");
SendClientMessage(playerid, COLOR_RED, " Для этого купите телефон в 24\7 и используйте команды /call /sms ");
return 1;
}
if (strcmp("/saveme", cmdtext, true, 10) == 0)
{
SendClientMessage(playerid, COLOR_RED, " Ваш аккаунт сохранен. ");
SavePlayer(playerid);
return 1;
}
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)
{
if(oldkeys == KEY_SPRINT)
{
if(RegStep[playerid] == 1)
{
if(PlayerInfo[playerid][pSex] == 1)
{
PlayerInfo[playerid][pSex] = 1;
PlayerInfo[playerid][pModel] = 269;
SetPlayerSkin(playerid, 269);
SendClientMessage(playerid, COLOR_YELLOW2, "Ваш персонаж мужского пола.");
TogglePlayerControllable(playerid, 1);
SetCameraBehindPlayer(playerid);
RegStep[playerid] = 0;
//===========================//
SetPlayerSpawn(playerid);
PlayerInfo[playerid][pTut] = 1;
return 1;
}
else if(PlayerInfo[playerid][pSex] == 2)
{
PlayerInfo[playerid][pSex] = 2;
PlayerInfo[playerid][pModel] = 41;
SetPlayerSkin(playerid, 41);
SendClientMessage(playerid, COLOR_YELLOW2, "Ваш персонаж женского пола.");
TogglePlayerControllable(playerid, 1);
SetCameraBehindPlayer(playerid);
RegStep[playerid] = 0;
//===========================//
SetPlayerSpawn(playerid);
PlayerInfo[playerid][pTut] = 1;
return 1;
}
}
}
if(newkeys == 16384 && RegStep[playerid] == 1 || newkeys == 8192 && RegStep[playerid] == 1)
{
if(GetPlayerSkin(playerid) == 269)
{
SetPlayerSkin(playerid, 41);
PlayerInfo[playerid][pSex] = 2;
SetPlayerCameraPos(playerid, 1.3905,27.2070,1199.5938 );
SetPlayerCameraLookAt(playerid, 2.8155,28.6501,1199.5938 );
}
else if(GetPlayerSkin(playerid) == 41)
{
SetPlayerSkin(playerid, 269);
PlayerInfo[playerid][pSex] = 1;
SetPlayerCameraPos(playerid, 1.3905,27.2070,1199.5938 );
SetPlayerCameraLookAt(playerid, 2.8155,28.6501,1199.5938 );
}
}
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[])
{
new sendername[MAX_PLAYER_NAME];
new string[128];
if(dialogid == 1)
{
if(response)
{
if(!strlen(inputtext))
{
new loginstring[128];
new loginname[64];
GetPlayerName(playerid,loginname,sizeof(loginname));
format(loginstring,sizeof(loginstring),"Здравствуйте %s, авторизируйтесь",loginname);
ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Авторизация",loginstring,"Ок","Выход");
}
new tmppass[64];
strmid(tmppass, inputtext, 0, strlen(inputtext), 255);
Encrypt(tmppass);
OnPlayerLogin(playerid,tmppass);
}
else
{
Kick(playerid);
}
}
if(dialogid == 2)
{
if(response)
{
if(!strlen(inputtext))
{
Account[playerid] = 0;
new regstring[128];
new regname[64];
GetPlayerName(playerid,regname,sizeof(regname));
format(regstring,sizeof(regstring),"Здравствуйте %s, зарегистрируйтесь",regname);
ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Регистрация",regstring,"Ок","Выход");
return 1;
}
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "%s.ini", sendername);
new File: hFile = fopen(string, io_read);
if (hFile)
{
SendClientMessage(playerid, COLOR_YELLOW, "*Такое имя уже существует.");
fclose(hFile);
return 1;
}
new tmppass[64];
strmid(tmppass, inputtext, 0, strlen(inputtext), 255);
Encrypt(tmppass);
OnPlayerRegister(playerid,tmppass);
}
else
{
Kick(playerid);
}
}
return 1;
}

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

stock ini_GetKey( line[] )
{
new keyRes[256];
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[256];
valRes[0]=0;
if ( strfind( line , "=" , true ) == -1 ) return valRes;
strmid( valRes , line , strfind( line , "=" , true )+1 , strlen( line ) , sizeof( valRes ) );
return valRes;
}

public Encrypt(string[])
{
for(new x=0; x < strlen(string); x++)
{
string[x] += (3^x) * (x % 15);
if(string[x] > (0xff))
{
string[x] -= 256;
}
}
return 1;
}
[/pwn]
Если помог с тебя + ;) yes


Человек учась ходить падает, и только падая, он учится ходить!
Мои работы:
[GM] W.F.S.A. V. 1.0 - 100%
[GM] San Fierro Enigmatic (TDM) V. 1.0 - 100%
[FS] Clan House V. 1.0 - 100%
[FS] Save Car Tun System V. 1.0 - 100%
[FS] Vagrant Anti-CapsLock V. 2.1 - 100%
[FS] Vagrant Anti-Advertise V. 1.1, V. 2.0 - 100%
[APP] SA-MP Interior Viewer V. 1.0 - 100%

Принимаю заказы на помощь в скриптинге!
  • Страница 1 из 1
  • 1
Поиск:





 


 


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