Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- *=======================================================================*
- * *
- * *
- * Basic 'TDM' created by Grant, just a learning curve, don't hate. *
- * *
- * *
- *=======================================================================*
- */
- /*
- ============================================
- INCLUDES
- ============================================
- */
- #include <a_samp>
- #include <dini>
- #include <dudb>
- #include <sscanf2>
- #include <zcmd>
- #pragma unused ret_memcpy
- /*
- ============================================
- DEFINES
- ============================================
- */
- #define COLOR_GREEN 0x33AA33AA
- #define COLOR_RED 0xAA3333AA
- #define COLOR_YELLOW 0xFFFF00AA
- #define COLOR_ORANGE 0xEE9911FF
- #define COLOR_WHITE 0xFFFFFFAA
- #define COLOR_BLUE 0x0000BBAA
- #define COLOR_LIGHTBLUE 0x33CCFFAA
- #define DIALOG_REGISTER 0
- #define DIALOG_LOGIN 1
- #define GUN 1001
- #define DEVELOPER "Grantism"
- #define VERSION "1.0.A"
- /*
- ============================================
- ENUMS/PLAYER DATA
- ============================================
- */
- new logged[MAX_PLAYERS];
- new ClassID[MAX_PLAYERS];
- enum pInfo
- {
- AdminLevel,
- VLevel,
- cash,
- score,
- }
- new PlayerInfo[MAX_PLAYERS][pInfo];
- //forward SkipSpawn(playerid);
- /*
- ============================================
- STOCKS
- ============================================
- */
- stock LoadPlayer(playerid)
- {
- new name[MAX_PLAYER_NAME];
- new file[128];
- GetPlayerName(playerid, name, sizeof(name));
- format(file,sizeof(file),"/Users/%s.ini",name);
- if(!fexist(file))
- {
- ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Register", "Enter your desired password to register.", "Register", "");
- logged[playerid] = 0;
- }
- if(fexist(file))
- {
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Login", "Enter your password to login.", "Register", "");
- }
- return 1;
- }
- stock SavePlayer(playerid)
- {
- new file[128];
- new name[MAX_PLAYER_NAME];
- GetPlayerName(playerid, name, sizeof(name));
- format(file,sizeof(file),"/Users/%s.ini",name);
- if(dini_Exists(file))
- {
- dini_IntSet(file, "VLevel", PlayerInfo[playerid][VLevel]);
- dini_IntSet(file, "score", PlayerInfo[playerid][score]);
- dini_IntSet(file, "money", PlayerInfo[playerid][cash]);
- dini_IntSet(file, "AdminLevel",PlayerInfo[playerid][AdminLevel]);
- }
- logged[playerid] = 0;
- }
- stock GetName(playerid)
- {
- new Name[MAX_PLAYER_NAME];
- if(IsPlayerConnected(playerid))
- {
- GetPlayerName(playerid, Name, sizeof(Name));
- }
- else
- {
- Name = "Disconnected/Nothing";
- }
- return Name;
- }
- /*
- ============================================
- BEGIN SCRIPT
- ============================================
- */
- main()
- {
- printf("================================================================================");
- printf(" SCRIPT LOADING...");
- printf("================================================================================");
- printf(" TDM SCRIPT BY: %s, Has completed its loading period. ENJOY!", DEVELOPER);
- printf(" TDM SCRIPT VERSION: %s.", VERSION);
- printf("================================================================================");
- printf(" SCRIPT LOADED!");
- printf("================================================================================");
- }
- public OnGameModeInit()
- {
- // Don't use these lines if it's a filterscript
- SetGameModeText("TDM:1.0.a");
- AddPlayerClass(294, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
- AddPlayerClass(166, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
- ShowPlayerMarkers(1);
- ShowNameTags(1);
- UsePlayerPedAnims();
- EnableStuntBonusForAll(1);
- return 1;
- }
- public OnGameModeExit()
- {
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- if(logged[playerid] == 1)
- {
- SetPlayerPos(playerid,-1753.6743,885.2703,295.8750);
- SetPlayerCameraPos(playerid,-1753.6849,892.0016,295.8750);
- SetPlayerCameraLookAt(playerid,-1753.6743,885.2703,295.8750);
- SetPlayerFacingAngle(playerid,0.6323);
- //SetTimerEx("SkipSpawn",0,0,"i",playerid);
- ClassID[playerid] = classid;
- switch(classid)
- {
- case 0: GameTextForPlayer(playerid,"SKIN: 294",3000,4);
- case 1: GameTextForPlayer(playerid,"SKIN: 166",3000,4);
- }
- return 1;
- }
- return 0;
- }
- public OnPlayerConnect(playerid)
- {
- LoadPlayer(playerid);
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- SavePlayer(playerid);
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- return 1;
- }
- public OnVehicleSpawn(vehicleid)
- {
- return 1;
- }
- public OnVehicleDeath(vehicleid, killerid)
- {
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- if (strcmp("/mycommand", cmdtext, true, 10) == 0)
- {
- // Do something here
- return 1;
- }
- return 0;
- }
- public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
- {
- return 1;
- }
- public OnPlayerExitVehicle(playerid, vehicleid)
- {
- return 1;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- return 1;
- }
- public OnPlayerEnterCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerLeaveCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerEnterRaceCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerLeaveRaceCheckpoint(playerid)
- {
- return 1;
- }
- public OnRconCommand(cmd[])
- {
- return 1;
- }
- public OnPlayerRequestSpawn(playerid)
- {
- return 1;
- }
- public OnObjectMoved(objectid)
- {
- return 1;
- }
- public OnPlayerObjectMoved(playerid, objectid)
- {
- return 1;
- }
- public OnPlayerPickUpPickup(playerid, pickupid)
- {
- return 1;
- }
- public OnVehicleMod(playerid, vehicleid, componentid)
- {
- return 1;
- }
- public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
- {
- return 1;
- }
- public OnVehicleRespray(playerid, vehicleid, color1, color2)
- {
- return 1;
- }
- public OnPlayerSelectedMenuRow(playerid, row)
- {
- return 1;
- }
- public OnPlayerExitedMenu(playerid)
- {
- return 1;
- }
- public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
- {
- return 1;
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- return 1;
- }
- public OnRconLoginAttempt(ip[], password[], success)
- {
- return 1;
- }
- public OnPlayerUpdate(playerid)
- {
- return 1;
- }
- public OnPlayerStreamIn(playerid, forplayerid)
- {
- return 1;
- }
- public OnPlayerStreamOut(playerid, forplayerid)
- {
- return 1;
- }
- public OnVehicleStreamIn(vehicleid, forplayerid)
- {
- return 1;
- }
- public OnVehicleStreamOut(vehicleid, forplayerid)
- {
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- switch(dialogid)
- {
- case DIALOG_REGISTER:
- {
- new file[128], pname[MAX_PLAYER_NAME];
- GetPlayerName(playerid, pname, sizeof(pname));
- format(file, sizeof(file), "\\Users\\%s.ini", pname);
- new size;
- size = (strlen(inputtext));
- if(size <= 4) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Register", "Enter your desired password to register. Must be more the 4 characters.", "Register", "");
- if(dini_Exists(file)) return ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Login", "Enter your password to login.", "Register", "");
- dini_Create(file);
- dini_IntSet(file, "hashPW", udb_hash(inputtext));
- dini_Set(file, "password", inputtext);
- dini_IntSet(file, "AdminLevel",PlayerInfo[playerid][AdminLevel] = 0);
- dini_IntSet(file, "VLevel", PlayerInfo[playerid][VLevel] = 0);
- dini_IntSet(file, "score", PlayerInfo[playerid][score] = 0);
- dini_IntSet(file, "money", PlayerInfo[playerid][cash] = 500);
- new string[128];
- format(string, 128, "You succesfully registered the username %s with password %s", pname, inputtext);
- SendClientMessage(playerid, COLOR_YELLOW, string);
- logged[playerid] = 1;
- SendClientMessage(playerid, COLOR_YELLOW, "You have been automatically logged in!");
- }
- case DIALOG_LOGIN:
- {
- new file[128];
- new string[MAX_STRING], pname[MAX_PLAYER_NAME];
- GetPlayerName(playerid, pname, sizeof(pname));
- format(file, sizeof(file), "\\Users\\%s.ini", pname);
- new size;
- size = (strlen(inputtext));
- if(size <= 4) return ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Login", "Invalid Password, Try again.", "Register", "");
- if(!dini_Exists(file)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Register", "Enter your desired password to register.", "Register", "");
- if(logged[playerid]) return SendClientMessage(playerid, COLOR_RED, "ERROR: You are already logged in!");
- new tmp;
- tmp = dini_Int(file, "hashPW");
- if(udb_hash(inputtext) != tmp)
- {
- format(string, 256, "You specified the wrong password for %s!", pname);
- SendClientMessage(playerid, COLOR_RED, string);
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Login", "Enter your password to login.", "Register", "");
- }
- else
- {
- logged[playerid] = 1;
- PlayerInfo[playerid][AdminLevel] = dini_Int(file, "AdminLevel");
- PlayerInfo[playerid][VLevel] = dini_Int(file, "VLevel");
- SetPlayerScore(playerid, PlayerInfo[playerid][score]);
- new lebel = PlayerInfo[playerid][AdminLevel];
- new vlvl = PlayerInfo[playerid][VLevel];
- GivePlayerMoney(playerid, dini_Int(file, "money")-GetPlayerMoney(playerid));
- format(string, 256, "[Successfully logged in! (Admin level: %d, VIP Level: %i)!", lebel,vlvl);
- SendClientMessage(playerid,COLOR_GREEN, string);
- printf("%s (%i) logged in with password %s", pname, playerid, inputtext);
- }
- }
- case GUN:
- {
- switch(listitem)
- {
- case 0:
- {
- GivePlayerWeapon(playerid, 4, 1);
- SendClientMessage(playerid, COLOR_YELLOW, "You have just recieved a knife!");
- }
- case 1:
- {
- GivePlayerWeapon(playerid, 9, 1);
- SendClientMessage(playerid, COLOR_YELLOW, "You have just recieved a Chainsaw!");
- }
- case 2:
- {
- GivePlayerWeapon(playerid, 24, 500);
- SendClientMessage(playerid, COLOR_YELLOW, "You have just recieved a Desert Eagle!");
- }
- case 3:
- {
- GivePlayerWeapon(playerid, 29, 500);
- SendClientMessage(playerid, COLOR_YELLOW, "You have just recieved a MP5!");
- }
- case 4:
- {
- GivePlayerWeapon(playerid, 31, 500);
- SendClientMessage(playerid, COLOR_YELLOW, "You have just recieved a m4!");
- }
- case 5:
- {
- GivePlayerWeapon(playerid, 34, 500);
- SendClientMessage(playerid, COLOR_YELLOW, "You have just recieved a Sniper Rifle!");
- }
- case 6:
- {
- GivePlayerWeapon(playerid, 37, 500);
- SendClientMessage(playerid, COLOR_YELLOW, "You have just recieved a Flamethrower!");
- }
- case 7:
- {
- if(PlayerInfo[playerid][VLevel] >= 2)
- {
- GivePlayerWeapon(playerid, 38, 10000);
- SendClientMessage(playerid, COLOR_GREEN, "Thank you for being a Donater, in return you have a MINIGUN!");
- }
- else if(PlayerInfo[playerid][VLevel] == 0)
- {
- SendClientMessage(playerid, COLOR_RED, "You aren't a donater! Feel free to donate though!");
- }
- }
- }
- return 1;
- }
- }
- return 1;
- }
- public OnPlayerClickPlayer(playerid, clickedplayerid, source)
- {
- return 1;
- }
- COMMAND:setadmin(playerid, params[])
- {
- if(IsPlayerAdmin(playerid))
- {
- new userid, level;
- new string[MAX_STRING];
- if(!sscanf(params, "ui", userid, level))
- {
- PlayerInfo[userid][AdminLevel] = level;
- SendClientMessage(playerid, COLOR_WHITE, "You have changed the admin level of this player");
- format(string, sizeof(string), "Your admin level has been set to: %i", level);
- SendClientMessage(userid, COLOR_GREEN, string);
- }else{
- SendClientMessage(playerid, COLOR_YELLOW, "USAGE: /setadmin [userid] [level]");
- }
- }else{
- SendClientMessage(playerid, COLOR_RED, "Error, you must be RCON admin for this!");
- }
- return 1;
- }
- COMMAND:setvip(playerid, params[])
- {
- if(PlayerInfo[playerid][AdminLevel] >= 3)
- {
- new userid, level;
- new string[MAX_STRING];
- if(!sscanf(params, "ui", userid, level))
- {
- PlayerInfo[userid][VLevel] = level;
- SendClientMessage(playerid, COLOR_WHITE, "You have changed the VIP level of this player");
- format(string, sizeof(string), "Your VIP level has been set to: %i", level);
- SendClientMessage(userid, COLOR_GREEN, string);
- }else{
- SendClientMessage(playerid, COLOR_YELLOW, "USAGE: /setvip [userid] [level]");
- }
- }else{
- SendClientMessage(playerid, COLOR_RED, "Error, you can't execute this command!");
- }
- return 1;
- }
- COMMAND:gunlist(playerid, params[])
- {
- ShowPlayerDialog(playerid, GUN, DIALOG_STYLE_LIST, "Guns! By Grant!", "Knife\r\nChainsaw\r\nDesert Eagle\r\nMP5\r\nm4\r\nSniper\r\nFlamethrower", "SELECT", "");
- return 1;
- }
- CMD:a(playerid,params[]){
- new string[128],message;
- if(PlayerInfo[playerid][AdminLevel] < 1) return SendClientMessage(playerid,COLOR_RED,"You can't use this command!");
- else if(sscanf(params,"s",message)) return SendClientMessage(playerid,COLOR_YELLOW,"Syntax: /a [message]");
- else
- for(new i = 0; i < MAX_PLAYERS; i++)
- {
- if(PlayerInfo[i][AdminLevel] < 1) return 0;
- format(string,sizeof(string),"[ADMIN:(%i)]%s: %s", PlayerInfo[i][AdminLevel], GetName(playerid),message);
- SendClientMessage(i,COLOR_LIGHTBLUE,string);
- return 1;
- }
- return 1;
- }
- CMD:v(playerid,params[]){
- new string[128],message;
- if(PlayerInfo[playerid][VLevel] < 1) return SendClientMessage(playerid,COLOR_RED,"You can't use this command!");
- else if(sscanf(params,"s",message)) return SendClientMessage(playerid,COLOR_YELLOW,"Syntax: /v [message]");
- else
- for(new i = 0; i < MAX_PLAYERS; i++)
- {
- if(PlayerInfo[i][VLevel] < 1) return 0;
- format(string,sizeof(string),"[VIP:(%i)]%s: %s", PlayerInfo[i][VLevel], GetName(playerid),message);
- SendClientMessage(i,COLOR_ORANGE,string);
- return 1;
- }
- return 1;
- }
- CMD:help(playerid,params[])
- {
- SendClientMessage(playerid, COLOR_YELLOW, "/gunlist - shows a gun dialog /help - displays this information");
- if(PlayerInfo[playerid][VLevel] >= 1)
- {
- SendClientMessage(playerid, COLOR_ORANGE, "/v [message] - for vip's only");
- }
- if(PlayerInfo[playerid][VLevel] >= 2)
- {
- SendClientMessage(playerid, COLOR_ORANGE, "/vipgunlist - gives you minigun rights!");
- }
- if(PlayerInfo[playerid][AdminLevel] >=1)
- {
- SendClientMessage(playerid, COLOR_LIGHTBLUE, "/a [message] - for admins only");
- }
- if(PlayerInfo[playerid][AdminLevel] >=3)
- {
- SendClientMessage(playerid, COLOR_LIGHTBLUE, "/setvip [userid] [level] - sets the vip level of a player admins only");
- SendClientMessage(playerid, COLOR_LIGHTBLUE, "/setadmin [userid] [level] - sets the admin level, RCON ONLY");
- }
- return 1;
- }
- CMD:vipgunlist(playerid,params[])
- {
- if(PlayerInfo[playerid][VLevel] >= 2)
- {
- ShowPlayerDialog(playerid, GUN, DIALOG_STYLE_LIST, "Guns! By Grant!", "Knife\r\nChainsaw\r\nDesert Eagle\r\nMP5\r\nm4\r\nSniper\r\nFlamethrower\r\nMinigun", "SELECT", "");
- }
- if(PlayerInfo[playerid][VLevel] < 2)
- {
- SendClientMessage(playerid, COLOR_RED, "You don't have the correct VIP level for this");
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement