22.07.2012, 07:39
Auto Login
pawn Код:
///////////////////////////////////////////////////////////////////////////////////////////
//
// Galaxy Stunting By Avi
// Created From Scratch V.1
//
///////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////Includes////////////////////////////////////////
#include <a_samp>
#include <dutils>
#include <Dini>
#pragma unused ret_memcpy
///////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////Defines///////////////////////////////////////////////
#define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
#define lgreen "{6EF83C}"
#define lwhite "{FFFFFF}"
#define lyellow "{FFFF22}"
#define lblue "{33BBCC}"
#define lpink "{FF0077}"
#define lorange "{FF6622}"
#define lred "{FF0000}"
#define lgrey "{BEBEBE}"
#define lyellow2 "{E1DE1C}"
#define lgreen2 "{AFFF00}"
#define green 0x00DE28FF
#define green2 0xAFFF00FF
#define darkgreen 0x5FB700FF
#define lightgreen 0x23FF00FF
#define red 0xFF0000FF
#define yellow 0xF5FF00FF
#define darkyellow 0xF5DE00FF
#define orange 0xF5A300FF
#define darkblue 0x0037FFFF
#define blue 0x009BFFFF
#define lightblue 0x00FFF0FF
#define grey 0xB4B4B4FF
#define white 0xF0F0F0FF
#define purple 0x9C00AFFF
#define Registerdialog 1
#define Logindialog 2
///////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////ENUM/////////////////////////////////////////////////////
enum pInfo {
Logged,
Password,
AdminLevel,
Viplevel,
Cash,
Score,
Ip[20],
IsBanned
}
new PlayerInfo[MAX_PLAYERS][pInfo];
//////////////////////////////////////////////////////////////////////////////////////////////////////
main()
{
print("\n----------------------------------");
print(" Galaxy Stunting");
print("----------------------------------\n");
}
public OnGameModeInit()
{
// Don't use these lines if it's a filterscript
SetGameModeText("Galaxy Stunting");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
return 1;
}
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)
{
GetPlayerIp(playerid,PlayerInfo[playerid][Ip],20);
SendClientMessage(playerid, green, "Welcome to Galaxy Stunting");
SendClientMessage(playerid, green, "Hope you enjoy!");
SendClientMessage(playerid, green, "Type /commands for a list of commands");
new name[MAX_PLAYER_NAME], file[128]; // the name and the file
GetPlayerName(playerid, name, MAX_PLAYER_NAME); // getting client's name
format(file, sizeof(file), "Admin/Users/%s.ini", name); // the location of the file
if(!fexist(file)) { // if the file does not exists
SendClientMessage(playerid, yellow, "You are not registered, please register");
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Please Register", "Enter Your Password Below", "Register", "Cancel"); // this is the dialog type
}
else {
new str[128]; // if the player IS registered
GetPlayerName(playerid, name, MAX_PLAYER_NAME);
format(str, sizeof(str), "Welcome Back %s. Enjoy!", name);
SendClientMessage(playerid, yellow, str);
new ip[20];
format(ip,sizeof(ip),"%s",dini_Get(file,"Ip"));
if(strcmp(ip,PlayerInfo[playerid][Ip],true)==0)
{
SendClientMessage(playerid, yellow, "You have been logged in automatically.");
PlayerInfo[playerid][Password] = dini_Int(file,"Password");
PlayerInfo[playerid][Viplevel] = dini_Int(file, "Viplevel");
PlayerInfo[playerid][Cash] = dini_Int(file, "Cash");
GivePlayerMoney(playerid, dini_Int(file, "cash"));
PlayerInfo[playerid][Score] = dini_Int(file, "Score");
PlayerInfo[playerid][AdminLevel] = dini_Int(file, "AdminLevel");
}
else ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Please Login", "Enter Your Password Below", "Login", "Cancel");
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
new file[128], name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, MAX_PLAYER_NAME);
format(file, sizeof(file), "Admin/Users/%s.ini", name);
if(dini_Exists(file)) {
dini_IntSet(file, "Password", PlayerInfo[playerid][Password]);
dini_IntSet(file, "IsBanned", PlayerInfo[playerid][IsBanned]);
dini_IntSet(file, "AdminLevel", PlayerInfo[playerid][AdminLevel]);
dini_IntSet(file, "Cash", PlayerInfo[playerid][Cash]);
dini_IntSet(file, "Viplevel", PlayerInfo[playerid][Viplevel]);
dini_IntSet(file, "Score", PlayerInfo[playerid][Score]);
dini_Set(file, "Ip", PlayerInfo[playerid][Ip]);
}
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[])
{
if (strcmp("/mycommand", cmdtext, true, 10) == 0)
{
// Do something here
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)
{
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 == Registerdialog) {
new file[128], name[MAX_PLAYER_NAME], str[128];
GetPlayerName(playerid, name, MAX_PLAYER_NAME);
format(file, sizeof(file), "Admin/Users/%s.ini", name);
if(response) {
if(strlen(inputtext)) {
dini_Create(file);
dini_IntSet(file, "Password", num_hash(inputtext));
dini_IntSet(file, "AdminLevel", PlayerInfo[playerid][AdminLevel]);
dini_IntSet(file, "Score", PlayerInfo[playerid][Score]);
dini_IntSet(file, "Cash", PlayerInfo[playerid][Cash]);
dini_Set(file, "Ip", PlayerInfo[playerid][Ip]);
dini_IntSet(file, "IsBanned", PlayerInfo[playerid][IsBanned]);
dini_IntSet(file, "Viplevel", PlayerInfo[playerid][Viplevel]);
format(str, sizeof(str), "You are registered as %s. Your password is %s.", name, inputtext);
SendClientMessage(playerid, red, str);
PlayerInfo[playerid][Viplevel] = dini_Int(file, "Viplevel");
PlayerInfo[playerid][Cash] = dini_Int(file, "Cash");
PlayerInfo[playerid][Score] = dini_Int(file, "Score");
PlayerInfo[playerid][AdminLevel] = dini_Int(file, "AdminLevel");
PlayerInfo[playerid][Password] = num_hash(inputtext);
}
}
else {
Kick(playerid);
}
}
if(dialogid == Logindialog) {
new file[128], name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, MAX_PLAYER_NAME);
format(file, sizeof(file), "Admin/Users/%s.ini", name);
if(response) {
if(strlen(inputtext)) {
if(num_hash(inputtext) != dini_Int(file,"Password")) {
SendClientMessage(playerid, red, "Wrong Password");
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Please Login", "Enter Your Password Below", "Login", "Cancel");
}
else {
SendClientMessage(playerid, yellow, "Succesfuly logged in");
PlayerInfo[playerid][Password] = dini_Int(file,"Password");
PlayerInfo[playerid][Viplevel] = dini_Int(file, "Viplevel");
PlayerInfo[playerid][Cash] = dini_Int(file, "Cash");
GivePlayerMoney(playerid, dini_Int(file, "cash"));
PlayerInfo[playerid][Score] = dini_Int(file, "Score");
PlayerInfo[playerid][AdminLevel] = dini_Int(file, "AdminLevel");
}
}
}
else
{
Kick(playerid);
}
}
return 1;
}
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
return 1;
}