Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Basic
- Freeroam
- Gamemode Script by Chris' */
- #include <a_samp> // Credits SAMP team
- #include <dudb> // Draco Blue
- #include "../include/gl_common.inc"
- #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
- #pragma unused ret_memcpy
- #define COLOR_GREY 0xAFAFAFAA
- #define COLOR_GREEN 0x00FF00C8
- #define COLOR_RED 0xFF0000AA
- #define COLOR_YELLOW 0xFFFF00AA
- #define COLOR_PINK 0xFF66FFAA
- #define COLOR_BLUE 0x3A47DEFF
- #define COLOR_TAN 0xBDB76BAA
- #define COLOR_PURPLE 0x800080AA
- #define COLOR_WHITE 0xFFFFFFAA
- #define COLOR_LIGHTBLUE 0x33CCFFAA
- #define COLOR_ORANGE 0xFF9900AA
- #define COLOR_INDIGO 0x1E90FFAA
- #define COLOR_BLACK 0x00000000
- #define COLOR_DARKGREY 0x696969FF
- new PlayerColors[200] = {
- 0xFF8C13FF,0xC715FFFF,0x20B2AAFF,0xDC143CFF,0x6495EDFF,0xf0e68cFF,0x778899FF,0xFF1493FF,0xF4A460FF,
- 0xEE82EEFF,0xFFD720FF,0x8b4513FF,0x4949A0FF,0x148b8bFF,0x14ff7fFF,0x556b2fFF,0x0FD9FAFF,0x10DC29FF,
- 0x534081FF,0x0495CDFF,0xEF6CE8FF,0xBD34DAFF,0x247C1BFF,0x0C8E5DFF,0x635B03FF,0xCB7ED3FF,0x65ADEBFF,
- 0x5C1ACCFF,0xF2F853FF,0x11F891FF,0x7B39AAFF,0x53EB10FF,0x54137DFF,0x275222FF,0xF09F5BFF,0x3D0A4FFF,
- 0x22F767FF,0xD63034FF,0x9A6980FF,0xDFB935FF,0x3793FAFF,0x90239DFF,0xE9AB2FFF,0xAF2FF3FF,0x057F94FF,
- 0xB98519FF,0x388EEAFF,0x028151FF,0xA55043FF,0x0DE018FF,0x93AB1CFF,0x95BAF0FF,0x369976FF,0x18F71FFF,
- 0x4B8987FF,0x491B9EFF,0x829DC7FF,0xBCE635FF,0xCEA6DFFF,0x20D4ADFF,0x2D74FDFF,0x3C1C0DFF,0x12D6D4FF,
- 0x48C000FF,0x2A51E2FF,0xE3AC12FF,0xFC42A8FF,0x2FC827FF,0x1A30BFFF,0xB740C2FF,0x42ACF5FF,0x2FD9DEFF,
- 0xFAFB71FF,0x05D1CDFF,0xC471BDFF,0x94436EFF,0xC1F7ECFF,0xCE79EEFF,0xBD1EF2FF,0x93B7E4FF,0x3214AAFF,
- 0x184D3BFF,0xAE4B99FF,0x7E49D7FF,0x4C436EFF,0xFA24CCFF,0xCE76BEFF,0xA04E0AFF,0x9F945CFF,0xDCDE3DFF,
- 0x10C9C5FF,0x70524DFF,0x0BE472FF,0x8A2CD7FF,0x6152C2FF,0xCF72A9FF,0xE59338FF,0xEEDC2DFF,0xD8C762FF,
- 0xD8C762FF,0xFF8C13FF,0xC715FFFF,0x20B2AAFF,0xDC143CFF,0x6495EDFF,0xf0e68cFF,0x778899FF,0xFF1493FF,
- 0xF4A460FF,0xEE82EEFF,0xFFD720FF,0x8b4513FF,0x4949A0FF,0x148b8bFF,0x14ff7fFF,0x556b2fFF,0x0FD9FAFF,
- 0x10DC29FF,0x534081FF,0x0495CDFF,0xEF6CE8FF,0xBD34DAFF,0x247C1BFF,0x0C8E5DFF,0x635B03FF,0xCB7ED3FF,
- 0x65ADEBFF,0x5C1ACCFF,0xF2F853FF,0x11F891FF,0x7B39AAFF,0x53EB10FF,0x54137DFF,0x275222FF,0xF09F5BFF,
- 0x3D0A4FFF,0x22F767FF,0xD63034FF,0x9A6980FF,0xDFB935FF,0x3793FAFF,0x90239DFF,0xE9AB2FFF,0xAF2FF3FF,
- 0x057F94FF,0xB98519FF,0x388EEAFF,0x028151FF,0xA55043FF,0x0DE018FF,0x93AB1CFF,0x95BAF0FF,0x369976FF,
- 0x18F71FFF,0x4B8987FF,0x491B9EFF,0x829DC7FF,0xBCE635FF,0xCEA6DFFF,0x20D4ADFF,0x2D74FDFF,0x3C1C0DFF,
- 0x12D6D4FF,0x48C000FF,0x2A51E2FF,0xE3AC12FF,0xFC42A8FF,0x2FC827FF,0x1A30BFFF,0xB740C2FF,0x42ACF5FF,
- 0x2FD9DEFF,0xFAFB71FF,0x05D1CDFF,0xC471BDFF,0x94436EFF,0xC1F7ECFF,0xCE79EEFF,0xBD1EF2FF,0x93B7E4FF,
- 0x3214AAFF,0x184D3BFF,0xAE4B99FF,0x7E49D7FF,0x4C436EFF,0xFA24CCFF,0xCE76BEFF,0xA04E0AFF,0x9F945CFF,
- 0xDCDE3DFF,0x10C9C5FF,0x70524DFF,0x0BE472FF,0x8A2CD7FF,0x6152C2FF,0xCF72A9FF,0xE59338FF,0xEEDC2DFF,
- 0xD8C762FF,0xD8C762FF
- };
- new file[512];
- enum Info
- {
- AdminLevel,
- Cash,
- Score,
- }
- new AccountInfo[MAX_PLAYERS][Info];
- public OnGameModeInit()
- {
- SetGameModeText("Freeroam");
- AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
- LoadStaticVehiclesFromFile("vehicles/trains.txt");
- LoadStaticVehiclesFromFile("vehicles/pilots.txt");
- LoadStaticVehiclesFromFile("vehicles/lv_law.txt");
- LoadStaticVehiclesFromFile("vehicles/lv_airport.txt");
- LoadStaticVehiclesFromFile("vehicles/lv_gen.txt");
- LoadStaticVehiclesFromFile("vehicles/sf_law.txt");
- LoadStaticVehiclesFromFile("vehicles/sf_airport.txt");
- LoadStaticVehiclesFromFile("vehicles/sf_gen.txt");
- LoadStaticVehiclesFromFile("vehicles/ls_law.txt");
- LoadStaticVehiclesFromFile("vehicles/ls_airport.txt");
- LoadStaticVehiclesFromFile("vehicles/ls_gen_inner.txt");
- LoadStaticVehiclesFromFile("vehicles/ls_gen_outer.txt");
- LoadStaticVehiclesFromFile("vehicles/whetstone.txt");
- LoadStaticVehiclesFromFile("vehicles/bone.txt");
- LoadStaticVehiclesFromFile("vehicles/flint.txt");
- LoadStaticVehiclesFromFile("vehicles/tierra.txt");
- LoadStaticVehiclesFromFile("vehicles/red_county.txt");
- return 1;
- }
- public OnGameModeExit()
- {
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
- SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
- SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- new string[256];
- new name[MAX_PLAYER_NAME];
- GetPlayerName(playerid, name, sizeof(name));
- format(file, sizeof(file), "Accounts/%s.ini", name);
- if (!dini_Exists(file))
- {
- format(string, sizeof(string), "Welcome: %s\n This account is not registered\nPlease register", name);
- ShowPlayerDialog(playerid, 3333, DIALOG_STYLE_INPUT, "Welcome", string, "Register", "Leave");
- }
- if(fexist(file))
- {
- format(string, sizeof(string), "Welcome: %s\n This account is registered\nPlease Login", name);
- ShowPlayerDialog(playerid, 3334, DIALOG_STYLE_INPUT, "Hello", string, "Login", "Leave");
- }
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- new name[24];
- GetPlayerName(playerid,name,24);
- GetPlayerName(playerid, name, sizeof(name));
- format(file,sizeof(file),"Accounts/%s.ini",name);
- if(dini_Exists(file))
- {
- dini_IntSet(file,"Cash",GetPlayerMoney(playerid));
- dini_IntSet(file,"Score",GetPlayerScore(playerid));
- dini_IntSet(file,"AdminLevel", AccountInfo[playerid][AdminLevel]);
- return 1;
- }
- 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[])
- {
- dcmd(makeadmin, 9, cmdtext);
- dcmd(parch, 5, cmdtext);
- dcmd(jetpack, 7, cmdtext);
- dcmd(fstyle, 6, cmdtext);
- dcmd(randomcolor, 11, cmdtext);
- dcmd(stats, 5, cmdtext);
- dcmd(commands, 8, cmdtext);
- return 0;
- }
- public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
- {
- return 1;
- }
- public OnPlayerExitVehicle(playerid, vehicleid)
- {
- return 1;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- return 1;
- }
- public OnPlayerEnterCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerLeaveCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerEnterRaceCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerLeaveRaceCheckpoint(playerid)
- {
- return 1;
- }
- public OnRconCommand(cmd[])
- {
- return 1;
- }
- public OnPlayerRequestSpawn(playerid)
- {
- return 1;
- }
- public OnObjectMoved(objectid)
- {
- return 1;
- }
- public OnPlayerObjectMoved(playerid, objectid)
- {
- return 1;
- }
- public OnPlayerPickUpPickup(playerid, pickupid)
- {
- return 1;
- }
- public OnVehicleMod(playerid, vehicleid, componentid)
- {
- return 1;
- }
- public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
- {
- return 1;
- }
- public OnVehicleRespray(playerid, vehicleid, color1, color2)
- {
- return 1;
- }
- public OnPlayerSelectedMenuRow(playerid, row)
- {
- return 1;
- }
- public OnPlayerExitedMenu(playerid)
- {
- return 1;
- }
- public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
- {
- return 1;
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- return 1;
- }
- public OnRconLoginAttempt(ip[], password[], success)
- {
- return 1;
- }
- public OnPlayerUpdate(playerid)
- {
- return 1;
- }
- public OnPlayerStreamIn(playerid, forplayerid)
- {
- return 1;
- }
- public OnPlayerStreamOut(playerid, forplayerid)
- {
- return 1;
- }
- public OnVehicleStreamIn(vehicleid, forplayerid)
- {
- return 1;
- }
- public OnVehicleStreamOut(vehicleid, forplayerid)
- {
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if (dialogid == 3333)
- {
- new name[MAX_PLAYER_NAME], string[128];
- GetPlayerName(playerid, name, sizeof(name));
- format(file, sizeof(file), "Accounts/%s.ini", name);
- if(!response) return Kick(playerid);
- if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 3333, DIALOG_STYLE_INPUT, "Welcome", "This account its not registered\nPlease register", "Register", "Leave");
- dini_Create(file);
- dini_IntSet(file, "Password", udb_hash(inputtext));
- dini_IntSet(file, "AdminLevel",AccountInfo[playerid][AdminLevel] = 0);
- dini_IntSet(file, "Cash",AccountInfo[playerid][Cash] = 5000);
- dini_IntSet(file, "Score",AccountInfo[playerid][Score] = 0);
- format(string, 400, "You successfuly registered as %s", name, inputtext);
- SendClientMessage(playerid,COLOR_WHITE, string);
- }
- if (dialogid == 3334)
- {
- new name[MAX_PLAYER_NAME];
- GetPlayerName(playerid, name, sizeof(name));
- format(file, sizeof(file), "Data/users/%s.ini", name);
- if(!response) return Kick(playerid);
- if (!strlen(inputtext)) return ShowPlayerDialog(playerid, 3334, DIALOG_STYLE_INPUT, "Welcome", "This account is registered\nPlease login", "Login", "Leave");
- new tmp;
- tmp = dini_Int(file, "Password");
- if(udb_hash(inputtext) != tmp) {
- SendClientMessage(playerid,COLOR_RED, "You have entered an incorrect password");
- ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Welcome", "This account is registered\nPlease login", "Login", "Leave");
- }
- else
- {
- SetPlayerMoney(playerid, dini_Int(file, "Cash"));
- SetPlayerScore(playerid, dini_Int(file, "Score"));
- AccountInfo[playerid][AdminLevel] = dini_Int(file, "AdminLevel");
- SendClientMessage(playerid,COLOR_ORANGE, "You successfuly logged in");
- SetPlayerPos(playerid, 2020.0795,1342.9370,10.8130);
- }
- }
- if(dialogid == 2221)
- {
- if(response)
- {
- switch(listitem)
- {
- case 0:
- {
- SetPlayerFightingStyle (playerid, FIGHT_STYLE_BOXING);
- }
- case 1:
- {
- SetPlayerFightingStyle (playerid, FIGHT_STYLE_KUNGFU);
- }
- case 2:
- {
- SetPlayerFightingStyle (playerid, FIGHT_STYLE_KNEEHEAD);
- }
- case 3:
- {
- SetPlayerFightingStyle (playerid, FIGHT_STYLE_GRABKICK);
- }
- case 4:
- {
- SetPlayerFightingStyle (playerid, FIGHT_STYLE_ELBOW);
- }
- }
- }
- }
- return 1;
- }
- public OnPlayerClickPlayer(playerid, clickedplayerid, source)
- {
- return 1;
- }
- dcmd_makeadmin(playerid, params[])
- {
- new id, lvl, string[256], name[MAX_PLAYER_NAME], PlayerName[MAX_PLAYER_NAME];
- if(IsPlayerConnected(id))
- {
- if(AccountInfo[playerid][AdminLevel] >= 5 || IsPlayerAdmin(playerid))
- {
- if(!sscanf(params, "ui", id, lvl))
- {
- if((lvl >= 1 && lvl <= 5) || lvl == 0)
- {
- format(file,sizeof(file),"Accounts/%s.ini",id);
- GetPlayerName(playerid, name, sizeof(name));
- GetPlayerName(id, PlayerName, sizeof(PlayerName));
- format(string, sizeof(string), "You are now Admin level %d thanks to %s", lvl, name);
- SendClientMessage(id, COLOR_RED, string);
- format(string, sizeof(string), "You gave %d an admin level %s", PlayerName, lvl);
- SendClientMessage(playerid, COLOR_WHITE, string);
- dini_IntSet(file,"AdminLevel", lvl);
- AccountInfo[id][AdminLevel] = lvl;
- return 1;
- }
- else return SendClientMessage(playerid, COLOR_RED, "ERROR: Admin level cant go higher that 5 and lower that 1");
- }
- else return SendClientMessage(playerid, COLOR_RED, "USAGE: /makeadmin [PlayerId/PartOfName] [AdminLevel]");
- }
- else return SendClientMessage(playerid, COLOR_RED, "You must be RCON loged in to use this command");
- }
- else return SendClientMessage(playerid, COLOR_RED, "ERROR: Player Is Not Connected");
- }
- dcmd_parch(playerid, params[])
- {
- #pragma unused params
- GivePlayerWeapon(playerid, 46, 1);
- return 1;
- }
- dcmd_jetpack(playerid, params[])
- {
- #pragma unused params
- SetPlayerSpecialAction(playerid, SPECIAL_ACTION_USEJETPACK);
- return 1;
- }
- dcmd_fstyle(playerid, params[])
- {
- #pragma unused params
- ShowPlayerDialog(playerid, 2221, DIALOG_STYLE_LIST, "Fighting Styles:", "Boxing\nKung Fu\nKneeHead\nGrabKick\nElbow", "Select","Cancel");
- return 1;
- }
- dcmd_randomcolor(playerid, params[])
- {
- #pragma unused params
- new rand = random(sizeof(PlayerColors));
- SetPlayerColor(playerid, PlayerColors[rand]);
- return 1;
- }
- dcmd_stats(playerid, params[])
- {
- #pragma unused params
- format(file, sizeof(file), "AdminLevel: %d\nScore: %d\nMoney: %d", AccountInfo[playerid][AdminLevel], GetPlayerScore(playerid), GetPlayerMoney(playerid));
- ShowPlayerDialog(playerid, 2223, DIALOG_STYLE_MSGBOX, "Player stats",file,"Close","");
- return 1;
- }
- dcmd_commands(playerid, params[])
- {
- #pragma unused params
- if(!IsPlayerAdmin(playerid))
- {
- ShowPlayerDialog(playerid, 2224, DIALOG_STYLE_MSGBOX, "Server Commands","Player Commands: /parch, /jetpack, /randomcolor, /stats", "Close","");
- }
- else
- {
- ShowPlayerDialog(playerid, 2224, DIALOG_STYLE_MSGBOX, "Server Commands","Player Commands: /parch, /jetpack, /randomcolor, /stats\nAdmin Commands: /makeadmin", "Close","");
- }
- return 1;
- }
- stock sscanf(string[], format[], {Float,_}:...) // Thanks to Y_Less
- {
- new
- formatPos = 0,
- stringPos = 0,
- paramPos = 2,
- paramCount = numargs();
- while (paramPos < paramCount && string[stringPos])
- {
- switch (format[formatPos++])
- {
- case '\0':
- {
- return 0;
- }
- case 'i', 'd':
- {
- new
- neg = 1,
- num = 0,
- ch = string[stringPos];
- if (ch == '-')
- {
- neg = -1;
- ch = string[++stringPos];
- }
- do
- {
- stringPos++;
- if (ch >= '0' && ch <= '9')
- {
- num = (num * 10) + (ch - '0');
- }
- else
- {
- return 1;
- }
- }
- while ((ch = string[stringPos]) && ch != ' ');
- setarg(paramPos, 0, num * neg);
- }
- case 'h', 'x':
- {
- new
- ch,
- num = 0;
- while ((ch = string[stringPos++]))
- {
- switch (ch)
- {
- case 'x', 'X':
- {
- num = 0;
- continue;
- }
- case '0' .. '9':
- {
- num = (num << 4) | (ch - '0');
- }
- case 'a' .. 'f':
- {
- num = (num << 4) | (ch - ('a' - 10));
- }
- case 'A' .. 'F':
- {
- num = (num << 4) | (ch - ('A' - 10));
- }
- case ' ':
- {
- break;
- }
- default:
- {
- return 1;
- }
- }
- }
- setarg(paramPos, 0, num);
- }
- case 'c':
- {
- setarg(paramPos, 0, string[stringPos++]);
- }
- case 'f':
- {
- new tmp[25];
- strmid(tmp, string, stringPos, stringPos+sizeof(tmp)-2);
- setarg(paramPos, 0, _:floatstr(tmp));
- }
- case 's', 'z':
- {
- new
- i = 0,
- ch;
- if (format[formatPos])
- {
- while ((ch = string[stringPos++]) && ch != ' ')
- {
- setarg(paramPos, i++, ch);
- }
- if (!i) return 1;
- }
- else
- {
- while ((ch = string[stringPos++]))
- {
- setarg(paramPos, i++, ch);
- }
- }
- stringPos--;
- setarg(paramPos, i, '\0');
- }
- default:
- {
- continue;
- }
- }
- while (string[stringPos] && string[stringPos] != ' ')
- {
- stringPos++;
- }
- while (string[stringPos] == ' ')
- {
- stringPos++;
- }
- paramPos++;
- }
- while (format[formatPos] == 'z') formatPos++;
- return format[formatPos];
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement