Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Aleksi's Tdm Gamemode */
- #include <a_samp>
- #include <Zcmd>
- #include <Sscanf2>
- #include <YSI\y_ini>
- #if defined FILTERSCRIPT
- #else
- /* Color Defines */
- #define COLOR_GREEN 0x00BF06AA
- #define COLOR_PURPLE 0xFF00D0AA
- #define COLOR_YELLOW 0xFFFB00AA
- #define COLOR_WHITE 0xFFFFFFAA
- #define COLOR_RED 0xFF0000AA
- #define COLOR_GREY 0x9C9C9CAA
- /* Dialog Defines */
- #define DIALOG_REGISTER 1
- #define DIALOG_LOGIN 2
- #define DIALOG_SUCCESS_1 3
- #define DIALOG_SUCCESS_2 4
- #define PATH "/Users/%s.ini"
- #define DIALOG_RADIO 5
- #define DIALOG_MSG 6
- /* Killstreak */
- new KillStreak[MAX_PLAYERS];
- main()
- {
- print("\n----------------------------------");
- print(" TDM By Aleksi");
- print("----------------------------------\n");
- }
- #endif
- public OnGameModeInit()
- {
- UsePlayerPedAnims();
- SetGameModeText("TDM By Aleksi");
- AddPlayerClass(105,2495.2610,-1688.8726,14.0776,0,24,250,26,100,32,150); // Grove Spawn
- AddPlayerClass(106,2495.2610,-1688.8726,14.0776,0,24,250,25,100,34,150); // Grove Spawn
- AddPlayerClass(107,2495.2610,-1688.8726,14.0776,0,31,250,29,100,18,5); // Grove Spawn
- AddPlayerClass(102,2168.3401,-1673.5699,15.0831,0,24,250,26,100,32,150); // Ballas Spawn
- AddPlayerClass(103,2168.3401,-1673.5699,15.0831,0,24,250,25,100,34,150); // Ballas Spawn
- AddPlayerClass(104,2168.3401,-1673.5699,15.0831,0,31,250,29,100,18,5); // Ballas Spawn
- CreateVehicle(426,2507.8481,-1677.3844,13.2045,326.5124,252,252,30); // Grove Car 1
- CreateVehicle(426,2510.4846,-1668.3409,13.1943,7.0573,252,252,30); // Grove Car 2
- CreateVehicle(426,2501.7634,-1655.1450,13.2064,65.2911,252,252,30); // Grove Car 3
- CreateVehicle(560,2186.0813,-1664.8429,14.4467,347.6702,150,150,30); // Ballas Sultan 1
- CreateVehicle(560,2184.6890,-1671.2732,14.1460,347.8608,150,150,30); // Ballas Sultan 2
- CreateVehicle(560,2183.3474,-1677.6812,13.8477,348.8291,150,150,30); // Ballas Sultan 3
- return 1;
- }
- /* Forwards */
- forward LoadUser_data(playerid,name[],value[]);
- /* Enums */
- enum pInfo
- {
- pPass,
- pScore,
- pAdmin,
- pCash,
- pKills,
- pDeaths,
- pCookies
- }
- new PlayerInfo[MAX_PLAYERS][pInfo];
- /* Stocks */
- stock UserPath(playerid)
- {
- new string[128],playername[MAX_PLAYER_NAME];
- GetPlayerName(playerid,playername,sizeof(playername));
- format(string,sizeof(string),PATH,playername);
- return string;
- }
- /*Credits to Dracoblue*/
- stock udb_hash(buf[]) {
- new length=strlen(buf);
- new s1 = 1;
- new s2 = 0;
- new n;
- for (n=0; n<length; n++)
- {
- s1 = (s1 + buf[n]) % 65521;
- s2 = (s2 + s1) % 65521;
- }
- return (s2 << 16) + s1;
- }
- /* Stocks End*/
- public OnGameModeExit()
- {
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- SetPlayerPos(playerid,-1483.2732,2643.5129,58.7813);
- SetPlayerCameraPos(playerid,-1483.1754,2646.7676,58.7281);
- SetPlayerCameraLookAt(playerid,-1483.2732,2643.5129,58.7813);
- SetPlayerFacingAngle(playerid,0);
- if(classid == 0 || classid == 1 || classid == 2)
- {
- GameTextForPlayer(playerid,"~g~Grove",1000,5);
- }
- if(classid == 3 || classid == 4 || classid == 5)
- {
- GameTextForPlayer(playerid,"~p~Ballas",1000,5);
- }
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- if(fexist(UserPath(playerid)))
- {
- INI_ParseFile(UserPath(playerid),"LoadUser_%s", .bExtra = true, .extra = playerid);
- ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Type your password to login.","Login","Quit");
- }
- else
- {
- ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register","Type your password to register new account","Register","Quit");
- }
- new string[64], pName[MAX_PLAYER_NAME];
- GetPlayerName(playerid,pName,MAX_PLAYER_NAME);
- format(string,sizeof string,"%s has joined server!",pName);
- SendClientMessageToAll(COLOR_GREY,string);
- SendClientMessage(playerid,COLOR_WHITE,"Welcome to Aleksi's TDM Server");
- KillStreak[playerid] = 0;
- return 1;
- }
- public LoadUser_data(playerid,name[],value[])
- {
- INI_Open(UserPath(playerid));
- INI_Int("Password",PlayerInfo[playerid][pPass]);
- INI_Int("Score",PlayerInfo[playerid][pScore]);
- INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
- INI_Int("Cash",PlayerInfo[playerid][pCash]);
- INI_Int("Kills",PlayerInfo[playerid][pKills]);
- INI_Int("Deaths",PlayerInfo[playerid][pDeaths]);
- INI_Int("Cookies",PlayerInfo[playerid][pCookies]);
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- KillStreak[playerid] = 0;
- new string[64], pName[MAX_PLAYER_NAME];
- GetPlayerName(playerid,pName,MAX_PLAYER_NAME);
- format(string,sizeof string,"%s left from server!",pName);
- SendClientMessageToAll(COLOR_GREY,string);
- new INI:File = INI_Open(UserPath(playerid));
- INI_SetTag(File,"data");
- INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
- INI_WriteInt(File,"Score",PlayerInfo[playerid][pScore]);
- INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
- INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);
- INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
- INI_WriteInt(File,"Cookies",PlayerInfo[playerid][pCookies]);
- INI_Close(File);
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- new classid = GetPlayerSkin(playerid);
- if(classid == 105 || classid == 106 || classid == 107)
- {
- SetPlayerTeam(playerid,0);
- SetPlayerColor(playerid,COLOR_GREEN);
- }
- if(classid == 102 || classid == 103 || classid == 104)
- {
- SetPlayerTeam(playerid,1);
- SetPlayerColor(playerid,COLOR_PURPLE);
- }
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- if(IsPlayerConnected(killerid) && killerid != INVALID_PLAYER_ID)
- {
- KillStreak[killerid]++;
- }
- SendDeathMessage(killerid,playerid,reason);
- PlayerInfo[killerid][pKills]+= 1;
- SetPlayerWantedLevel(killerid, GetPlayerWantedLevel(killerid) + 1);
- PlayerInfo[killerid][pScore]+= 1;
- PlayerInfo[playerid][pDeaths]+= 1;
- SetPlayerWantedLevel(playerid,0);
- KillStreak[playerid] = 0;
- new str[256],PlayerName[MAX_PLAYER_NAME];
- GetPlayerName(killerid,PlayerName,sizeof(PlayerName));
- switch(KillStreak[killerid])
- {
- case 2:
- {
- format(str, sizeof(str), "~w~%s ~b~Doublekill!", PlayerName);
- GameTextForAll(str,4000,4);
- GivePlayerMoney(killerid,2000);
- SendClientMessage(killerid,COLOR_GREY,"$2000 for Doublekill");
- }
- case 3:
- {
- format(str, sizeof(str), "~w~%s ~b~Triplekill!", PlayerName);
- GameTextForAll(str,4000,4);
- GivePlayerMoney(killerid,5000);
- SendClientMessage(killerid,COLOR_GREY,"$5000 for Triplekill");
- }
- case 5:
- {
- format(str, sizeof(str), "~w~%s ~b~Multikill!", PlayerName);
- GameTextForAll(str,4000,4);
- GivePlayerMoney(killerid,10000);
- PlayerInfo[killerid][pCookies]+= 1;
- SendClientMessage(killerid,COLOR_GREY,"$10000 and 1 Cookie for Multikill");
- }
- case 10:
- {
- format(str, sizeof(str), "~w~%s ~b~Unstoppable ~w~10 ~b~Killstreak", PlayerName);
- GameTextForAll(str,4000,4);
- GivePlayerMoney(killerid,100000);
- PlayerInfo[killerid][pCookies]+= 5;
- SendClientMessage(killerid,COLOR_GREY,"$100,000 and 5 Cookie for 10 Killstreak");
- }
- }
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- return 1;
- }
- public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
- {
- return 1;
- }
- public OnPlayerExitVehicle(playerid, vehicleid)
- {
- return 1;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- return 1;
- }
- public OnPlayerEnterCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerLeaveCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerEnterRaceCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerLeaveRaceCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerRequestSpawn(playerid)
- {
- return 1;
- }
- public OnPlayerPickUpPickup(playerid, pickupid)
- {
- return 1;
- }
- public OnPlayerSelectedMenuRow(playerid, row)
- {
- return 1;
- }
- public OnPlayerExitedMenu(playerid)
- {
- return 1;
- }
- public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
- {
- return 1;
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- return 1;
- }
- public OnPlayerUpdate(playerid)
- {
- SetPlayerScore(playerid,PlayerInfo[playerid][pScore]);
- return 1;
- }
- public OnPlayerStreamIn(playerid, forplayerid)
- {
- return 1;
- }
- public OnPlayerStreamOut(playerid, forplayerid)
- {
- return 1;
- }
- public OnVehicleStreamIn(vehicleid, forplayerid)
- {
- return 1;
- }
- public OnVehicleStreamOut(vehicleid, forplayerid)
- {
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(dialogid == DIALOG_RADIO)
- {
- if(response)
- {
- if(listitem == 0)
- {
- PlayAudioStreamForPlayer(playerid,"http://yp.shoutcast.com/sbin/tunein-station.pls?id=616366");
- }
- if(listitem == 1)
- {
- PlayAudioStreamForPlayer(playerid,"http://yp.shoutcast.com/sbin/tunein-station.pls?id=1377200");
- }
- if(listitem == 2)
- {
- PlayAudioStreamForPlayer(playerid,"http://yp.shoutcast.com/sbin/tunein-station.pls?id=2057543");
- }
- if(listitem == 3)
- {
- PlayAudioStreamForPlayer(playerid,"http://yp.shoutcast.com/sbin/tunein-station.pls?id=29469");
- }
- if(listitem == 4)
- {
- PlayAudioStreamForPlayer(playerid,"http://yp.shoutcast.com/sbin/tunein-station.pls?id=695657");
- }
- if(listitem == 5)
- {
- StopAudioStreamForPlayer(playerid);
- }
- }
- }
- else if(dialogid == DIALOG_REGISTER)
- {
- if(!response) return Kick(playerid);
- if(response)
- {
- if(!strlen(inputtext)) return ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register","You enter invalid password.\nType your password to register","Register","Quit");
- new INI:File = INI_Open(UserPath(playerid));
- INI_SetTag(File,"data");
- INI_WriteInt(File,"Password",udb_hash(inputtext));
- INI_WriteInt(File,"Score",0);
- INI_WriteInt(File,"Admin",0);
- INI_WriteInt(File,"Cash",0);
- INI_WriteInt(File,"Kills",0);
- INI_WriteInt(File,"Deaths",0);
- INI_WriteInt(File,"Cookies",0);
- INI_Close(File);
- ShowPlayerDialog(playerid,DIALOG_SUCCESS_1,DIALOG_STYLE_MSGBOX,"Register","Successfully registered new account! Relog to save your stats!","Ok","");
- }
- }
- else if(dialogid == DIALOG_LOGIN)
- {
- if(!response) return Kick(playerid);
- if(response)
- {
- if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
- {
- INI_ParseFile(UserPath(playerid),"LoadUser_%s", .bExtra = true, .extra = playerid);
- GivePlayerMoney(playerid,PlayerInfo[playerid][pCash]);
- ShowPlayerDialog(playerid,DIALOG_SUCCESS_2,DIALOG_STYLE_MSGBOX,"Login","You have successfully logged in!","Ok","");
- }
- else
- {
- ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","You have entered incorrect password.\nType Your password to login","Login","Quit");
- }
- return 1;
- }
- }
- else if(dialogid == DIALOG_MSG)
- {
- return 1;
- }
- return 1;
- }
- public OnPlayerClickPlayer(playerid, clickedplayerid, source)
- {
- return 1;
- }
- CMD:help(playerid,params[])
- {
- SendClientMessage(playerid,COLOR_YELLOW,"Help");
- SendClientMessage(playerid,COLOR_WHITE,"Type /Cmds to see player commands!");
- return 1;
- }
- CMD:cmds(playerid,params[])
- {
- SendClientMessage(playerid,COLOR_YELLOW,"Commands");
- SendClientMessage(playerid,COLOR_WHITE,"/kill /radio /stats");
- return 1;
- }
- CMD:kill(playerid,params[])
- {
- PlayerInfo[playerid][pDeaths]+= 1;
- SetPlayerHealth(playerid,0);
- SendClientMessage(playerid,COLOR_GREY,"You have commited suicide");
- return 1;
- }
- CMD:radio(playerid,params[])
- {
- ShowPlayerDialog(playerid,DIALOG_RADIO,DIALOG_STYLE_LIST,"Radio","1\n2\n3\n4\n5\nRadio Off","Select","Cancel");
- return 1;
- }
- CMD:stats(playerid,params[])
- {
- if(IsPlayerConnected(playerid))
- {
- new Kills = PlayerInfo[playerid][pKills];
- new Deaths = PlayerInfo[playerid][pDeaths];
- new Cookies = PlayerInfo[playerid][pCookies];
- new string[500];
- format(string,sizeof(string),"Kills: %d | Deaths: %d | Cookies: %d",Kills,Deaths,Cookies);
- ShowPlayerDialog(playerid,DIALOG_MSG,DIALOG_STYLE_MSGBOX,"Stats",string,"Ok","");
- }
- return 1;
- }
- CMD:adhelp(playerid,params[])
- {
- if(PlayerInfo[playerid][pAdmin] > 5)
- {
- SendClientMessage(playerid,COLOR_YELLOW,"Admin Commands");
- SendClientMessage(playerid,COLOR_WHITE,"/kick /ban");
- }
- else return SendClientMessage(playerid,COLOR_GREY,"You must be admin to use this command");
- return 1;
- }
- CMD:kick(playerid,params[])
- {
- new pid;
- if(PlayerInfo[playerid][pAdmin] > 5)
- {
- if(sscanf(params, "us[128]", pid, params[2])) return SendClientMessage(playerid, 0xFFFFFFFF, "/kick <id> <reason>");
- if(!IsPlayerConnected(pid)) return SendClientMessage(playerid, 0xFFFFFFFF, "This player is not connected");
- new adminname[MAX_PLAYER_NAME], paramname[MAX_PLAYER_NAME], string[180];
- GetPlayerName(pid, paramname, sizeof(paramname));
- GetPlayerName(playerid, adminname, sizeof(adminname));
- format(string, sizeof(string), "%s has been kicked by %s for: %s", paramname, adminname, params[2]);
- SendClientMessageToAll(COLOR_RED, string);
- Kick(pid);
- }
- else if(PlayerInfo[playerid][pAdmin] == 0) return SendClientMessage(playerid,COLOR_GREY,"You must be admin to use this command!");
- return 1;
- }
- CMD:ban(playerid,params[])
- {
- new pid;
- if(PlayerInfo[playerid][pAdmin] > 5)
- {
- if(sscanf(params, "us[128]", pid, params[2])) return SendClientMessage(playerid, 0xFFFFFFFF, "/ban <id> <reason>");
- if(!IsPlayerConnected(pid)) return SendClientMessage(playerid, 0xFFFFFFFF, "This player is not connected");
- new adminname[MAX_PLAYER_NAME], paramname[MAX_PLAYER_NAME], string[180];
- GetPlayerName(pid, paramname, sizeof(paramname));
- GetPlayerName(playerid, adminname, sizeof(adminname));
- format(string, sizeof(string), "%s has been kicked by %s for: %s", paramname, adminname, params[2]);
- SendClientMessageToAll(COLOR_RED, string);
- Ban(pid);
- }
- else if(PlayerInfo[playerid][pAdmin] == 0) return SendClientMessage(playerid,COLOR_GREY,"You must be admin to use this command!");
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment