Server goes off after turning on
#1

Hello, on my server when i start it with no users in scrpiftfiles its fine. then the users register and then when i start server again and user enters that has already registered the server goes off, i assume there is something wrong with loading user files from scirptfiles or something? but why? can some one take a look:

main parts, saving/loading from .ini:

pawn Код:
enum pInfo
{
    pKey[128],
    pAdmin,
    pCash,
    Float:pPos_x,
    Float:pPos_y,
    Float:pPos_z,
    Float:pHealth,
    Float:pSHealth,
    pAdjustable,
    pReg,
};

public OnPlayerRegister(playerid, password[])
{
    if(IsPlayerConnected(playerid))
    {
            new string3[32];
            new playername3[MAX_PLAYER_NAME];
            GetPlayerName(playerid, playername3, sizeof(playername3));
            format(string3, sizeof(string3), "%s.ini", playername3);
            new File: hFile = fopen(string3, 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);
                PlayerInfo[playerid][pCash] = GetPlayerMoney(playerid);
                format(var, 32, "AdminLevel=%d\n",PlayerInfo[playerid][pAdmin]);fwrite(hFile, var);
                format(var, 32, "pSHealth=%.1f\n",PlayerInfo[playerid][pSHealth]);fwrite(hFile, var);
                GetPlayerHealth(playerid,PlayerInfo[playerid][pHealth]);
                format(var, 32, "pHealth=%.1f\n",PlayerInfo[playerid][pHealth]);fwrite(hFile, var);
                format(var, 32, "Registered=%d\n",PlayerInfo[playerid][pReg]);fwrite(hFile, var);
                format(var, 32, "Money=%d\n",PlayerInfo[playerid][pCash]);fwrite(hFile, var);
                if ((PlayerInfo[playerid][pPos_x]==0.0 && PlayerInfo[playerid][pPos_y]==0.0 && PlayerInfo[playerid][pPos_z]==0.0))
                {
                    PlayerInfo[playerid][pPos_x] = 1684.9;
                    PlayerInfo[playerid][pPos_y] = -2244.5;
                    PlayerInfo[playerid][pPos_z] = 13.5;
                }
                format(var, 32, "Pos_x=%.1f\n",PlayerInfo[playerid][pPos_x]);fwrite(hFile, var);
                format(var, 32, "Pos_y=%.1f\n",PlayerInfo[playerid][pPos_y]);fwrite(hFile, var);
                format(var, 32, "Pos_z=%.1f\n",PlayerInfo[playerid][pPos_z]);fwrite(hFile, var);
                format(var, 32, "Adjustable=%d\n",PlayerInfo[playerid][pAdjustable]);fwrite(hFile, var);
                fclose(hFile);
                SendClientMessage(playerid, COLOR_GREEN, "Konto zarejestrowane masz 30 sekund by sie zalogowac, /zaloguj [haslo].");
            }
    }
    return 1;
}

public OnPlayerUpdate(playerid)
{
    if(IsPlayerConnected(playerid))
    {
        if(gPlayerLogged[playerid])
        {
            new string3[32];
            new playername3[MAX_PLAYER_NAME];
            GetPlayerName(playerid, playername3, sizeof(playername3));
            format(string3, sizeof(string3), "%s.ini", playername3);
            new File: hFile = fopen(string3, io_write);
            if (hFile)
            {
                new var[32];
                format(var, 32, "Key=%s\n", PlayerInfo[playerid][pKey]);fwrite(hFile, var);
                PlayerInfo[playerid][pCash] = GetPlayerMoney(playerid);
                format(var, 32, "AdminLevel=%d\n",PlayerInfo[playerid][pAdmin]);fwrite(hFile, var);
                format(var, 32, "pSHealth=%.1f\n",PlayerInfo[playerid][pSHealth]);fwrite(hFile, var);
                GetPlayerHealth(playerid,PlayerInfo[playerid][pHealth]);
                format(var, 32, "pHealth=%.1f\n",PlayerInfo[playerid][pHealth]);fwrite(hFile, var);
                format(var, 32, "Registered=%d\n",PlayerInfo[playerid][pReg]);fwrite(hFile, var);
                format(var, 32, "Money=%d\n",PlayerInfo[playerid][pCash]);fwrite(hFile, var);
                if ((PlayerInfo[playerid][pPos_x]==0.0 && PlayerInfo[playerid][pPos_y]==0.0 && PlayerInfo[playerid][pPos_z]==0.0))
                {
                    PlayerInfo[playerid][pPos_x] = 1684.9;
                    PlayerInfo[playerid][pPos_y] = -2244.5;
                    PlayerInfo[playerid][pPos_z] = 13.5;
                }
                format(var, 32, "Pos_x=%.1f\n",PlayerInfo[playerid][pPos_x]);fwrite(hFile, var);
                format(var, 32, "Pos_y=%.1f\n",PlayerInfo[playerid][pPos_y]);fwrite(hFile, var);
                format(var, 32, "Pos_z=%.1f\n",PlayerInfo[playerid][pPos_z]);fwrite(hFile, var);
                format(var, 32, "Adjustable=%d\n",PlayerInfo[playerid][pAdjustable]);fwrite(hFile, var);
                fclose(hFile);
            }
        }
    }
    return 1;
}

public OnPlayerLogin(playerid,password[])
{
    new tmp2[256];
    new string2[64];
    new playername2[MAX_PLAYER_NAME];
    GetPlayerName(playerid, playername2, sizeof(playername2));
    format(string2, sizeof(string2), "%s.ini", playername2);
    new File: UserFile = fopen(string2, 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 , "AdminLevel" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pAdmin] = strval( val ); }
                    if( strcmp( key , "pSHealth" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pSHealth] = floatstr( val ); }
                    if( strcmp( key , "pHealth" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pHealth] = floatstr( val ); }
                    if( strcmp( key , "Money" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pCash] = strval( val ); }
                    if( strcmp( key , "Pos_x" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pPos_x] = floatstr( val ); }
                    if( strcmp( key , "Pos_y" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pPos_y] = floatstr( val ); }
                    if( strcmp( key , "Pos_z" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pPos_z] = floatstr( val ); }
                    if( strcmp( key , "Registered" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pReg] = strval( val ); }
                    if( strcmp( key , "Adjustable" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pAdjustable] = strval( val ); }
                }//end while
                fclose(UserFile);//close the file after everything has been read in the while
        }
        else
        {
            SendClientMessage(playerid, COLOR_WHITE, "SERWER: Nieprawidlowe haslo.");
            fclose(UserFile);
            gPlayerLogTries[playerid] += 1;
            if(gPlayerLogTries[playerid] == 4) { Ban(playerid); }
            return 1;
        }
        PlayerInfo[playerid][pAdjustable] = 0;
        ResetPlayerMoney(playerid);
        ConsumingMoney[playerid] = 1;
        GivePlayerMoney(playerid,PlayerInfo[playerid][pCash]);
        CurrentMoney[playerid] = PlayerInfo[playerid][pCash];
        if(PlayerInfo[playerid][pReg] == 0)
        {
            PlayerInfo[playerid][pSHealth] = 0.0;
            PlayerInfo[playerid][pHealth] = 50.0;
            PlayerInfo[playerid][pPos_x] = 2246.6;
            PlayerInfo[playerid][pPos_y] = -1161.9;
            PlayerInfo[playerid][pPos_z] = 1029.7;
            PlayerInfo[playerid][pReg] = 1;
            GivePlayerMoney(playerid, 5000);
        }
        format(string2, sizeof(string2), "SERWER: Witaj %s",playername2);
        SendClientMessage(playerid, COLOR_WHITE,string2);
        printf("%s has logged in.",playername2);
        if (PlayerInfo[playerid][pAdmin] > 0)
        {
            format(string2, sizeof(string2), "SERWER: Jestes zalogowany jako administrator poziomu %d.",PlayerInfo[playerid][pAdmin]);
            SendClientMessage(playerid, COLOR_WHITE,string2);
        }
        gPlayerLogged[playerid] = 1;
        SpawnPlayer(playerid);
        format(tmp2, sizeof(tmp2), "~w~Witaj ~n~~y~   %s", playername2);
    //  DateProp(playerid);
        GameTextForPlayer(playerid, tmp2, 5000, 1);
        SendClientMessage(playerid, COLOR_YELLOW, motd);
    }
    return 1;
}
here his the whole map:

Код:
#include <a_samp>
#include <core>
#include <float>
#include <utils>
//#include <morphinc>
//#include <file>

#pragma tabsize 0

#define KEY_HORN 2
#define COLOR_MESSAGE_YELLOW 0xFFDD00AA
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_BLUE 0x2641FEAA
#define COLOR_LIGHTRED 0xFF6347AA
#define COLOR_GRAD1 0xB4B5B7FF
#define COLOR_GRAD2 0xBFC0C2FF
#define COLOR_GRAD3 0xCBCCCEFF
#define COLOR_GRAD4 0xD8D8D8FF
#define COLOR_GRAD5 0xE3E3E3FF
#define COLOR_GRAD6 0xF0F0F0FF
#define COLOR_ORANGE 0xFF830000
#define COLOR_LIGHTBLUE 0x33CCFFAA
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_RED 0xAA3333AA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_WHITE 0xFFFFFFAA
#define INACTIVE_PLAYER_ID 255
#define l_red 0xFF0000AA
#define l_green 0x33FF33AA
#define NUMVALUES 4

new dollah = 700;
new gPlayerAccount[MAX_PLAYERS];
new ConsumingMoney[MAX_PLAYERS];
new CurrentMoney[MAX_PLAYERS];
new motd[256];

new BRAMA;
new BRAMA2;
new SZLABAN;
new GateState;
new GateState2;
new GateState3;

enum pInfo
{
	pKey[128],
	pAdmin,
	pCash,
	Float:pPos_x,
	Float:pPos_y,
	Float:pPos_z,
	Float:pHealth,
	Float:pSHealth,
	pAdjustable,
	pReg,
};
new PlayerInfo[MAX_PLAYERS][pInfo];

new aVehicleNames[212][] =
{
	{"Landstalker"},
	{"Bravura"},
	{"Buffalo"},
	{"Linerunner"},
	{"Perrenial"},
	{"Sentinel"},
	{"Dumper"},
	{"Firetruck"},
	{"Trashmaster"},
	{"Stretch"},
	{"Manana"},
	{"Infernus"},
	{"Voodoo"},
	{"Pony"},
	{"Mule"},
	{"Cheetah"},
	{"Ambulance"},
	{"Leviathan"},
	{"Moonbeam"},
	{"Esperanto"},
	{"Taxi"},
	{"Washington"},
	{"Bobcat"},
	{"Mr Whoopee"},
	{"BF Injection"},
	{"Hunter"},
	{"Premier"},
	{"Enforcer"},
	{"Securicar"},
	{"Banshee"},
	{"Predator"},
	{"Bus"},
	{"Rhino"},
	{"Barracks"},
	{"Hotknife"},
	{"Trailer 1"},
	{"Previon"},
	{"Coach"},
	{"Cabbie"},
	{"Stallion"},
	{"Rumpo"},
	{"RC Bandit"},
	{"Romero"},
	{"Packer"},
	{"Monster"},
	{"Admiral"},
	{"Squalo"},
	{"Seasparrow"},
	{"Pizzaboy"},
	{"Tram"},
	{"Trailer 2"},
	{"Turismo"},
	{"Speeder"},
	{"Reefer"},
	{"Tropic"},
	{"Flatbed"},
	{"Yankee"},
	{"Caddy"},
	{"Solair"},
	{"Berkley's RC Van"},
	{"Skimmer"},
	{"PCJ-600"},
	{"Faggio"},
	{"Freeway"},
	{"RC Baron"},
	{"RC Raider"},
	{"Glendale"},
	{"Oceanic"},
	{"Sanchez"},
	{"Sparrow"},
	{"Patriot"},
	{"Quad"},
	{"Coastguard"},
	{"Dinghy"},
	{"Hermes"},
	{"Sabre"},
	{"Rustler"},
	{"ZR-350"},
	{"Walton"},
	{"Regina"},
	{"Comet"},
	{"BMX"},
	{"Burrito"},
	{"Camper"},
	{"Marquis"},
	{"Baggage"},
	{"Dozer"},
	{"Maverick"},
	{"News Chopper"},
	{"Rancher"},
	{"FBI Rancher"},
	{"Virgo"},
	{"Greenwood"},
	{"Jetmax"},
	{"Hotring"},
	{"Sandking"},
	{"Blista Compact"},
	{"Police Maverick"},
	{"Boxville"},
	{"Benson"},
	{"Mesa"},
	{"RC Goblin"},
	{"Hotring Racer A"},
	{"Hotring Racer B"},
	{"Bloodring Banger"},
	{"Rancher"},
	{"Super GT"},
	{"Elegant"},
	{"Journey"},
	{"Bike"},
	{"Mountain Bike"},
	{"Beagle"},
	{"Cropdust"},
	{"Stunt"},
	{"Tanker"},
	{"Roadtrain"},
	{"Nebula"},
	{"Majestic"},
	{"Buccaneer"},
	{"Shamal"},
	{"Hydra"},
	{"FCR-900"},
	{"NRG-500"},
	{"HPV1000"},
	{"Cement Truck"},
	{"Tow Truck"},
	{"Fortune"},
	{"Cadrona"},
	{"FBI Truck"},
	{"Willard"},
	{"Forklift"},
	{"Tractor"},
	{"Combine"},
	{"Feltzer"},
	{"Remington"},
	{"Slamvan"},
	{"Blade"},
	{"Freight"},
	{"Streak"},
	{"Vortex"},
	{"Vincent"},
	{"Bullet"},
	{"Clover"},
	{"Sadler"},
	{"Firetruck LA"},
	{"Hustler"},
	{"Intruder"},
	{"Primo"},
	{"Cargobob"},
	{"Tampa"},
	{"Sunrise"},
	{"Merit"},
	{"Utility"},
	{"Nevada"},
	{"Yosemite"},
	{"Windsor"},
	{"Monster A"},
	{"Monster B"},
	{"Uranus"},
	{"Jester"},
	{"Sultan"},
	{"Stratum"},
	{"Elegy"},
	{"Raindance"},
	{"RC Tiger"},
	{"Flash"},
	{"Tahoma"},
	{"Savanna"},
	{"Bandito"},
	{"Freight Flat"},
	{"Streak Carriage"},
	{"Kart"},
	{"Mower"},
	{"Duneride"},
	{"Sweeper"},
	{"Broadway"},
	{"Tornado"},
	{"AT-400"},
	{"DFT-30"},
	{"Huntley"},
	{"Stafford"},
	{"BF-400"},
	{"Newsvan"},
	{"Tug"},
	{"Trailer 3"},
	{"Emperor"},
	{"Wayfarer"},
	{"Euros"},
	{"Hotdog"},
	{"Club"},
	{"Freight Carriage"},
	{"Trailer 3"},
	{"Andromada"},
	{"Dodo"},
	{"RC Cam"},
	{"Launch"},
	{"Police Car (LSPD)"},
	{"Police Car (SFPD)"},
	{"Police Car (LVPD)"},
	{"Police Ranger"},
	{"Picador"},
	{"S.W.A.T. Van"},
	{"Alpha"},
	{"Phoenix"},
	{"Glendale"},
	{"Sadler"},
	{"Luggage Trailer A"},
	{"Luggage Trailer B"},
	{"Stair Trailer"},
	{"Boxville"},
	{"Farm Plow"},
	{"Utility Trailer"}
};

new gPlayerLogged[MAX_PLAYERS];
new gPlayerLogTries[MAX_PLAYERS];

new SkinState;
new Float:PlayerCruiseSpeed[MAX_PLAYERS];
new Float:PlayerHeadingAngle[MAX_PLAYERS];
new CCKey = KEY_ACTION;

new TAXI[9];

new RandomSkins[38] = { 1, 2, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43 };

new RandomSkinsAdmin[4] = { 163, 164, 165, 166 };

new RandomSkinsTaxi[6] = { 7 , 142 , 220 , 262 , 253 , 255 };

forward SendAdminMessage(color, string[]);
//forward DateProp(playerid);
forward OnPlayerLogin(playerid,password[]);
forward OnPlayerUpdate(playerid);
forward OnPlayerRegister(playerid, password[]);
forward Encrypt(string[]);

forward ini_GetKey( line[] );

forward CruiseControl(playerid);
forward TuneVehicle();
forward KickLog(string[]);
forward Spawn(playerid);
forward Timer();
forward kicktimer(playerid);
forward Givecashdelaytimer(playerid);
forward SetPlayerRandomSpawn(playerid);
forward SetupPlayerForClassSelection(playerid);
forward GameModeExitFunc();
forward SendPlayerFormattedText(playerid, const str[], define);
forward public SendAllFormattedText(playerid, const str[], define);

new BRAVURA1;
new BRAVURA2;
new TAMPA1;
new TAMPA2;
new CreatedCars[100];
new CreatedCar = 0;

new Float:gRandomPlayerSpawns[3][4] = {
{2833.4421,1265.7426,10.7773,88.7498},
{2833.4421,1265.7426,10.7773,88.7498},
{2833.4421,1265.7426,10.7773,88.7498}
};

new gActivePlayers[MAX_PLAYERS];
//new gLastGaveCash[MAX_PLAYERS];


main()
{
		print("\n");
		print("\n");
		print("\n");
		print("\n");
		print("\n");
		print("\n");
		print("\n");
		print("\n");
		print("\n");
		print("\n");
		print("\n");
		print("\n");
		print("\n");
		print("\n");
		print("\n");
		print("\n");
		print("\n");
		print("\n");
		print("\n");
		print("\n");
		print("\n");
		print("\n");
		print("\n");
		print("\n");
}

public OnPlayerRequestSpawn(playerid)
{
	return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid)
{

}

public Timer()
{
	SetWeather(11);
	SetWorldTime(13);
}

public kicktimer(playerid)
{
	if(gPlayerLogged[playerid] == 1)
 	{
 	return 1;
 	}
	else if(gPlayerLogged[playerid] == 0)
 	{
	SendClientMessage(playerid, COLOR_WHITE, "Zostales wyrzucony z serwera, pamietaj: masz 30 sekund by sie zalogowac po dolonczeniu na serwer");
	Kick(playerid);
	return 1;
 }
	return 0;
}



public OnPlayerConnect(playerid)
{
	new plname[MAX_PLAYER_NAME];
	new string[MAX_PLAYER_NAME];
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
	SendClientMessage(playerid, COLOR_WHITE, "         ");
//	SendClientMessage(playerid, COLOR_GREEN, "Wpisz '/pomoc' by zobaczyć listę dostępnych komend.");

	gPlayerLogTries[playerid] = 0;
	PlayerInfo[playerid][pSHealth] = 0.0;
	PlayerInfo[playerid][pHealth] = 50.0;
	PlayerInfo[playerid][pPos_x] = 2246.6;
	PlayerInfo[playerid][pPos_y] = -1161.9;
	PlayerInfo[playerid][pPos_z] = 1029.7;
	PlayerInfo[playerid][pAdmin] = 0;
	PlayerInfo[playerid][pCash] = dollah;
	GivePlayerMoney(playerid,PlayerInfo[playerid][pCash]);
	PlayerInfo[playerid][pReg] = 0;
	PlayerInfo[playerid][pAdjustable] = 0; //onplayerconnect
	ConsumingMoney[playerid] = 0;
	CurrentMoney[playerid] = 0;

	SetPlayerColor(playerid,COLOR_GRAD2);
	GetPlayerName(playerid, plname, sizeof(plname));
	format(string, sizeof(string), "%s.ini", plname);
	if(fexist(string))
	{
		gPlayerAccount[playerid] = 1;
		SendClientMessage(playerid, COLOR_GREEN, "Masz 30 sekund by sie zalogowac, wpisujac /zaloguj [haslo]");
  		SetTimerEx("kicktimer", 30000, false, "playerid", playerid);
		return 1;
	}
	else
	{
		gPlayerAccount[playerid] = 0;
		SendClientMessage(playerid, COLOR_GREEN, "Nie posiadasz konta. Zarejestruj sie komenda /zarejestruj [haslo]");
		return 1;
	}
}

public OnPlayerDisconnect(playerid)
{
	gActivePlayers[playerid]--;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
	new string[256];
	new playermoney;
	new sendername[MAX_PLAYER_NAME];
	new giveplayer[MAX_PLAYER_NAME];
	new cmd[256];
	new giveplayerid, moneys, idx;

	cmd = strtok(cmdtext, idx);
    if (strcmp("/k", cmd, true) == 0)
    {
	/*	new tmp[256];
			tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))
		{
			SendClientMessage(playerid, COLOR_GRAD2, "WSKAZOWKA: /k [Kolor]");
			return 1;
		}*/
        new Color1[128];
    //    new Color2[128];
        new currentveh;
        Color1 = strtok(cmdtext, idx);
  //      Color2 = strrest(cmdtext, idx);
        currentveh = GetPlayerVehicleID(playerid);
        if (strval(Color1) > 255)
        {
           SendClientMessage(playerid, COLOR_RED, "Nie ma takiego koloru");
           return 1;
        }
   /*     if (strval(Color2) > 255)
        {
            SendClientMessage(playerid, COLOR_RED, "Nie ma takiego koloru");
            return 1;
        }*/
        else
        {
            ChangeVehicleColor(currentveh, strval(Color1), strval(Color1));
            return 1;
        }
    }



	if(strcmp(cmd, "/pomoc", true) == 0)
	{
		SendClientMessage(playerid, COLOR_LIGHTBLUE, "/v(name) /veh(id) /tempomat /skin /taxiskin /k");
		if(PlayerInfo[playerid][pAdmin] <= 1 && PlayerInfo[playerid][pAdmin] >= 1)
		{
			SendClientMessage(playerid, COLOR_RED, "/makeadmin ");//head
		}
		if(PlayerInfo[playerid][pAdmin] <= 2 && PlayerInfo[playerid][pAdmin] >= 1)
		{
			SendClientMessage(playerid, COLOR_RED, "/restart /ohelp ");//admin
		}
		if(PlayerInfo[playerid][pAdmin] <= 3 && PlayerInfo[playerid][pAdmin] >= 1)
		{
			SendClientMessage(playerid, COLOR_RED, "/kick /a");//moderator
		}
		SendClientMessage(playerid, COLOR_LIGHTBLUE, "---------------------------------------------");
	    return 1;
	}

   // 163, 164, 165, 166

	if (strcmp(cmd, "/zarejestruj", true) ==0 )
	{
	new tmp[256];
	    if(IsPlayerConnected(playerid))
	    {
	        if(gPlayerLogged[playerid] == 1)
			{
				SendClientMessage(playerid, COLOR_WHITE, "SERWER: Jestes juz zalogowany.");
				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, "Ta nazwa uzytkownika jest juz zajeta! Prosze wybrac inna.");
				fclose(hFile);
				return 1;
			}
	        new tmppass[64];
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp))
			{
				SendClientMessage(playerid, COLOR_GRAD1, "WSKAZOWKA: /zarejestruj [haslo]");
				return 1;
			}
			strmid(tmppass, tmp, 0, strlen(cmdtext), 255);
			Encrypt(tmppass);
			OnPlayerRegister(playerid,tmppass);
		}
		return 1;
	}
	
	if (strcmp(cmd, "/zaloguj", true) ==0 )
	{
	new tmp[256];
	    if(IsPlayerConnected(playerid))
	    {
	        new tmppass[64];
			if(gPlayerLogged[playerid] == 1)
			{
				SendClientMessage(playerid, COLOR_WHITE, "SERWER: Jestes juz zalogowany.");
				return 1;
			}
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp))
			{
				SendClientMessage(playerid, COLOR_GRAD1, "WSKAZOWKA: /zaloguj [haslo]");
				return 1;
			}
			strmid(tmppass, tmp, 0, strlen(cmdtext), 255);
			Encrypt(tmppass);
			OnPlayerLogin(playerid,tmppass);
			if (PlayerInfo[playerid][pAdmin] == 3)
			{
				SetPlayerColor(playerid,COLOR_RED);
			}
			if (PlayerInfo[playerid][pAdmin] == 2)
			{
				SetPlayerColor(playerid,COLOR_ORANGE);
			}
			if (PlayerInfo[playerid][pAdmin] == 1)
			{
				SetPlayerColor(playerid,COLOR_GREEN);
			}
		}
		return 1;
	}


	if(strcmp(cmd, "/dajadmina", true) == 0 || strcmp(cmd, "/makeadmin", true) == 0)
	{
	    if(IsPlayerConnected(playerid))
	    {
			new tmp[256];
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp))
			{
				SendClientMessage(playerid, COLOR_GRAD2, "WSKAZOWKA: /makeadmin [ID] [lewel]");
				SendClientMessage(playerid, COLOR_GRAD2, "1 = Moderator, 2 = Admin, 3 = Head Admin ");
				return 1;
			}
			new para1;
			new level;
			para1 = ReturnUser(tmp);
			tmp = strtok(cmdtext, idx);
			level = strval(tmp);
			if (PlayerInfo[playerid][pAdmin] >= 3 || IsPlayerAdmin(playerid))
			{
			    if(IsPlayerConnected(para1))
			    {
			        if(para1 != INVALID_PLAYER_ID)
			        {
						GetPlayerName(para1, giveplayer, sizeof(giveplayer));
						GetPlayerName(playerid, sendername, sizeof(sendername));
						PlayerInfo[para1][pAdmin] = level;
						printf("AdmCmd: %s promowal %s lewel %d admin.", sendername, giveplayer, level);
						format(string, sizeof(string), "   Zostałeś promowany na admina z lvl %d przez %s", level, sendername);
						SendClientMessage(para1, COLOR_LIGHTBLUE, string);
						format(string, sizeof(string), "   Dałeś %s %d lvl admina.", giveplayer,level);
						SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
					}
				}
			}
			else
			{
				SendClientMessage(playerid, COLOR_GRAD1, "   Nie jesteś uprawniony do użycia tej komendy!");
			}
		}
		return 1;
	}

	if(strcmp(cmd, "/bb", true) == 0)
	{
		SetPlayerPos(playerid, 2782.06201172,-2020.32910156,16.02968979);
	}
	if(strcmp(cmd, "/taxiskin", true) == 0)
	{
		new rSkinTaxi = random( sizeof( RandomSkinsTaxi ) );
		SetPlayerSkin( playerid, RandomSkinsTaxi[ rSkinTaxi ] );
		return 1;
	}

	if(strcmp(cmd, "/online", true) == 0)
	{
		new tmp[256];
		tmp = strtok(cmdtext, idx);
		if(IsPlayerAdmin(playerid))
		{
			giveplayerid = ReturnUser(tmp);
			if(IsPlayerConnected(giveplayerid))
			{
			    if(giveplayerid != INVALID_PLAYER_ID)
			    {
				    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));



				new rSkinAdmin = random( sizeof( RandomSkinsAdmin ) );
				SetPlayerSkin( playerid, RandomSkinsAdmin[ rSkinAdmin ] );

				format(string, sizeof(string), "Administrator: %s jest na sluzbie.",sendername);
				SendClientMessageToAll(COLOR_LIGHTBLUE, string);
			    return 1;
				}
			}
		}
	}

	if(strcmp(cmd, "/tempomat", true) == 0)
	{
		SendClientMessage(playerid, COLOR_GREEN, "[INFO] Tempomat = Utrzymuje stalą prędkość");
		SendClientMessage(playerid, COLOR_GREEN, "W pojeździe: przytrzymaj lewy CTRL by aktywować tempomat...");
		SendClientMessage(playerid, COLOR_GREEN, "...puść lewy ctrl lub wciśnij spacje by dezaktywować");
	    return 1;
	}
	if(strcmp(cmd, "/skin", true) == 0)
	{
		new rSkin = random( sizeof( RandomSkins ) );
		SetPlayerSkin( playerid, RandomSkins[ rSkin ] );
		if(SkinState == 0)
        {
			SendClientMessage(playerid, COLOR_YELLOW, "[INFO] Dostałeś nowy losowy skin");
			SkinState = 1;
		}
	    return 1;
	}

	if(strcmp(cmd, "/veh", true) == 0)
	{
	    if(IsPlayerConnected(playerid))
	    {
			new tmp[256];
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp))
			{
				SendClientMessage(playerid, COLOR_GRAD2, "WSKAZOWKA: /veh [id wozu] [kolor1] [kolor2]");
				return 1;
			}
			new car;
			car = strval(tmp);
			if(car < 400 || car > 611) { SendClientMessage(playerid, COLOR_GREY, "   ID pojazdуw sa od 400 do 611 !"); return 1; }
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp))
			{
				SendClientMessage(playerid, COLOR_GRAD2, "WSKAZOWKA: /veh [id wozu] [kolor1] [kolor2]");
				return 1;
			}
			new color1;
			color1 = strval(tmp);
			if(color1 < 0 || color1 > 256) { SendClientMessage(playerid, COLOR_GREY, "   ID kolorow sa od 0 do 255 !"); return 1; }
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp))
			{
				SendClientMessage(playerid, COLOR_GRAD2, "WSKAZOWKA: /veh [id wozu] [kolor1] [kolor2]");
				return 1;
			}
			new color2;
			color2 = strval(tmp);
			if(color2 < 0 || color2 > 256) { SendClientMessage(playerid, COLOR_GREY, "   ID kolorow sa od 0 do 255 !"); return 1; }
			new Float:X,Float:Y,Float:Z;
			GetPlayerPos(playerid, X,Y,Z);
			new carid = CreateVehicle(car, X,Y,Z, 0.0, color1, color2, 60000);
			CreatedCars[CreatedCar] = carid;
			CreatedCar ++;
			format(string, sizeof(string), "   Zespawnowales pojazd %d.", carid);
			SendClientMessage(playerid, COLOR_GREY, string);
		}
		return 1;
	}

	if(strcmp(cmd, "/admin", true) == 0 || strcmp(cmd, "/a", true) == 0)
	{
	    if(IsPlayerConnected(playerid))
	    {
			GetPlayerName(playerid, sendername, sizeof(sendername));
			new length = strlen(cmdtext);
			while ((idx < length) && (cmdtext[idx] <= ' '))
			{
				idx++;
			}
			new offset = idx;
			new result[64];
			while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
			{
				result[idx - offset] = cmdtext[idx];
				idx++;
			}
			result[idx - offset] = EOS;
			if(!strlen(result))
			{
				SendClientMessage(playerid, COLOR_GRAD2, "WSKAZOWKA: (/a)dmin [tekst]");
				return 1;
			}
			if (PlayerInfo[playerid][pAdmin] == 3)
			{
				format(string, sizeof(string), "Head Admin %s: %s", sendername, result);
				SendAdminMessage(COLOR_BLUE, string);
			}
			if (PlayerInfo[playerid][pAdmin] == 2)
			{
				format(string, sizeof(string), "Admin %s: %s", sendername, result);
				SendAdminMessage(COLOR_BLUE, string);
			}
			if (PlayerInfo[playerid][pAdmin] == 1)
			{
				format(string, sizeof(string), "Moderator %s: %s", sendername, result);
				SendAdminMessage(COLOR_BLUE, string);
			}
			printf("Admin %s: %s", sendername, result);
		}
		return 1;
	}

	if(strcmp(cmd, "/kick", true) == 0)
	{
		if(IsPlayerAdmin(playerid))
		{
			if(IsPlayerConnected(playerid) || PlayerInfo[playerid][pAdmin] >= 1)
		    {
				new tmp[256];
		    	tmp = strtok(cmdtext, idx);
				if(!strlen(tmp))
				{
					SendClientMessage(playerid, COLOR_GRAD2, "WSKAZOWKA: /kick [ID] [powуd]");
					return 1;
				}
				giveplayerid = ReturnUser(tmp);
				if(IsPlayerConnected(giveplayerid))
				{
				    if(giveplayerid != INVALID_PLAYER_ID)
				    {
					    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
						GetPlayerName(playerid, sendername, sizeof(sendername));
						new length = strlen(cmdtext);
						while ((idx < length) && (cmdtext[idx] <= ' '))
						{
							idx++;
						}
						new offset = idx;
						new result[64];
						while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
						{
							result[idx - offset] = cmdtext[idx];
							idx++;
						}
						result[idx - offset] = EOS;
						if(!strlen(result))
						{
							SendClientMessage(playerid, COLOR_GRAD2, "WSKAZOWKA: /kick [ID] [powуd]");
							return 1;
						}
						new year, month,day;
						getdate(year, month, day);
						format(string, sizeof(string), "AdmCmd: %s został wyrzucony przez %s, Powуd: %s (%d-%d-%d)", giveplayer, sendername, (result),month,day,year);
						KickLog(string);

						format(string, sizeof(string), "Zostałes wyrzucony przez Administratora: %s, Powуd: %s", sendername, (result));
						SendClientMessage(giveplayerid, COLOR_LIGHTRED, string);

						Kick(giveplayerid);
						format(string, sizeof(string), "* %s został wyrzucony przez Administratora: %s, Powуd: %s", giveplayer, sendername, (result));
						SendClientMessageToAll(COLOR_LIGHTRED, string);
						return 1;
					}
				}
			}
		else
		{
			format(string, sizeof(string), "   %d nie jest aktywnym graczem.", giveplayerid);
			SendClientMessage(playerid, COLOR_GRAD1, string);
		}
		}
	}
	if (strcmp("/restart", cmdtext, true, 8 ) == 0)
	{
		if(IsPlayerConnected(playerid) || PlayerInfo[playerid][pAdmin] >= 2)

	    GameTextForAll("~g~RESTART ~r~SERVERA ",10000,5);
		SendRconCommand("reloadfs oed");
		SendRconCommand("reloadfs bb");
		SendRconCommand("gmx");
		SendRconCommand("reloadfs oed");
		SendRconCommand("reloadfs bb");
	    for(new i = 0; i < MAX_PLAYERS; i++) ClearChat(i);
	    return 1;
	}
	if(strcmp(cmd, "/v", true, 10) == 0)
	{

		new String[200];
		new tmp[256];
		new Float:x, Float:y, Float:z;

		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp)) return SendClientMessage(playerid, l_red, "Nie podałeś nazwy Auta");

		new vehicle = GetVehicleModelIDFromName(tmp);

		if(vehicle < 400 || vehicle > 611) return SendClientMessage(playerid, l_red, "Nie ma takiego Auta!");

		new Float:a;
		GetPlayerFacingAngle(playerid, a);
		GetPlayerPos(playerid, x, y, z);

		if(IsPlayerInAnyVehicle(playerid) == 1)
		{
			GetXYInFrontOfPlayer(playerid, x, y, 8);
		}
		else
		{
		    GetXYInFrontOfPlayer(playerid, x, y, 5);
		}

		new PlayersVehicle = CreateVehicle(vehicle, x, y, z, a+90, -1, -1, -1);
		LinkVehicleToInterior(PlayersVehicle, GetPlayerInterior(playerid));

		format(String, sizeof(String), "Ze spawnowałeś sobie %s", aVehicleNames[vehicle - 400]);
		SendClientMessage(playerid, l_green, String);
		return 1;
	}
 	if(strcmp(cmd, "/givecash", true) == 0) {
	    new tmp[256];
		tmp = strtok(cmdtext, idx);

		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "USAGE: /givecash [playerid] [amount]");
			return 1;
		}
		giveplayerid = strval(tmp);

		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "USAGE: /givecash [playerid] [amount]");
			return 1;
		}
 		moneys = strval(tmp);
		if (IsPlayerConnected(giveplayerid)) {
			GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
			GetPlayerName(playerid, sendername, sizeof(sendername));
			playermoney = GetPlayerMoney(playerid);
			if (moneys > 0 && playermoney >= moneys) {
				GivePlayerMoney(playerid, (0 - moneys));
				GivePlayerMoney(giveplayerid, moneys);
				format(string, sizeof(string), "You have sent %s(player: %d), $%d.", giveplayer,giveplayerid, moneys);
				SendClientMessage(playerid, COLOR_YELLOW, string);
				format(string, sizeof(string), "You have recieved $%d from %s(player: %d).", moneys, sendername, playerid);
				SendClientMessage(giveplayerid, COLOR_YELLOW, string);
				printf("%s(playerid:%d) has transfered %d to %s(playerid:%d)",sendername, playerid, moneys, giveplayer, giveplayerid);
			}
			else {
				SendClientMessage(playerid, COLOR_YELLOW, "Invalid transaction amount.");
			}
		}
		else {
				format(string, sizeof(string), "%d is not an active player.", giveplayerid);
				SendClientMessage(playerid, COLOR_YELLOW, string);
			}
		return 1;
	}
	return 1;
}

public OnPlayerSpawn(playerid)
{
	SetPlayerInterior(playerid,0);
	SetPlayerRandomSpawn(playerid);
	SetPlayerFacingAngle(playerid,88.7498);
    new rSkin = random( sizeof( RandomSkins ) );
    SetPlayerSkin( playerid, RandomSkins[ rSkin ] ); 
   // SetTimerEx("kicktimer", 30000, false, "playerid", playerid);
	return 1;
}

public SetPlayerRandomSpawn(playerid)
{
	new rand = random(sizeof(gRandomPlayerSpawns));
	SetPlayerPos(playerid, gRandomPlayerSpawns[rand][0], gRandomPlayerSpawns[rand][1], gRandomPlayerSpawns[rand][2]); 
    new rSkin = random( sizeof( RandomSkins ) );
    SetPlayerSkin( playerid, RandomSkins[ rSkin ] ); 
	return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    new playercash;
	if(killerid == INVALID_PLAYER_ID) {
        SendDeathMessage(INVALID_PLAYER_ID,playerid,reason);
        ResetPlayerMoney(playerid);
	} else {
	    	SendDeathMessage(killerid,playerid,reason);
			SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
			playercash = GetPlayerMoney(playerid);
			if (playercash > 0)  {
				GivePlayerMoney(killerid, playercash);
				ResetPlayerMoney(playerid);
			}
			else
			{
			}
     	}
 	return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
	SetPlayerCameraPos(playerid,2886.1438,922.0653,10.7500);
	SetPlayerCameraLookAt(playerid,2886.1438,915.0653,10.7500);
    SetTimerEx("Spawn", 10, false, "i", playerid);
	return 1;
}

public SetupPlayerForClassSelection(playerid)
{
	SpawnPlayer(playerid);
}

public GameModeExitFunc()
{
	GameModeExit();
	SendClientMessageToAll(0xFFFF00AA, "             ");
	SendClientMessageToAll(0xFFFF00AA, "             ");
	SendClientMessageToAll(0xFFFF00AA, "             ");
	SendClientMessageToAll(0xFFFF00AA, "             ");
	SendClientMessageToAll(0xFFFF00AA, "             ");
	SendClientMessageToAll(0xFFFF00AA, "             ");
	SendClientMessageToAll(0xFFFF00AA, "             ");
	SendClientMessageToAll(0xFFFF00AA, "             ");
	SendClientMessageToAll(0xFFFF00AA, "             ");
	SendClientMessageToAll(0xFFFF00AA, "             ");
	SendClientMessageToAll(0xFFFF00AA, "             ");
	SendClientMessageToAll(0xFFFF00AA, "             ");
	SendClientMessageToAll(0xFFFF00AA, "             ");
	SendClientMessageToAll(0xFFFF00AA, "             ");
	SendClientMessageToAll(0xFFFF00AA, "             ");
	SendClientMessageToAll(0xFFFF00AA, "             ");
	SendClientMessageToAll(0xFFFF00AA, "             ");
	SendClientMessageToAll(0xFFFF00AA, "             ");
	SendClientMessageToAll(0xFFFF00AA, "             ");
	SendClientMessageToAll(0xFFFF00AA, "             ");
	SendClientMessageToAll(0xFFFF00AA, "             ");
	SendClientMessageToAll(0xFFFF00AA, "             ");
	SendClientMessageToAll(0xFFFF00AA, "             ");
	SendClientMessageToAll(0xFFFF00AA, "             ");
	GameTextForAll("~g~RESTART ~r~SERVERA ",8000,5);
	new playerid;
	SetPlayerCameraPos(playerid,2886.1438,922.0653,10.7500);
	SetPlayerCameraLookAt(playerid,2886.1438,912.0653,10.7500);
}

public OnVehicleSpawn(vehicleid)
{
	SetTimer("TuneVehicle",1000,0);
}

public OnGameModeInit()
{

	SkinState = 0;
	BRAVURA1 = AddStaticVehicle(401,2764.9573,1278.4604,10.5295,270.1373,6,3);
	BRAVURA2 = AddStaticVehicle(401,2765.0388,1281.7991,10.4870,270.1576,154,154);

	TAMPA1 = AddStaticVehicle(549,2784.6060,1295.3046,10.5061,180.0664,43,43);
	TAMPA2 = AddStaticVehicle(549,2788.7888,1295.3291,10.5462,180.1065,3,3);
	TuneVehicle();

	SetGameModeText("Budowanie v1.0");
	UsePlayerPedAnims();
	ShowPlayerMarkers(1);
	ShowNameTags(1);
	EnableStuntBonusForAll(0);
	EnableTirePopping(1);
	AllowInteriorWeapons(1);

	TAXI[0] = AddStaticVehicle(420,1909.8508,2290.1101,10.6003,90.6418,6,1); // taxi
	TAXI[1] = AddStaticVehicle(420,1909.9154,2295.2786,10.6000,90.2000,6,1); // taxi
	TAXI[2] = AddStaticVehicle(420,1909.8638,2305.7234,10.5991,88.3554,6,1); // taxi
	TAXI[3] = AddStaticVehicle(420,1910.1022,2300.6621,10.5994,91.1927,6,1); // taxi
	TAXI[4] = AddStaticVehicle(420,1910.0012,2316.0735,10.5992,89.4640,6,1); // taxi
	TAXI[5] = AddStaticVehicle(438,1909.8601,2325.7739,10.8256,88.4350,6,76); // cab
	TAXI[6] = AddStaticVehicle(438,1909.6829,2320.6853,10.8259,90.5179,6,76); // cab
	TAXI[7] = AddStaticVehicle(437,1890.4349,2331.4309,10.9537,180.8282,79,7); // coach
	TAXI[8] = AddStaticVehicle(437,1890.7509,2306.0757,10.9536,180.1872,79,7); // coach

	AddStaticPickup(371, 15, 1710.3359,1614.3585,10.1191); //para
	AddStaticPickup(371, 15, 1964.4523,1917.0341,130.9375); //para
	AddStaticPickup(371, 15, 2055.7258,2395.8589,150.4766); //para
	AddStaticPickup(371, 15, 2265.0120,1672.3837,94.9219); //para
	AddStaticPickup(371, 15, 2265.9739,1623.4060,94.9219); //para

	SetTimer("Timer", 1000, 1);

	//naczepy
	AddStaticVehicle(435,890.2955,2263.0659,11.4453,114.8496,1,1); // trailer 1
	AddStaticVehicle(435,889.8826,2257.6775,11.4454,113.9580,1,1); // trailer 2
	AddStaticVehicle(435,889.9868,2253.0386,11.4453,115.7667,1,1); // trailer 3
	AddStaticVehicle(435,889.9776,2248.1206,11.4453,115.8035,1,1); // trailer 4
	AddStaticVehicle(435,890.0465,2243.0415,11.4453,115.4748,1,1); // trailer 5
	AddStaticVehicle(435,889.9307,2237.4255,11.4454,115.4793,1,1); // trailer 6
	AddStaticVehicle(435,889.9754,2232.3611,11.4452,115.6060,1,1); // trailer 7
	AddStaticVehicle(435,889.8818,2227.2524,11.4445,115.0341,1,1); // trailer 8
	AddStaticVehicle(435,890.0737,2222.1667,11.4459,115.9608,1,1); // trailer 9
	AddStaticVehicle(435,889.6500,2217.0618,11.4454,115.2409,1,1); // trailer 10
	AddStaticVehicle(435,889.5466,2211.7756,11.4447,114.9839,1,1); // trailer 11
	AddStaticVehicle(435,890.1449,2207.0774,11.4453,115.7074,1,1); // trailer 12
	AddStaticVehicle(435,890.0661,2202.0540,11.4444,114.5860,1,1); // trailer 13
	AddStaticVehicle(435,890.2903,2196.8833,11.4452,115.5385,1,1); // trailer 14
	AddStaticVehicle(435,890.1369,2191.7124,11.4461,114.9099,1,1); // trailer 15
	AddStaticVehicle(450,864.9286,2265.3818,11.4470,62.8804,1,1); // trailer drugi rzad 1
	AddStaticVehicle(450,864.8787,2259.9829,11.4462,62.3468,1,1); // trailer drugi rzad 2
	AddStaticVehicle(450,864.7479,2254.3064,11.4476,63.3529,1,1); // trailer drugi rzad 3
	AddStaticVehicle(450,864.3688,2249.1716,11.4471,64.7268,1,1); // trailer drugi rzad 4
	AddStaticVehicle(450,864.1197,2243.9722,11.4463,64.0886,1,1); // trailer drugi rzad 5
	AddStaticVehicle(450,864.3157,2238.5747,11.4468,63.9716,1,1); // trailer drugi rzad 6
	AddStaticVehicle(450,864.2667,2232.8206,11.4451,64.6235,1,1); // trailer drugi rzad 7
	AddStaticVehicle(584,864.2812,2227.5928,11.4457,64.5106,1,1); // trailer drugi rzad 8
	AddStaticVehicle(584,864.3719,2222.8984,11.4450,63.2765,1,1); // trailer drugi rzad 9
	AddStaticVehicle(584,864.0569,2217.9324,11.4475,65.4710,1,1); // trailer drugi rzad 10
	AddStaticVehicle(584,863.3739,2213.0132,11.4458,65.4707,1,1); // trailer drugi rzad 11
	AddStaticVehicle(584,863.5406,2207.5183,11.4457,65.4725,1,1); // trailer drugi rzad 12
	AddStaticVehicle(584,863.6143,2202.2527,11.4455,65.4723,1,1); // trailer drugi rzad 13
	AddStaticVehicle(584,863.7573,2196.2927,11.4457,65.0124,1,1); // trailer drugi rzad 14
	AddStaticVehicle(584,863.4696,2191.2573,11.4453,65.0125,1,1); // trailer drugi rzad 15


//basketball 2782.06201172,-2020.32910156,16.02968979
	CreateObject(14795,2795.14721680,-2005.15844727,17.69060135,0.00000000,0.00000000,0.00000000); //object(genint3_smashtv) (1)
	CreateObject(14795,2768.27197266,-2034.86376953,17.69060135,0.00000000,0.00000000,180.00000000); //object(genint3_smashtv) (2)
	CreateObject(4058,2781.45654297,-2020.84387207,52.52371979,0.00000000,180.00000000,356.00000000); //object(fighotblok2_lan) (1)
	CreateObject(945,2782.06201172,-2020.32910156,29.02968979,0.00000000,0.00000000,0.00000000); //object(ws_cf_lamps) (1)
	CreateObject(945,2773.81005859,-2020.53479004,29.02968979,0.00000000,0.00000000,0.00000000); //object(ws_cf_lamps) (2)
	CreateObject(945,2773.78906250,-2024.03417969,29.02968979,0.00000000,0.00000000,0.00000000); //object(ws_cf_lamps) (3)
	CreateObject(945,2773.83447266,-2016.28417969,29.02968979,0.00000000,0.00000000,0.00000000); //object(ws_cf_lamps) (4)
	CreateObject(945,2782.08398438,-2016.32849121,29.02968979,0.00000000,0.00000000,0.00000000); //object(ws_cf_lamps) (5)
	CreateObject(945,2782.03857422,-2024.07812500,29.02968979,0.00000000,0.00000000,0.00000000); //object(ws_cf_lamps) (6)
	CreateObject(945,2789.28808594,-2024.11706543,29.02968979,0.00000000,0.00000000,0.00000000); //object(ws_cf_lamps) (7)
	CreateObject(945,2789.31005859,-2020.36621094,29.02968979,0.00000000,0.00000000,0.00000000); //object(ws_cf_lamps) (8)
	CreateObject(945,2789.33300781,-2016.36621094,29.02968979,0.00000000,0.00000000,0.00000000); //object(ws_cf_lamps) (9)
	CreateObject(18553,2782.41772461,-2006.51831055,13.84663391,0.00000000,0.00000000,270.00000000); //object(count_ammundoor) (1)
//basketball


//objects

	CreateObject(7191,897.87060547,2212.79370117,11.79499054,0.00000000,0.00000000,0.00000000); //object(vegasnnewfence2b) (1)
	CreateObject(7191,897.88940430,2257.21752930,11.79499054,0.00000000,0.00000000,0.00000000); //object(vegasnnewfence2b) (2)
	CreateObject(7033,892.71813965,2292.33056641,14.33408356,0.00000000,0.00000000,88.00000000); //object(vgnhsegate02) (1)
	CreateObject(979,870.93542480,2260.11425781,10.66053295,0.00000000,0.00000000,269.00000000); //object(sub_roadleft) (1)
	CreateObject(979,870.75738525,2250.82177734,10.66053295,0.00000000,0.00000000,268.99475098); //object(sub_roadleft) (2)
	CreateObject(979,870.59112549,2241.49243164,10.66053295,0.00000000,0.00000000,268.99475098); //object(sub_roadleft) (3)
	CreateObject(979,870.44079590,2232.28955078,10.66053295,0.00000000,0.00000000,268.99475098); //object(sub_roadleft) (4)
	CreateObject(979,870.30871582,2223.10986328,10.66053295,0.00000000,0.00000000,268.99475098); //object(sub_roadleft) (5)
	CreateObject(979,870.14868164,2214.05322266,10.66053295,0.00000000,0.00000000,268.99475098); //object(sub_roadleft) (6)
	CreateObject(979,869.98980713,2204.89404297,10.66053295,0.00000000,0.00000000,268.99475098); //object(sub_roadleft) (7)
	CreateObject(979,869.85748291,2195.65966797,10.66053295,0.00000000,0.00000000,268.99475098); //object(sub_roadleft) (8)
	CreateObject(979,869.72558594,2186.45117188,10.66053295,0.00000000,0.00000000,268.99475098); //object(sub_roadleft) (9)
	CreateObject(7191,884.81469727,2172.91137695,11.79499054,0.00000000,0.00000000,322.00000000); //object(vegasnnewfence2b) (3)
	CreateObject(7191,853.17584229,2167.96215820,11.79499054,0.00000000,0.00000000,233.99829102); //object(vegasnnewfence2b) (4)
	CreateObject(7191,835.08367920,2202.91918945,11.79499054,0.00000000,0.00000000,179.99780273); //object(vegasnnewfence2b) (5)
	CreateObject(7191,835.19982910,2247.42626953,11.79499054,0.00000000,0.00000000,179.99450684); //object(vegasnnewfence2b) (6)
	CreateObject(7191,838.94458008,2290.84228516,11.79499054,0.00000000,0.00000000,169.99450684); //object(vegasnnewfence2b) (7)
	CreateObject(7191,864.63574219,2308.82446289,11.79499054,0.00000000,0.00000000,79.99438477); //object(vegasnnewfence2b) (8)
	CreateObject(979,875.57983398,2291.89990234,10.66053295,0.00000000,0.00000000,184.99475098); //object(sub_roadleft) (10)
	CreateObject(979,869.64465332,2269.17187500,10.66053295,0.00000000,0.00000000,286.99035645); //object(sub_roadleft) (11)
	CreateObject(979,867.36877441,2278.30810547,10.66053295,0.00000000,0.00000000,280.99035645); //object(sub_roadleft) (12)
	CreateObject(979,868.62756348,2287.05102539,10.66053295,0.00000000,0.00000000,242.98632812); //object(sub_roadleft) (13)
	CreateObject(979,870.93457031,2260.11425781,10.66053295,0.00000000,0.00000000,268.99475098); //object(sub_roadleft) (14)
	CreateObject(1237,902.87249756,2290.68627930,9.69153214,0.00000000,0.00000000,0.00000000); //object(strtbarrier01) (1)
	CreateObject(1237,905.63031006,2290.32861328,9.81216812,0.00000000,0.00000000,0.00000000); //object(strtbarrier01) (2)
	CreateObject(1237,907.90710449,2288.60278320,9.78820419,0.00000000,0.00000000,0.00000000); //object(strtbarrier01) (3)
	CreateObject(1237,909.66650391,2286.84326172,9.74995995,0.00000000,0.00000000,0.00000000); //object(strtbarrier01) (4)
	CreateObject(1237,911.30444336,2284.31762695,9.69507599,0.00000000,0.00000000,0.00000000); //object(strtbarrier01) (5)
	CreateObject(1237,912.54260254,2281.32373047,9.82031250,0.00000000,0.00000000,0.00000000); //object(strtbarrier01) (6)
	CreateObject(7191,912.61584473,2259.10351562,11.79499054,0.00000000,0.00000000,0.00000000); //object(vegasnnewfence2b) (9)
	CreateObject(7191,912.65234375,2226.37426758,11.79499054,0.00000000,0.00000000,0.00000000); //object(vegasnnewfence2b) (10)
    BRAMA = CreateObject(988,909.42535400,2203.85546875,10.67964840,0.00000000,0.00000000,0.00000000); //object(ws_apgate) (1)
    BRAMA2 = CreateObject(988,903.96264648,2203.84350586,10.67964840,0.00000000,0.00000000,0.00000000); //object(ws_apgate) (2)
	CreateObject(8407,899.55017090,2204.06250000,11.29568005,0.00000000,0.00000000,184.00000000); //object(carparkhut01_lvs) (1)
	CreateObject(979,865.40539551,2187.85961914,10.66053295,0.00000000,0.00000000,154.24475098); //object(sub_roadleft) (15)
	CreateObject(979,865.49420166,2193.13330078,10.66053295,0.00000000,0.00000000,154.24255371); //object(sub_roadleft) (16)
	CreateObject(979,865.58258057,2198.38281250,10.66053295,0.00000000,0.00000000,154.24255371); //object(sub_roadleft) (17)
	CreateObject(979,865.67468262,2203.88281250,10.66053295,0.00000000,0.00000000,154.24255371); //object(sub_roadleft) (18)
	CreateObject(979,865.76403809,2209.23144531,10.66053295,0.00000000,0.00000000,154.24255371); //object(sub_roadleft) (19)
	CreateObject(979,865.85632324,2214.73144531,10.66053295,0.00000000,0.00000000,154.24255371); //object(sub_roadleft) (20)
	CreateObject(979,865.93804932,2219.63085938,10.66053295,0.00000000,0.00000000,154.24255371); //object(sub_roadleft) (21)
	CreateObject(979,866.01751709,2224.38085938,10.66053295,0.00000000,0.00000000,154.24255371); //object(sub_roadleft) (22)
	CreateObject(979,866.10504150,2229.63085938,10.66053295,0.00000000,0.00000000,154.24255371); //object(sub_roadleft) (23)
	CreateObject(979,866.19293213,2234.88085938,10.66053295,0.00000000,0.00000000,154.24255371); //object(sub_roadleft) (24)
	CreateObject(979,866.28808594,2240.58593750,10.66053295,0.00000000,0.00000000,154.24255371); //object(sub_roadleft) (25)
	CreateObject(979,866.37579346,2245.78417969,10.66053295,0.00000000,0.00000000,154.24255371); //object(sub_roadleft) (26)
	CreateObject(979,866.46368408,2251.03027344,10.66053295,0.00000000,0.00000000,154.24255371); //object(sub_roadleft) (27)
	CreateObject(979,866.55462646,2256.48144531,10.66053295,0.00000000,0.00000000,154.24255371); //object(sub_roadleft) (28)
	CreateObject(979,866.64398193,2261.82910156,10.66053295,0.00000000,0.00000000,154.24255371); //object(sub_roadleft) (29)
	CreateObject(979,866.89886475,2267.24340820,10.66053295,0.00000000,0.00000000,154.24255371); //object(sub_roadleft) (30)
	CreateObject(979,890.18591309,2265.55493164,10.66053295,0.00000000,0.00000000,204.24255371); //object(sub_roadleft) (31)
	CreateObject(979,890.15863037,2260.30468750,10.66053295,0.00000000,0.00000000,204.24133301); //object(sub_roadleft) (32)
	CreateObject(979,890.13342285,2255.50195312,10.66053295,0.00000000,0.00000000,204.24133301); //object(sub_roadleft) (33)
	CreateObject(979,890.10797119,2250.58349609,10.66053295,0.00000000,0.00000000,204.24133301); //object(sub_roadleft) (34)
	CreateObject(979,890.08142090,2245.53125000,10.66053295,0.00000000,0.00000000,204.24133301); //object(sub_roadleft) (35)
	CreateObject(979,890.11694336,2240.28125000,10.66053295,0.00000000,0.00000000,204.24133301); //object(sub_roadleft) (36)
	CreateObject(979,890.15380859,2234.78125000,10.66053295,0.00000000,0.00000000,204.24133301); //object(sub_roadleft) (37)
	CreateObject(979,890.18579102,2230.03125000,10.66053295,0.00000000,0.00000000,204.24133301); //object(sub_roadleft) (38)
	CreateObject(979,890.22143555,2224.78125000,10.66053295,0.00000000,0.00000000,204.24133301); //object(sub_roadleft) (39)
	CreateObject(979,890.25488281,2219.78125000,10.66053295,0.00000000,0.00000000,204.24133301); //object(sub_roadleft) (40)
	CreateObject(979,890.28906250,2214.78125000,10.66053295,0.00000000,0.00000000,204.24133301); //object(sub_roadleft) (41)
	CreateObject(979,890.32385254,2209.68066406,10.66053295,0.00000000,0.00000000,204.24133301); //object(sub_roadleft) (42)
	CreateObject(979,890.35742188,2204.68066406,10.66053295,0.00000000,0.00000000,204.24133301); //object(sub_roadleft) (43)
	CreateObject(979,890.39147949,2199.67968750,10.66053295,0.00000000,0.00000000,204.24133301); //object(sub_roadleft) (44)
	CreateObject(979,890.42626953,2194.48046875,10.66053295,0.00000000,0.00000000,204.24133301); //object(sub_roadleft) (45)
	CreateObject(979,890.46166992,2189.23046875,10.66053295,0.00000000,0.00000000,204.24133301); //object(sub_roadleft) (46)
	CreateObject(966,899.66107178,2295.16821289,9.82031250,0.00000000,0.00000000,268.25000000); //object(bar_gatebar01) (1)
	SZLABAN = CreateObject(968,899.74218750,2295.07055664,10.69531441,0.00000000,90.25021362,88.50000000); //object(barrierturn) (1)
//objects






	return 1;
}

public SendPlayerFormattedText(playerid, const str[], define)
{
	new tmpbuf[256];
	format(tmpbuf, sizeof(tmpbuf), str, define);
	SendClientMessage(playerid, 0xFF004040, tmpbuf);
}

public SendAllFormattedText(playerid, const str[], define)
{
	new tmpbuf[256];
	format(tmpbuf, sizeof(tmpbuf), str, define);
	SendClientMessageToAll(0xFFFF00AA, tmpbuf);
}

public Spawn(playerid)
{
    SpawnPlayer(playerid);
}

public KickLog(string[])
{
	new entry[256];
	format(entry, sizeof(entry), "%s\n",string);
	new File:hFile;
	hFile = fopen("kick.log", io_append);
	fwrite(hFile, entry);
	fclose(hFile);
}

public OnPlayerEnterVehicle(playerid, vehicleid)
{
	if(vehicleid == TAXI[playerid])
	{
		if(GetPlayerSkin(playerid) == 299 || GetPlayerSkin(playerid) == 7 || GetPlayerSkin(playerid) == 142 || GetPlayerSkin(playerid) == 220 || GetPlayerSkin(playerid) == 262 || GetPlayerSkin(playerid) == 253 || GetPlayerSkin(playerid) == 255)
		{
			return 1;
		}
		else
		{
		    RemovePlayerFromVehicle(playerid);
		    SendClientMessage(playerid, COLOR_RED, "Nie jestes taxowkarzem!");
			return 1;
		}
	}
	return 0;
}



public TuneVehicle()
{
    AddVehicleComponent(BRAVURA1, 1019);// twin exhaust
    AddVehicleComponent(BRAVURA1, 1013);// Round fog lamps
    AddVehicleComponent(BRAVURA1, 1010);// 10x nitro
    AddVehicleComponent(BRAVURA1, 1006);// Roof scope
    AddVehicleComponent(BRAVURA1, 1001);// Spoiler Win
    AddVehicleComponent(BRAVURA1, 1017);// side skirts right
    AddVehicleComponent(BRAVURA1, 1007);// side skirts left
    AddVehicleComponent(BRAVURA1, 1074);// wheels mega
    AddVehicleComponent(BRAVURA1, 1087);// hydraulics
    AddVehicleComponent(BRAVURA1, 1086);// stereo boost

    AddVehicleComponent(BRAVURA2, 1019);// twin exhaust
    AddVehicleComponent(BRAVURA2, 1013);// Round fog lamps
    AddVehicleComponent(BRAVURA2, 1010);// 10x nitro
    AddVehicleComponent(BRAVURA2, 1006);// Roof scope
    AddVehicleComponent(BRAVURA2, 1001);// Spoiler Win
    AddVehicleComponent(BRAVURA2, 1017);// side skirts right
    AddVehicleComponent(BRAVURA2, 1007);// side skirts left
    AddVehicleComponent(BRAVURA2, 1074);// wheels mega
    AddVehicleComponent(BRAVURA2, 1087);// hydraulics
    AddVehicleComponent(BRAVURA2, 1086);// stereo boost

    AddVehicleComponent(TAMPA1, 1097);// 10x nitro

    AddVehicleComponent(TAMPA2, 1097);// 10x nitro
	return 1;
}

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 OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if(newkeys & KEY_HORN)
    {
             if(IsPlayerInRangeOfPoint(playerid, 10.0,899.74218750,2295.07055664,10.69531441))
        {
            if(GateState == 0)
            {
                MoveObject(SZLABAN, 899.74218750,2295.07055664,7.69531441,3);
                GateState = 1;
            }
            else if(GateState == 1)
            {
                MoveObject(SZLABAN, 899.74218750,2295.07055664,10.69531441,3);
                GateState = 0;
            }
        }
        if(IsPlayerInRangeOfPoint(playerid, 10.0,909.42535400,2203.85546875,10.67964840))
        {
            if(GateState2 == 0)
            {
                MoveObject(BRAMA, 911.71289062,2206.31689453,10.67964840,3);
                GateState2 = 1;
            }
            else if(GateState2 == 1)
            {
                MoveObject(BRAMA, 909.42535400,2203.85546875,10.67964840,3);
                GateState2 = 0;
            }
        }
        if(IsPlayerInRangeOfPoint(playerid, 10.0,903.96264648,2203.84350586,10.67964840))
        {
            if(GateState3 == 0)
            {
                MoveObject(BRAMA2, 902.28479004,2206.35546875,10.67964840,3);
                GateState3 = 1;
            }
            else if(GateState3 == 1)
            {
                MoveObject(BRAMA2, 903.96264648,2203.84350586,10.67964840,3);
                GateState3 = 0;
            }
        }

	}
	if ((newkeys & CCKey) && !(oldkeys & CCKey) && IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
	{
	    new vid = GetPlayerVehicleID(playerid);
		if (GetVehicleSpeed(vid) == 0) return false;
		new Float:x, Float:y, Float:z;
		GetVehicleVelocity(vid, x, y, z);
		GetVehicleZAngle(vid, PlayerHeadingAngle[playerid]);
		DistanceFlat(0, 0, x, y, PlayerCruiseSpeed[playerid]);
	    SetTimerEx("CruiseControl", 500, false, "d", playerid);
	}
	else if (PlayerCruiseSpeed[playerid] != 0.00 && (newkeys & KEY_HANDBRAKE))
	{
	    PlayerCruiseSpeed[playerid] = 0.00;
	}
	return 1;
}

public OnPlayerRegister(playerid, password[])
{
	if(IsPlayerConnected(playerid))
	{
			new string3[32];
			new playername3[MAX_PLAYER_NAME];
			GetPlayerName(playerid, playername3, sizeof(playername3));
			format(string3, sizeof(string3), "%s.ini", playername3);
			new File: hFile = fopen(string3, 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);
				PlayerInfo[playerid][pCash] = GetPlayerMoney(playerid);
				format(var, 32, "AdminLevel=%d\n",PlayerInfo[playerid][pAdmin]);fwrite(hFile, var);
				format(var, 32, "pSHealth=%.1f\n",PlayerInfo[playerid][pSHealth]);fwrite(hFile, var);
	            GetPlayerHealth(playerid,PlayerInfo[playerid][pHealth]);
				format(var, 32, "pHealth=%.1f\n",PlayerInfo[playerid][pHealth]);fwrite(hFile, var);
				format(var, 32, "Registered=%d\n",PlayerInfo[playerid][pReg]);fwrite(hFile, var);
				format(var, 32, "Money=%d\n",PlayerInfo[playerid][pCash]);fwrite(hFile, var);
				if ((PlayerInfo[playerid][pPos_x]==0.0 && PlayerInfo[playerid][pPos_y]==0.0 && PlayerInfo[playerid][pPos_z]==0.0))
				{
					PlayerInfo[playerid][pPos_x] = 1684.9;
					PlayerInfo[playerid][pPos_y] = -2244.5;
					PlayerInfo[playerid][pPos_z] = 13.5;
				}
				format(var, 32, "Pos_x=%.1f\n",PlayerInfo[playerid][pPos_x]);fwrite(hFile, var);
				format(var, 32, "Pos_y=%.1f\n",PlayerInfo[playerid][pPos_y]);fwrite(hFile, var);
				format(var, 32, "Pos_z=%.1f\n",PlayerInfo[playerid][pPos_z]);fwrite(hFile, var);
				format(var, 32, "Adjustable=%d\n",PlayerInfo[playerid][pAdjustable]);fwrite(hFile, var);
				fclose(hFile);
				SendClientMessage(playerid, COLOR_GREEN, "Konto zarejestrowane masz 30 sekund by sie zalogowac, /zaloguj [haslo].");
			}
	}
	return 1;
}

public OnPlayerUpdate(playerid)
{
	if(IsPlayerConnected(playerid))
	{
		if(gPlayerLogged[playerid])
		{
			new string3[32];
			new playername3[MAX_PLAYER_NAME];
			GetPlayerName(playerid, playername3, sizeof(playername3));
			format(string3, sizeof(string3), "%s.ini", playername3);
			new File: hFile = fopen(string3, io_write);
			if (hFile)
			{
				new var[32];
				format(var, 32, "Key=%s\n", PlayerInfo[playerid][pKey]);fwrite(hFile, var);
				PlayerInfo[playerid][pCash] = GetPlayerMoney(playerid);
				format(var, 32, "AdminLevel=%d\n",PlayerInfo[playerid][pAdmin]);fwrite(hFile, var);
				format(var, 32, "pSHealth=%.1f\n",PlayerInfo[playerid][pSHealth]);fwrite(hFile, var);
	            GetPlayerHealth(playerid,PlayerInfo[playerid][pHealth]);
				format(var, 32, "pHealth=%.1f\n",PlayerInfo[playerid][pHealth]);fwrite(hFile, var);
				format(var, 32, "Registered=%d\n",PlayerInfo[playerid][pReg]);fwrite(hFile, var);
				format(var, 32, "Money=%d\n",PlayerInfo[playerid][pCash]);fwrite(hFile, var);
				if ((PlayerInfo[playerid][pPos_x]==0.0 && PlayerInfo[playerid][pPos_y]==0.0 && PlayerInfo[playerid][pPos_z]==0.0))
				{
					PlayerInfo[playerid][pPos_x] = 1684.9;
					PlayerInfo[playerid][pPos_y] = -2244.5;
					PlayerInfo[playerid][pPos_z] = 13.5;
				}
				format(var, 32, "Pos_x=%.1f\n",PlayerInfo[playerid][pPos_x]);fwrite(hFile, var);
				format(var, 32, "Pos_y=%.1f\n",PlayerInfo[playerid][pPos_y]);fwrite(hFile, var);
				format(var, 32, "Pos_z=%.1f\n",PlayerInfo[playerid][pPos_z]);fwrite(hFile, var);
				format(var, 32, "Adjustable=%d\n",PlayerInfo[playerid][pAdjustable]);fwrite(hFile, var);
				fclose(hFile);
			}
		}
	}
	return 1;
}


/*public DateProp(playerid)
{
	new playername[MAX_PLAYER_NAME];
	GetPlayerName(playerid, playername, sizeof(playername));
	new curdate = getdate();
	for(new h = 0; h < sizeof(HouseInfo); h++)
	{
		if (strcmp(playername, HouseInfo[h][hOwner], true) == 0)
		{
			HouseInfo[h][hDate] = curdate;
			OnPropUpdate();
		}
	}
	return 1;
}*/

public OnPlayerLogin(playerid,password[])
{
	new tmp2[256];
    new string2[64];
	new playername2[MAX_PLAYER_NAME];
    GetPlayerName(playerid, playername2, sizeof(playername2));
	format(string2, sizeof(string2), "%s.ini", playername2);
	new File: UserFile = fopen(string2, 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 , "AdminLevel" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pAdmin] = strval( val ); }
			        if( strcmp( key , "pSHealth" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pSHealth] = floatstr( val ); }
			        if( strcmp( key , "pHealth" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pHealth] = floatstr( val ); }
    				if( strcmp( key , "Money" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pCash] = strval( val ); }
				    if( strcmp( key , "Pos_x" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pPos_x] = floatstr( val ); }
			        if( strcmp( key , "Pos_y" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pPos_y] = floatstr( val ); }
			        if( strcmp( key , "Pos_z" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pPos_z] = floatstr( val ); }
     				if( strcmp( key , "Registered" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pReg] = strval( val ); }
  					if( strcmp( key , "Adjustable" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pAdjustable] = strval( val ); }
			    }//end while
                fclose(UserFile);//close the file after everything has been read in the while
		}
		else
		{
			SendClientMessage(playerid, COLOR_WHITE, "SERWER: Nieprawidlowe haslo.");
	        fclose(UserFile);
	        gPlayerLogTries[playerid] += 1;
	        if(gPlayerLogTries[playerid] == 4) { Ban(playerid); }
	        return 1;
		}
		PlayerInfo[playerid][pAdjustable] = 0;
		ResetPlayerMoney(playerid);
		ConsumingMoney[playerid] = 1;
		GivePlayerMoney(playerid,PlayerInfo[playerid][pCash]);
		CurrentMoney[playerid] = PlayerInfo[playerid][pCash];
		if(PlayerInfo[playerid][pReg] == 0)
		{
			PlayerInfo[playerid][pSHealth] = 0.0;
			PlayerInfo[playerid][pHealth] = 50.0;
			PlayerInfo[playerid][pPos_x] = 2246.6;
			PlayerInfo[playerid][pPos_y] = -1161.9;
			PlayerInfo[playerid][pPos_z] = 1029.7;
			PlayerInfo[playerid][pReg] = 1;
			GivePlayerMoney(playerid, 5000);
		}
		format(string2, sizeof(string2), "SERWER: Witaj %s",playername2);
		SendClientMessage(playerid, COLOR_WHITE,string2);
		printf("%s has logged in.",playername2);
		if (PlayerInfo[playerid][pAdmin] > 0)
		{
			format(string2, sizeof(string2), "SERWER: Jestes zalogowany jako administrator poziomu %d.",PlayerInfo[playerid][pAdmin]);
			SendClientMessage(playerid, COLOR_WHITE,string2);
		}
		gPlayerLogged[playerid] = 1;
		SpawnPlayer(playerid);
		format(tmp2, sizeof(tmp2), "~w~Witaj ~n~~y~   %s", playername2);
	//	DateProp(playerid);
		GameTextForPlayer(playerid, tmp2, 5000, 1);
		SendClientMessage(playerid, COLOR_YELLOW, motd);
	}
	return 1;
}

GetVehicleSpeed(vehicleid)
{
	new Float:Vx, Float:Vy, Float:Vz;
	GetVehicleVelocity(vehicleid, Vx, Vy, Vz);
    new Float:rtn;
    rtn = floatsqroot(floatpower(Vx*100,2) + floatpower(Vy*100,2));
    rtn = floatsqroot(floatpower(rtn,2) + floatpower(Vz*100,2));
    return floatround(rtn);
}

DistanceFlat(Float:ax, Float:ay, Float:bx,Float:by, &Float:distance)
{
	distance = floatsqroot(floatpower(bx-ax,2)+floatpower(by-ay,2));
	return floatround(distance);
}

public CruiseControl(playerid)
{
    new vid = GetPlayerVehicleID(playerid);
    new Float:x, Float:y, Float:z;
	GetVehicleVelocity(vid, x, y, z);

	new keys, ud, lr;
	GetPlayerKeys(playerid, keys, ud, lr);

	new Float:angle, Float:heading, Float:speed;
	GetVehicleZAngle(vid, angle);
	GetVehicleHeadingAngle(vid, heading);
	DistanceFlat(0, 0, x, y, speed);


	if (!(keys & CCKey) || PlayerCruiseSpeed[playerid] == 0.00 || 
	GetPlayerState(playerid) != PLAYER_STATE_DRIVER ||
	(speed < 0.7 * PlayerCruiseSpeed[playerid]) || 
	z > 1 ||
	(floatabs(angle - heading) > 50 && floatabs(angle - heading) < 310))
	{             
	    PlayerCruiseSpeed[playerid] = 0.00;
		return false;
	}
	GetVehicleZAngle(vid, PlayerHeadingAngle[playerid]);
	GetXYVelocity(vid, x, y, PlayerCruiseSpeed[playerid]);
	SetVehicleVelocity(vid, x, y, z);
	return SetTimerEx("CruiseControl", 500, false, "d", playerid);
}

GetXYVelocity(vehicleid, &Float:x, &Float:y, Float:speed)
{
	new Float:a;
	x = 0.0;
	y = 0.0;
	GetVehicleZAngle(vehicleid, a);
	x += (speed * floatsin(-a, degrees));
	y += (speed * floatcos(-a, degrees));
}

GetAngleToXY(Float:X, Float:Y, Float:CurrentX, Float:CurrentY, &Float:Angle)
{
    Angle = atan2(Y-CurrentY, X-CurrentX);
    Angle = floatsub(Angle, 90.0);
    if(Angle < 0.0) Angle = floatadd(Angle, 360.0);
}

GetVehicleHeadingAngle(vehicleid, &Float:a)
{
	new Float:x, Float:y, Float:z;
	GetVehicleVelocity(vehicleid, x, y, z);
	GetAngleToXY(x, y, 0, 0, a);
}

stock ClearChat(playerid)
{
    for (new a = 0; a < 150; a++)
    {
        SendClientMessage(playerid, 0xFFFF00AA, " ");
    }
}

GetVehicleModelIDFromName(vname[])
{
	for(new i = 0; i < 211; i++)
	{
		if(strfind(aVehicleNames[i], vname, true) != -1)
		return i + 400;
	}
	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;
}

public SendAdminMessage(color, string[])
{
	for(new i = 0; i < MAX_PLAYERS; i++)
	{
		if(IsPlayerConnected(i))
		{
		    if(PlayerInfo[i][pAdmin] >= 1)
		    {
				SendClientMessage(i, color, string);
			}
		}
	}
}

stock GetXYInFrontOfPlayer(playerid, &Float:x2, &Float:y2, Float:distance)
{
	new Float:a;

	GetPlayerPos(playerid, x2, y2, a);
	GetPlayerFacingAngle(playerid, a);

	if(GetPlayerVehicleID(playerid))
	{
		GetVehicleZAngle(GetPlayerVehicleID(playerid), a);
	}

	x2 += (distance * floatsin(-a, degrees));
	y2 += (distance * floatcos(-a, degrees));
}
Reply
#2

maybe include the server log?
Reply
#3

Last log:

Код:
[00:50:48] Number of vehicle models: 8
[00:51:12] Incoming connection: 192.168.1.2:2588
[00:51:12] [join] Joe has joined the server (0:192.168.1.2)
[00:51:31] Joe has logged in.
[00:51:47] +----------------------------+
[00:51:47] | Object Editor Filterscript |
[00:51:47] |       by breadfish and     |
[00:51:47] |     Edited by [BR]Allan    |
[00:51:47] |         Revision  8        |
[00:51:47] |          UNLOADED!         |
[00:51:47] +----------------------------+
[00:51:47]   Filter script 'oed.amx' unloaded.
[00:51:47] +----------------------------+
[00:51:47] | Object Editor Filterscript |
[00:51:47] |       by breadfish and     |
[00:51:47] |     Edited by [BR]Allan    |
[00:51:47] |         Revision  8        |
[00:51:47] |           LOADED!          |
[00:51:47] +----------------------------+
[00:51:47]   Filterscript 'oed.amx' loaded.
[00:51:47]   Filter script 'bb.amx' unloaded.
[00:51:47]   Filterscript 'bb.amx' loaded.
[00:51:47] +----------------------------+
[00:51:47] | Object Editor Filterscript |
[00:51:47] |       by breadfish and     |
[00:51:47] |     Edited by [BR]Allan    |
[00:51:47] |         Revision  8        |
[00:51:47] |          UNLOADED!         |
[00:51:47] +----------------------------+
[00:51:47]   Filter script 'oed.amx' unloaded.
[00:51:47] +----------------------------+
[00:51:47] | Object Editor Filterscript |
[00:51:47] |       by breadfish and     |
[00:51:47] |     Edited by [BR]Allan    |
[00:51:47] |         Revision  8        |
[00:51:47] |           LOADED!          |
[00:51:47] +----------------------------+
[00:51:47]   Filterscript 'oed.amx' loaded.
[00:51:47]   Filter script 'bb.amx' unloaded.
[00:51:47]   Filterscript 'bb.amx' loaded.
[00:51:59] EnableTirePopping() function is removed.
[00:51:59] 

[00:51:59] 

[00:51:59] 

[00:51:59] 

[00:51:59] 

[00:51:59] 

[00:51:59] 

[00:51:59] 

[00:51:59] 

[00:51:59] 

[00:51:59] 

[00:51:59] 

[00:51:59] 

[00:51:59] 

[00:51:59] 

[00:51:59] 

[00:51:59] 

[00:51:59] 

[00:51:59] 

[00:51:59] 

[00:51:59] 

[00:51:59] 

[00:51:59] 

[00:51:59] 

[00:51:59] Number of vehicle models: 8
Reply
#4

When you join the server and dont register everything is fine you can leave the server and then come back, when you register you can play on the server but when you leave and then come back the server shuts down

Basically,when registered user joins server turns off
Reply
#5

Put some prints in the login code and the connect code (more callbacks if needed) and replicate the crash to narrow the problem down. I remember my server crashing when i tried to read/write files that don't exist.
Reply
#6

but when you register the file gets created, it all looks fine.

can you show me what you would change? can you change it there? the code is above
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)