Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <ini>
- #define DRIFT_MINKAT 10.0
- #define DRIFT_MAXKAT 90.0
- #define DRIFT_SPEED 30.0
- #define DIALOG_LOGIN 998
- #define DIALOG_REGISTER 999
- #define AccauntBD "players/%s.ini"
- #define COLOR_ORANGE 0xFF8000AA
- #define COLOR_RED 0xFF0000AA
- forward OnPlayerRegistered(playerid, password[]);
- forward OnPlayerLogged(playerid, password[]);
- forward OnPlayerSave(playerid);
- forward ShowPlayerRegisterDialog(playerid);
- forward ShowPlayerLoginDialog(playerid);
- forward LevelUpdate();
- forward ScoreUp();
- forward Drift();
- forward AngleUpdate();
- forward DriftCancellation(playerid);
- enum PlayerData
- {
- Level[50]
- };
- enum pInfo
- {
- pMoney,
- pScore
- };
- enum Float:Pos{ Float:sX,Float:sY,Float:sZ };
- new Text3D:Level3D[MAX_PLAYERS];
- new PlayerInfo[MAX_PLAYERS][pInfo];
- new PlayerInf[MAX_PLAYERS][PlayerData];
- new LevelStats[MAX_PLAYERS];
- new Text:level[11];
- new CashScoreOld;
- new Text:Textdraw0;
- new Text:Textdraw1;
- new DriftPointsNow[200];
- new PlayerDriftCancellation[200];
- new Float:ppos[200][3];
- new Float:SavedPos[MAX_PLAYERS][Pos];
- public OnFilterScriptInit()
- {
- SetTimer("AngleUpdate", 200, true);
- SetTimer("Drift", 200, true);
- Textdraw0 = TextDrawCreate(506.000000,96.000000,"~w~All ~g~Drifting~w~ score");
- TextDrawAlignment(Textdraw0,0);
- TextDrawBackgroundColor(Textdraw0,0x000000ff);
- TextDrawFont(Textdraw0,3);
- TextDrawLetterSize(Textdraw0,0.299999,1.000000);
- TextDrawColor(Textdraw0,0x00ff00ff);
- TextDrawSetOutline(Textdraw0,1);
- TextDrawSetProportional(Textdraw0,1);
- TextDrawSetShadow(Textdraw0,1);
- Textdraw1 = TextDrawCreate(498.000000,77.000000,"~g~0");
- TextDrawAlignment(Textdraw1,0);
- TextDrawBackgroundColor(Textdraw1,0x000000ff);
- TextDrawFont(Textdraw1,3);
- TextDrawLetterSize(Textdraw1,0.599999,2.200000);
- TextDrawColor(Textdraw1,0xffffffff);
- TextDrawSetOutline(Textdraw1,1);
- TextDrawSetProportional(Textdraw1,1);
- TextDrawSetShadow(Textdraw1,1);
- print("Levels Downloading");
- // ==================================================================== //
- level[0] = TextDrawCreate(515.000000,106.000000,"Drift level:~g~1");
- TextDrawAlignment(level[0],0);
- TextDrawBackgroundColor(level[0],0x000000ff);
- TextDrawFont(level[0],3);
- TextDrawLetterSize(level[0],0.299999,1.000000);
- TextDrawColor(level[0],0xffffffff);
- TextDrawSetOutline(level[0],1);
- TextDrawSetProportional(level[0],1);
- TextDrawSetShadow(level[0],1); //
- //
- level[1] = TextDrawCreate(515.000000,106.000000,"Drift level:~g~2");
- TextDrawAlignment(level[1],0);
- TextDrawBackgroundColor(level[1],0x000000ff);
- TextDrawFont(level[1],3);
- TextDrawLetterSize(level[1],0.299999,1.000000);
- TextDrawColor(level[1],0xffffffff);
- TextDrawSetOutline(level[1],1);
- TextDrawSetProportional(level[1],1);
- TextDrawSetShadow(level[1],1); //
- //
- level[2] = TextDrawCreate(515.000000,106.000000,"Drift level:~g~3");
- TextDrawAlignment(level[2],0);
- TextDrawBackgroundColor(level[2],0x000000ff);
- TextDrawFont(level[2],3);
- TextDrawLetterSize(level[2],0.299999,1.000000);
- TextDrawColor(level[2],0xffffffff);
- TextDrawSetOutline(level[2],1);
- TextDrawSetProportional(level[2],1);
- TextDrawSetShadow(level[2],1);
- //
- level[3] = TextDrawCreate(515.000000,106.000000,"Drift level:~g~4");
- TextDrawAlignment(level[3],0);
- TextDrawBackgroundColor(level[3],0x000000ff);
- TextDrawFont(level[3],3);
- TextDrawLetterSize(level[3],0.299999,1.000000);
- TextDrawColor(level[3],0xffffffff);
- TextDrawSetOutline(level[3],1);
- TextDrawSetProportional(level[3],1);
- TextDrawSetShadow(level[3],1); //
- //
- level[4] = TextDrawCreate(515.000000,106.000000,"Drift level:~g~5");
- TextDrawAlignment(level[4],0);
- TextDrawBackgroundColor(level[4],0x000000ff);
- TextDrawFont(level[4],3);
- TextDrawLetterSize(level[4],0.299999,1.000000);
- TextDrawColor(level[4],0xffffffff);
- TextDrawSetOutline(level[4],1);
- TextDrawSetProportional(level[4],1);
- TextDrawSetShadow(level[4],1);
- //
- level[5] = TextDrawCreate(515.000000,106.000000,"Drift level:~g~6");
- TextDrawAlignment(level[5],0);
- TextDrawBackgroundColor(level[5],0x000000ff);
- TextDrawFont(level[5],3);
- TextDrawLetterSize(level[5],0.299999,1.000000);
- TextDrawColor(level[5],0xffffffff);
- TextDrawSetOutline(level[5],1);
- TextDrawSetProportional(level[5],1);
- TextDrawSetShadow(level[5],1);
- //
- level[6] = TextDrawCreate(515.000000,106.000000,"Drift level:~g~7");
- TextDrawAlignment(level[6],0);
- TextDrawBackgroundColor(level[6],0x000000ff);
- TextDrawFont(level[6],3);
- TextDrawLetterSize(level[6],0.299999,1.000000);
- TextDrawColor(level[6],0xffffffff);
- TextDrawSetOutline(level[6],1);
- TextDrawSetProportional(level[6],1);
- TextDrawSetShadow(level[6],1);
- //
- level[7] = TextDrawCreate(515.000000,106.000000,"Drift level:~g~8");
- TextDrawAlignment(level[7],0);
- TextDrawBackgroundColor(level[7],0x000000ff);
- TextDrawFont(level[7],3);
- TextDrawLetterSize(level[7],0.299999,1.000000);
- TextDrawColor(level[7],0xffffffff);
- TextDrawSetOutline(level[7],1);
- TextDrawSetProportional(level[7],1);
- TextDrawSetShadow(level[7],1);
- level[8] = TextDrawCreate(515.000000,106.000000,"Drift level:~g~9");
- TextDrawAlignment(level[8],0);
- TextDrawBackgroundColor(level[8],0x000000ff);
- TextDrawFont(level[8],3);
- TextDrawLetterSize(level[8],0.299999,1.000000);
- TextDrawColor(level[8],0xffffffff);
- TextDrawSetOutline(level[8],1);
- TextDrawSetProportional(level[8],1);
- TextDrawSetShadow(level[8],1);
- level[9] = TextDrawCreate(515.000000,106.000000,"Drift level:~g~10");
- TextDrawAlignment(level[9],0);
- TextDrawBackgroundColor(level[9],0x000000ff);
- TextDrawFont(level[9],3);
- TextDrawLetterSize(level[9],0.299999,1.000000);
- TextDrawColor(level[9],0xffffffff);
- TextDrawSetOutline(level[9],1);
- TextDrawSetProportional(level[9],1);
- TextDrawSetShadow(level[9],1);
- level[10] = TextDrawCreate(515.000000,106.000000,"Drift level:~y~VIP");
- TextDrawAlignment(level[10],0);
- TextDrawBackgroundColor(level[10],0x000000ff);
- TextDrawFont(level[10],3);
- TextDrawLetterSize(level[10],0.299999,1.000000);
- TextDrawColor(level[10],0xffffffff);
- TextDrawSetOutline(level[10],1);
- TextDrawSetProportional(level[10],1);
- TextDrawSetShadow(level[10],1); //
- SetTimer("LevelUpdate",2000,1); //
- // ===================================================================== //
- new Max = GetMaxPlayers();
- for(new i=0; i<Max; i++)
- {
- Level3D[i] = Create3DTextLabel(" ",0xFFFFFFAA,0.000,0.000,-4.000,18.0,0,1);
- }
- return 1;
- }
- public OnPlayerDeath(playerid,killerid)
- {
- ScoreUp();
- if(IsPlayerConnected(killerid) && killerid != INVALID_PLAYER_ID)
- {
- new Score = GetPlayerMoney(killerid);
- if(Score >= 0 && Score < 20000) format(PlayerInf[killerid][Level],200,"{FFFFFF}*{00CCFF}Èãðîê{FFFFFF}*\n*Óðîâåíü: {00CCFF}1{FFFFFF}.*\n*{00CCFF}Íóá â äðèôòèíãå{FFFFFF}*");
- if(Score >= 20000 && Score < 50000) format(PlayerInf[killerid][Level],200,"{FFFFFF}*Èãðîê{FFFFFF}*\n*Óðîâåíü: {00CCFF}2{FFFFFF}.*\n*{00CCFF}Íîâè÷¸ÃÃ{FFFFFF}*");
- if(Score >= 50000 && Score < 80000) format(PlayerInf[killerid][Level],200,"{FFFFFF}*{00CCFF}Èãðîê{FFFFFF}*\n*Óðîâåíü: {00CCFF}3{FFFFFF}.*\n*{00CCFF}Íà÷èíàþùòé Äðèôòåð{FFFFFF}*");
- if(Score >= 80000 && Score < 120000) format(PlayerInf[killerid][Level],200,"{FFFFFF}*{00CCFF}Èãðîê{FFFFFF}*\n*Óðîâåíü: {00CCFF}4{FFFFFF}.*\n*{00CCFF}Ïðîæèâàþùèé{FFFFFF}*");
- if(Score >= 120000 && Score < 150000) format(PlayerInf[killerid][Level],200,"{FFFFFF}*{00CCFF}Èãðîê{FFFFFF}*\n*Óðîâåíü: {00CCFF}5{FFFFFF}.*\n*{00CCFF}Ñâîé{FFFFFF}*");
- if(Score >= 150000 && Score < 180000) format(PlayerInf[killerid][Level],200,"{FFFFFF}*{00CCFF}Èãðîê{FFFFFF}*\n*Óðîâåíü: {00CCFF}6{FFFFFF}.*\n*{00CCFF}Ïàõàí{FFFFFF}*");
- if(Score >= 180000 && Score < 200000) format(PlayerInf[killerid][Level],200,"{FFFFFF}*{00CCFF}*ViP*{FFFFFF}*\n*Óðîâåíü: {00CCFF}7{FFFFFF}.*\n*{00CCFF}Pro Drifter{FFFFFF}*");
- if(Score >= 200000 && Score < 250000) format(PlayerInf[killerid][Level],200,"{FFFFFF}*{00CCFF}*ViP*{FFFFFF}*\n*Óðîâåíü: {00CCFF}8{FFFFFF}.*\n*{00CCFF}ViP{FFFFFF}*");
- if(Score >= 250000 && Score < 270000) format(PlayerInf[killerid][Level],200,"{FFFFFF}*{00CCFF}*ViP*{FFFFFF}*\n*Óðîâåíü: {00CCFF}9{FFFFFF}.*\n*{00CCFF}Ãëîâàðü{FFFFFF}*");
- if(Score >= 270000 ) format(PlayerInf[killerid][Level],200,"{FFFFFF}*{00CCFF}*ViP*{FFFFFF}*\n*Óðîâåíü: {00CCFF}*10*{FFFFFF}.*\n*{00CCFF}Êîðîëü Äðèôòà{FFFFFF}*");
- Update3DTextLabelText(Level3D[killerid],0x00FF00FF,PlayerInf[killerid][Level]);
- }
- return 1;
- }
- public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
- {
- ScoreUp();
- new Score = GetPlayerMoney(playerid);
- if(Score >= 0 && Score < 20000) format(PlayerInf[playerid][Level],200,"{FFFFFF}*{00CCFF}Èãðîê{FFFFFF}*\n*Óðîâåíü: {00CCFF}1{FFFFFF}.*\n*{00CCFF}Íóá â äðèôòèíãå{FFFFFF}*");
- if(Score >= 20000 && Score < 50000) format(PlayerInf[playerid][Level],200,"{FFFFFF}*{00CCFF}Èãðîê{FFFFFF}*\n*Óðîâåíü: {00CCFF}2{FFFFFF}.*\n*{00CCFF}Íîâè÷¸ÃÃ{FFFFFF}*");
- if(Score >= 50000 && Score < 80000) format(PlayerInf[playerid][Level],200,"{FFFFFF}*{00CCFF}Èãðîê{FFFFFF}*\n*Óðîâåíü: {00CCFF}3{FFFFFF}.*\n*{00CCFF}Íà÷èíàþùòé Äðèôòåð{FFFFFF}*");
- if(Score >= 80000 && Score < 120000) format(PlayerInf[playerid][Level],200,"{FFFFFF}*{00CCFF}Èãðîê{FFFFFF}*\n*Óðîâåíü: {00CCFF}4{FFFFFF}.*\n*{00CCFF}Ïðîæèâàþùèé{FFFFFF}*");
- if(Score >= 120000 && Score < 150000) format(PlayerInf[playerid][Level],200,"{FFFFFF}*{00CCFF}Èãðîê{FFFFFF}*\n*Óðîâåíü: {00CCFF}5{FFFFFF}.*\n*{00CCFF}Ñâîé{FFFFFF}*");
- if(Score >= 150000 && Score < 180000) format(PlayerInf[playerid][Level],200,"{FFFFFF}*{00CCFF}Èãðîê{FFFFFF}*\n*Óðîâåíü: {00CCFF}6{FFFFFF}.*\n*{00CCFF}Ïàõàí{FFFFFF}*");
- if(Score >= 180000 && Score < 200000) format(PlayerInf[playerid][Level],200,"{FFFFFF}*{00CCFF}*ViP*{FFFFFF}*\n*Óðîâåíü: {00CCFF}7{FFFFFF}.*\n*{00CCFF}Pro Drifter{FFFFFF}*");
- if(Score >= 200000 && Score < 250000) format(PlayerInf[playerid][Level],200,"{FFFFFF}*{00CCFF}*ViP*{FFFFFF}*\n*Óðîâåíü: {00CCFF}8{FFFFFF}.*\n*{00CCFF}ViP{FFFFFF}*");
- if(Score >= 250000 && Score < 270000) format(PlayerInf[playerid][Level],200,"{FFFFFF}*{00CCFF}*ViP*{FFFFFF}*\n*Óðîâåíü: {00CCFF}9{FFFFFF}.*\n*{00CCFF}Ãëîâàðü{FFFFFF}*");
- if(Score >= 270000 ) format(PlayerInf[playerid][Level],200,"{FFFFFF}*{00CCFF}*ViP*{FFFFFF}*\n*Óðîâåíü: {00CCFF}*10*{FFFFFF}.*\n*{00CCFF}Êîðîëü Äðèôòà{FFFFFF}*");
- if(LevelStats[playerid] == 0) Attach3DTextLabelToPlayer(Level3D[playerid],playerid,0.0,0.0,0.47);
- Update3DTextLabelText(Level3D[playerid],0x00FF00FF,PlayerInf[playerid][Level]);
- LevelStats[playerid] = 1;
- return 1;
- }
- public OnPlayerExitVehicle(playerid, vehicleid)
- {
- ScoreUp();
- new Score = GetPlayerMoney(playerid);
- if(Score >= 0 && Score < 20000) format(PlayerInf[playerid][Level],200,"{FFFFFF}*{00CCFF}Èãðîê{FFFFFF}*\n*Óðîâåíü: {00CCFF}1{FFFFFF}.*\n*{00CCFF}Íóá â äðèôòèíãå{FFFFFF}*");
- if(Score >= 20000 && Score < 50000) format(PlayerInf[playerid][Level],200,"{FFFFFF}*{00CCFF}Èãðîê{FFFFFF}*\n*Óðîâåíü: {00CCFF}2{FFFFFF}.*\n*{00CCFF}Íîâè÷¸ÃÃ{FFFFFF}*");
- if(Score >= 50000 && Score < 80000) format(PlayerInf[playerid][Level],200,"{FFFFFF}*{00CCFF}Èãðîê{FFFFFF}*\n*Óðîâåíü: {00CCFF}3{FFFFFF}.*\n*{00CCFF}Íà÷èíàþùòé Äðèôòåð{FFFFFF}*");
- if(Score >= 80000 && Score < 120000) format(PlayerInf[playerid][Level],200,"{FFFFFF}*{00CCFF}Èãðîê{FFFFFF}*\n*Óðîâåíü: {00CCFF}4{FFFFFF}.*\n*{00CCFF}Ïðîæèâàþùèé{FFFFFF}*");
- if(Score >= 120000 && Score < 150000) format(PlayerInf[playerid][Level],200,"{FFFFFF}*{00CCFF}Èãðîê{FFFFFF}*\n*Óðîâåíü: {00CCFF}5{FFFFFF}.*\n*{00CCFF}Ñâîé{FFFFFF}*");
- if(Score >= 150000 && Score < 180000) format(PlayerInf[playerid][Level],200,"{FFFFFF}*{00CCFF}Èãðîê{FFFFFF}*\n*Óðîâåíü: {00CCFF}6{FFFFFF}.*\n*{00CCFF}Ïàõàí{FFFFFF}*");
- if(Score >= 180000 && Score < 200000) format(PlayerInf[playerid][Level],200,"{FFFFFF}*{00CCFF}*ViP*{FFFFFF}*\n*Óðîâåíü: {00CCFF}7{FFFFFF}.*\n*{00CCFF}Pro Drifter{FFFFFF}*");
- if(Score >= 200000 && Score < 250000) format(PlayerInf[playerid][Level],200,"{FFFFFF}*{00CCFF}*ViP*{FFFFFF}*\n*Óðîâåíü: {00CCFF}8{FFFFFF}.*\n*{00CCFF}ViP{FFFFFF}*");
- if(Score >= 250000 && Score < 270000) format(PlayerInf[playerid][Level],200,"{FFFFFF}*{00CCFF}*ViP*{FFFFFF}*\n*Óðîâåíü: {00CCFF}9{FFFFFF}.*\n*{00CCFF}Ãëîâàðü{FFFFFF}*");
- if(Score >= 270000 ) format(PlayerInf[playerid][Level],200,"{FFFFFF}*{00CCFF}*ViP*{FFFFFF}*\n*Óðîâåíü: {00CCFF}*10*{FFFFFF}.*\n*{00CCFF}Êîðîëü Äðèôòà{FFFFFF}*");
- if(LevelStats[playerid] == 0) Attach3DTextLabelToPlayer(Level3D[playerid],playerid,0.0,0.0,0.47);
- Update3DTextLabelText(Level3D[playerid],0x00FF00FF,PlayerInf[playerid][Level]);
- LevelStats[playerid] = 1;
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- TextDrawHideForPlayer(playerid,Textdraw0);
- TextDrawHideForPlayer(playerid,Textdraw1);
- ScoreUp();
- new Score = GetPlayerMoney(playerid);
- if(Score >= 0 && Score < 20000) format(PlayerInf[playerid][Level],200,"{FFFFFF}*{00CCFF}Èãðîê{FFFFFF}*\n*Óðîâåíü: {00CCFF}1{FFFFFF}.*\n*{00CCFF}Íóá â äðèôòèíãå{FFFFFF}*");
- if(Score >= 20000 && Score < 50000) format(PlayerInf[playerid][Level],200,"{FFFFFF}*{00CCFF}Èãðîê{FFFFFF}*\n*Óðîâåíü: {00CCFF}2{FFFFFF}.*\n*{00CCFF}Íîâè÷¸ÃÃ{FFFFFF}*");
- if(Score >= 50000 && Score < 80000) format(PlayerInf[playerid][Level],200,"{FFFFFF}*{00CCFF}Èãðîê{FFFFFF}*\n*Óðîâåíü: {00CCFF}3{FFFFFF}.*\n*{00CCFF}Íà÷èíàþùòé Äðèôòåð{FFFFFF}*");
- if(Score >= 80000 && Score < 120000) format(PlayerInf[playerid][Level],200,"{FFFFFF}*{00CCFF}Èãðîê{FFFFFF}*\n*Óðîâåíü: {00CCFF}4{FFFFFF}.*\n*{00CCFF}Ïðîæèâàþùèé{FFFFFF}*");
- if(Score >= 120000 && Score < 150000) format(PlayerInf[playerid][Level],200,"{FFFFFF}*{00CCFF}Èãðîê{FFFFFF}*\n*Óðîâåíü: {00CCFF}5{FFFFFF}.*\n*{00CCFF}Ñâîé{FFFFFF}*");
- if(Score >= 150000 && Score < 180000) format(PlayerInf[playerid][Level],200,"{FFFFFF}*{00CCFF}Èãðîê{FFFFFF}*\n*Óðîâåíü: {00CCFF}6{FFFFFF}.*\n*{00CCFF}Ïàõàí{FFFFFF}*");
- if(Score >= 180000 && Score < 200000) format(PlayerInf[playerid][Level],200,"{FFFFFF}*{00CCFF}*ViP*{FFFFFF}*\n*Óðîâåíü: {00CCFF}7{FFFFFF}.*\n*{00CCFF}Pro Drifter{FFFFFF}*");
- if(Score >= 200000 && Score < 250000) format(PlayerInf[playerid][Level],200,"{FFFFFF}*{00CCFF}*ViP*{FFFFFF}*\n*Óðîâåíü: {00CCFF}8{FFFFFF}.*\n*{00CCFF}ViP{FFFFFF}*");
- if(Score >= 250000 && Score < 270000) format(PlayerInf[playerid][Level],200,"{FFFFFF}*{00CCFF}*ViP*{FFFFFF}*\n*Óðîâåíü: {00CCFF}9{FFFFFF}.*\n*{00CCFF}Ãëîâàðü{FFFFFF}*");
- if(Score >= 270000 ) format(PlayerInf[playerid][Level],200,"{FFFFFF}*{00CCFF}*ViP*{FFFFFF}*\n*Óðîâåíü: {00CCFF}*10*{FFFFFF}.*\n*{00CCFF}Êîðîëü Äðèôòà{FFFFFF}*");
- if(LevelStats[playerid] == 0) Attach3DTextLabelToPlayer(Level3D[playerid],playerid,0.0,0.0,0.47);
- Update3DTextLabelText(Level3D[playerid],0x00FF00FF,PlayerInf[playerid][Level]);
- LevelStats[playerid] = 1;
- return 1;
- }
- Float:GetPlayerTheoreticAngle(i)
- {
- new Float:sin;
- new Float:dis;
- new Float:angle2;
- new Float:x,Float:y,Float:z;
- new Float:tmp3;
- new Float:tmp4;
- new Float:MindAngle;
- if(IsPlayerConnected(i)){
- GetPlayerPos(i,x,y,z);
- dis = floatsqroot(floatpower(floatabs(floatsub(x,ppos[i][0])),2)+floatpower(floatabs(floatsub(y,ppos[i][1])),2));
- if(IsPlayerInAnyVehicle(i))GetVehicleZAngle(GetPlayerVehicleID(i), angle2); else GetPlayerFacingAngle(i, angle2);
- if(x>ppos[i][0]){tmp3=x-ppos[i][0];}else{tmp3=ppos[i][0]-x;}
- if(y>ppos[i][1]){tmp4=y-ppos[i][1];}else{tmp4=ppos[i][1]-y;}
- if(ppos[i][1]>y && ppos[i][0]>x){
- sin = asin(tmp3/dis);
- MindAngle = floatsub(floatsub(floatadd(sin, 90), floatmul(sin, 2)), -90.0);
- }
- if(ppos[i][1]<y && ppos[i][0]>x){
- sin = asin(tmp3/dis);
- MindAngle = floatsub(floatadd(sin, 180), 180.0);
- }
- if(ppos[i][1]<y && ppos[i][0]<x){
- sin = acos(tmp4/dis);
- MindAngle = floatsub(floatadd(sin, 360), floatmul(sin, 2));
- }
- if(ppos[i][1]>y && ppos[i][0]<x){
- sin = asin(tmp3/dis);
- MindAngle = floatadd(sin, 180);
- }
- }
- if(MindAngle == 0.0){
- return angle2;
- } else
- return MindAngle;
- }
- public OnFilterScriptExit()
- {
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)//Ïàáëèê Ïðè âûáîðå ñêèíà
- {
- TextDrawHideForPlayer(playerid,Textdraw0);
- TextDrawHideForPlayer(playerid,Textdraw1);
- ScoreUp();
- new string[128];
- PlayerInfo[playerid][pMoney] = 0;
- PlayerInfo[playerid][pScore] = 0;
- if(GetPVarInt(playerid,"Login") == 0)
- {
- format(string,sizeof(string),AccauntBD,PlayerName(playerid));
- if(fexist(string)) // èùåì ôàéë èãðîêà
- {
- ShowPlayerLoginDialog(playerid); // åñëè îí åñòü îòêðûâàåì äèîëîã ëîãèíà
- }
- else
- {
- ShowPlayerRegisterDialog(playerid); // åñëè åãî íåò îòêðûâàåì äèîëîã ðåãèñòðàöèè
- }
- }
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- SetPVarInt(playerid,"Login",0);
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- OnPlayerSave(playerid); // ñîõðàíÿåò àêê èãðîêà ïðè âûõîäå ñ ñåðâåðà
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(dialogid == DIALOG_LOGIN) // äèàëîã ëîãèíà
- {
- if(!response) Kick(playerid);
- if(strlen(inputtext) == 0) return ShowPlayerLoginDialog(playerid);
- OnPlayerLogged(playerid, inputtext);
- return 1;
- }
- if(dialogid == DIALOG_REGISTER) // äèàëîã ðåãèñòðàöèè
- {
- if(!response) Kick(playerid);
- if(strlen(inputtext) == 0) return ShowPlayerRegisterDialog(playerid);
- OnPlayerRegistered(playerid, inputtext);
- return 1;
- }
- return 0;
- }
- public OnPlayerLogged(playerid, password[])
- {
- new string[128];
- format(string,sizeof(string),AccauntBD,PlayerName(playerid));
- new iniFile = ini_openFile(string);
- ini_getString(iniFile, "Password",string);
- if(strcmp(string,password, true, 10) == 0)
- {
- ini_getInteger(iniFile,"Money",PlayerInfo[playerid][pMoney]);
- ini_getInteger(iniFile,"Score",PlayerInfo[playerid][pScore]);
- ini_closeFile(iniFile);
- GivePlayerMoney(playerid,PlayerInfo[playerid][pMoney]);
- SetPlayerScore(playerid,PlayerInfo[playerid][pScore]);
- }
- else
- {
- ShowPlayerLoginDialog(playerid);
- SendClientMessage(playerid,COLOR_RED,"{FFFFFF}*Íåâåðíûé {00CCFF}ïàðîëü{FFFFFF}. Ïîïðîáóéòå åùå {00CCFF}ðàç{FFFFFF}.");
- ini_closeFile(iniFile);
- }
- return 1;
- }
- public OnPlayerRegistered(playerid, password[])
- {
- new IP[24],strdate[24],string[128];
- new year,month,day;
- getdate(year, month, day);
- GetPlayerIp(playerid, IP, sizeof(IP));
- format(string,sizeof(string),AccauntBD,PlayerName(playerid));
- new iniFile = ini_createFile(string);
- if(iniFile < 0)
- iniFile = ini_openFile(string);
- ini_setString(iniFile, "Password",password);
- format(strdate, sizeof(strdate), "%d/%d/%d",day,month,year);
- ini_setString(iniFile, "RegDate", strdate);
- ini_setString(iniFile, "IP",IP);
- ini_setInteger(iniFile,"Money",0);
- ini_setInteger(iniFile,"Score",0);
- ini_closeFile(iniFile);
- OnPlayerLogged(playerid,password);
- format(string,sizeof(string), "{FFFFFF}*Âû çàðåãèñòðèðîâàëèñü è {00CCFF}àâòîìàòè÷åñêè çàëîãèíèëèñü{FFFFFF}. Âàø ïàðîëü: {00CCFF}%s{FFFFFF}.",password);
- SendClientMessage(playerid,COLOR_ORANGE,string);
- GivePlayerMoney(playerid,10000);
- return 1;
- }
- public OnPlayerSave(playerid)
- {
- new string[128];
- format(string,sizeof(string),AccauntBD,PlayerName(playerid));
- new iniFile = ini_openFile (string);
- ini_setInteger(iniFile,"Money",GetPlayerMoney(playerid));
- ini_setInteger(iniFile,"Score",GetPlayerScore(playerid));
- ini_closeFile(iniFile);
- return 1;
- }
- public ShowPlayerRegisterDialog(playerid) // òóò èçìåíÿòü òî ÷òî ïèøåò èãðîêó åñëè îí ïåðâûé ðàç íà ñåðâåðå
- {
- new string[256];
- format(string,sizeof(string), "{FFFFFF}Ôîðìà Ðåãèñòðàöèè\n{00CCFF}*{FFFFFF}Âàø íèê {00CCFF}%s{FFFFFF}.\n{00CCFF}*{FFFFFF}Ââåäèòå ïàðîëü â {00CCFF}îêíî{FFFFFF}.",PlayerName(playerid));
- ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "{FFFFFF}..::{00CCFF}Ðåãèñòðàöèÿ{FFFFFF}::..", string, ".:Ðåãèñòð:.", ".:Îòìåíà:.");
- return 1;
- }
- public ShowPlayerLoginDialog(playerid) // òóò èçìåíÿòü òî ÷òî ïèøåò èãðîêó åñëè îí óæå çàðåãàí
- {
- SetPVarInt(playerid,"Login",1);
- new string[256];
- format(string,sizeof(string), "{FFFFFF}Ôîðìà Àâòîðèçàöèè\n{00CCFF}*{FFFFFF}Ââåäè ñâîé ïàðîëü {00CCFF}%s{FFFFFF}.\nÊîòîðûé òû íàïèñàë ïðè {00CCFF}Ðåãèñòðàöèè{FFFFFF}.",PlayerName(playerid));
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "{FFFFFF}..::{00CCFF}Ëîãèí{FFFFFF}::..", string, ".:Ëîãèí:.", ".:Îòìåíà:.");
- return 1;
- }
- public LevelUpdate()
- {
- for(new i=0; i<MAX_PLAYERS; i++)
- {
- TextDrawHideForPlayer(i,level[0]);
- TextDrawHideForPlayer(i,level[1]);
- TextDrawHideForPlayer(i,level[2]);
- TextDrawHideForPlayer(i,level[3]);
- TextDrawHideForPlayer(i,level[4]);
- TextDrawHideForPlayer(i,level[5]);
- TextDrawHideForPlayer(i,level[6]);
- TextDrawHideForPlayer(i,level[7]);
- TextDrawHideForPlayer(i,level[8]);
- TextDrawHideForPlayer(i,level[9]);
- TextDrawHideForPlayer(i,level[10]);
- new kill = GetPlayerMoney(i);
- if(kill >= 0 && kill <= 20000) { TextDrawShowForPlayer(i,level[0]); }
- else if(kill >= 20000 && kill <= 50000) { TextDrawShowForPlayer(i,level[1]); }
- else if(kill >= 50000 && kill <= 80000) { TextDrawShowForPlayer(i,level[2]); }
- else if(kill >= 80000 && kill <= 120000) { TextDrawShowForPlayer(i,level[3]); }
- else if(kill >= 120000 && kill <= 150000) { TextDrawShowForPlayer(i,level[4]); }
- else if(kill >= 150000 && kill <= 180000) { TextDrawShowForPlayer(i,level[5]); }
- else if(kill >= 180000 && kill <= 200000) { TextDrawShowForPlayer(i,level[6]); }
- else if(kill >= 200000 && kill <= 250000) { TextDrawShowForPlayer(i,level[7]); }
- else if(kill >= 250000 && kill <= 270000) { TextDrawShowForPlayer(i,level[8]); }
- else if(kill >= 270000 && kill <= 290000) { TextDrawShowForPlayer(i,level[9]); }
- else if(kill >= 300000) { TextDrawShowForPlayer(i,level[10]); }
- else { TextDrawShowForPlayer(i,level[0]); }
- }
- return 1;
- }
- public DriftCancellation(playerid){
- PlayerDriftCancellation[playerid] = 0;
- GameTextForPlayer(playerid, Split("~n~~n~~n~~n~~n~~n~~n~~n~~w~~w~Drifting Bonus:~b~ ", tostr(DriftPointsNow[playerid]), "~w~!"), 3000, 3);
- GivePlayerMoney(playerid, DriftPointsNow[playerid]);
- DriftPointsNow[playerid] = 0;
- }
- Float:ReturnPlayerAngle(playerid){
- new Float:Ang;
- if(IsPlayerInAnyVehicle(playerid))GetVehicleZAngle(GetPlayerVehicleID(playerid), Ang); else GetPlayerFacingAngle(playerid, Ang);
- return Ang;
- }
- public Drift(){
- new Float:Angle1, Float:Angle2, Float:BySpeed, s[256];
- new Float:Z;
- new Float:X;
- new Float:Y;
- new Float:SpeedX;
- for(new g=0;g<200;g++){
- GetPlayerPos(g, X, Y, Z);
- SpeedX = floatsqroot(floatadd(floatadd(floatpower(floatabs(floatsub(X,SavedPos[ g ][ sX ])),2),floatpower(floatabs(floatsub(Y,SavedPos[ g ][ sY ])),2)),floatpower(floatabs(floatsub(Z,SavedPos[ g ][ sZ ])),2)));
- Angle1 = ReturnPlayerAngle(g);
- Angle2 = GetPlayerTheoreticAngle(g);
- BySpeed = floatmul(SpeedX, 12);
- if(IsPlayerInAnyVehicle(g) && IsCar(GetPlayerVehicleID(g)) && floatabs(floatsub(Angle1, Angle2)) > DRIFT_MINKAT && floatabs(floatsub(Angle1, Angle2)) < DRIFT_MAXKAT && BySpeed > DRIFT_SPEED){
- if(PlayerDriftCancellation[g] > 0)KillTimer(PlayerDriftCancellation[g]);
- PlayerDriftCancellation[g] = 0;
- DriftPointsNow[g] += floatval( floatabs(floatsub(Angle1, Angle2)) * 3 * (BySpeed*0.1) )/10;
- PlayerDriftCancellation[g] = SetTimerEx("DriftCancellation", 3000, 0, "d", g);
- }
- if(DriftPointsNow[g] > 0){
- format(s, sizeof(s), "~n~~n~~n~~n~~n~~n~~n~~n~~w~Drifting Score: ~b~%d~w~!", DriftPointsNow[g]);
- GameTextForPlayer(g, s, 3000, 3);
- }
- SavedPos[ g ][ sX ] = X;
- SavedPos[ g ][ sY ] = Y;
- SavedPos[ g ][ sZ ] = Z;
- }
- }
- Split(s1[], s2[], s3[]=""){
- new rxx[256];
- format(rxx, 256, "%s%s%s", s1, s2, s3);
- return rxx;
- }
- tostr(int){
- new st[256];
- format(st, 256, "%d", int);
- return st;
- }
- public AngleUpdate(){
- for(new g=0;g<200;g++){
- new Float:x, Float:y, Float:z;
- if(IsPlayerInAnyVehicle(g))GetVehiclePos(GetPlayerVehicleID(g), x, y, z); else GetPlayerPos(g, x, y, z);
- ppos[g][0] = x;
- ppos[g][1] = y;
- ppos[g][2] = z;
- }
- }
- floatval(Float:val){
- new str[256];
- format(str, 256, "%.0f", val);
- return todec(str);
- }
- IsCar(model)
- {
- switch(model)
- {
- case 443:return 0;
- case 448:return 0;
- case 461:return 0;
- case 462:return 0;
- case 463:return 0;
- case 468:return 0;
- case 521:return 0;
- case 522:return 0;
- case 523:return 0;
- case 581:return 0;
- case 586:return 0;
- case 481:return 0;
- case 509:return 0;
- case 510:return 0;
- case 430:return 0;
- case 446:return 0;
- case 452:return 0;
- case 453:return 0;
- case 454:return 0;
- case 472:return 0;
- case 473:return 0;
- case 484:return 0;
- case 493:return 0;
- case 595:return 0;
- case 417:return 0;
- case 425:return 0;
- case 447:return 0;
- case 465:return 0;
- case 469:return 0;
- case 487:return 0;
- case 488:return 0;
- case 497:return 0;
- case 501:return 0;
- case 548:return 0;
- case 563:return 0;
- case 406:return 0;
- case 444:return 0;
- case 556:return 0;
- case 557:return 0;
- case 573:return 0;
- case 460:return 0;
- case 464:return 0;
- case 476:return 0;
- case 511:return 0;
- case 512:return 0;
- case 513:return 0;
- case 519:return 0;
- case 520:return 0;
- case 539:return 0;
- case 553:return 0;
- case 577:return 0;
- case 592:return 0;
- case 593:return 0;
- case 471:return 0;
- }
- return 1;
- }
- todec(str[]){ // By Luby
- return strval(str);
- }
- public ScoreUp()
- {
- new CashScore;
- new name[MAX_PLAYER_NAME];
- for(new i=0; i<MAX_PLAYERS; i++)
- {
- if (IsPlayerConnected(i))
- {
- GetPlayerName(i, name, sizeof(name));
- CashScore = GetPlayerMoney(i);
- SetPlayerScore(i, CashScore);
- if (CashScore > CashScoreOld)
- {
- CashScoreOld = CashScore;
- }
- }
- }
- }
- stock PlayerName(playerid) // ôóíêöèÿ óçíàþùàÿ èìå èãðîêà (àâòîðà íå çíàþ)
- {
- new name[MAX_PLAYER_NAME];
- GetPlayerName(playerid,name,sizeof(name));
- return name;
- }
Advertisement
Add Comment
Please, Sign In to add comment