Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- ________________________________________
- County Roleplay
- ________________________________________
- */
- // INCLUDES
- #include <a_samp>
- #include <streamer>
- #include <zcmd>
- #include <foreach>
- #include <sscanf2>
- #include <YSI\y_ini>
- // COLORS
- #define COLOR_GRAD2 0xBFC0C2FF
- #define COLOR_GRAD1 0xB4B5B7FF
- #define COLOR_GRAD2 0xBFC0C2FF
- #define COLOR_GREY 0xAFAFAFAA
- #define COLOR_GRAD3 0xCBCCCEFF
- #define COLOR_GRAD4 0xD8D8D8FF
- #define COLOR_FADE 0xC8C8C8C8
- #define COLOR_FADE2 0xC8C8C8C8
- #define COLOR_FADE3 0xAAAAAAAA
- #define COLOR_FADE4 0x8C8C8C8C
- #define COLOR_FADE5 0x6E6E6E6E
- #define COLOR_GRAD5 0xE3E3E3FF
- #define COLOR_FADE1 0xE6E6E6E6
- #define COLOR_GRAD6 0xF0F0F0FF
- #define TEAM_HIT_COLOR 0xFFFFFF00
- #define COLOR_WHITE 0xFFFFFFAA
- #define COLOR_RED 0xFF0000AA
- #define COLOR_GREEN 0x00FF00AA
- #define COLOR_BLUE 0x0000FFAA
- #define COLOR_GRAY 0xAFAFAFAA
- #define COLOR_YELLOW 0xFFFF00AA
- #define COLOR_LIGHTBLUE 0x0AFFFFAA
- #define COLOR_PURPLE 0xFF00FFAA
- #define COLOR_ORANGE 0xFFBB00AA
- // DEFINES
- #define PATH "Accounts/%s.ini"
- #define SECONDS(%1) ((%1)*(1000))
- #define ALTCOMMAND:%1->%2; \
- COMMAND:%1(playerid, params[]) \
- return cmd_%2(playerid, params);
- #define function%0(%1) forward%0(%1); public%0(%1)
- // SERVER SIDE CASH
- #define GivePlayerCash(%0,%1) SetPVarInt(%0,"Money",GetPlayerCash(%0)+%1),GivePlayerMoney(%0,%1)
- #define ResetPlayerCash(%0) SetPVarInt(%0,"Money",0), ResetPlayerMoney(%0)
- #define GetPlayerCash(%0) GetPVarInt(%0,"Money")
- // DIALOGS
- #define DIALOG_REGISTER 1
- #define DIALOG_LOGIN 2
- #define DIALOG_AGE 3
- #define DIALOG_SEX 4
- // ENUMS
- enum pInfo
- {
- pPass,
- pCash,
- pSex,
- pAge,
- Float:pPos_x,
- Float:pPos_y,
- Float:pPos_z,
- pSkin,
- pTeam,
- }
- new PlayerInfo[MAX_PLAYERS][pInfo];
- /* <--------------------------------------------> */
- main()
- {
- print(" ");
- print(" ");
- print("- County Roleplay -");
- print(" ");
- print(" ");
- }
- new
- Logged[ MAX_PLAYERS ],
- gOoc[ MAX_PLAYERS ]
- ;
- public OnPlayerConnect(playerid)
- {
- gOoc[ playerid ] = 0; Logged[ playerid ] = 0;
- // RESET STATS!
- PlayerInfo[ playerid ][ pCash ] = 0;
- PlayerInfo[ playerid ][ pSex ] = 0;
- PlayerInfo[ playerid ][ pAge ] = 0;
- PlayerInfo[ playerid ][ pPos_x ] = 0.0;
- PlayerInfo[ playerid ][ pPos_y ] = 0.0;
- PlayerInfo[ playerid ][ pPos_z ] = 0.0;
- PlayerInfo[ playerid ][ pSkin ] = 0;
- PlayerInfo[ playerid ][ pTeam ] = 0;
- if(fexist(UserPath(playerid)))
- {
- INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"{FFFFFF}[{00DDFF}AUTENTIFICARE{FFFFFF}] {00DDFF}C{FFFFFF}ounty {00DDFF}R{FFFFFF}oleplay","{00DDFF}I{FFFFFF}ntroduceti parola ca sa va autentificati:","Autentificare","Iesire");
- }
- else
- {
- ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD,"{FFFFFF}[{00DDFF}INREGISTRARE{FFFFFF}] {00DDFF}C{FFFFFF}ounty {00DDFF}R{FFFFFF}oleplay","{00DDFF}I{FFFFFF}ntroduceti o parola ca sa va inregistrati:","Inregistrare","Iesire");
- }
- return 1;
- }
- public OnGameModeInit()
- {
- /* <-------------------------------------------> */
- AddPlayerClass(21,-2382.0168,-582.0441,132.1172,125.2504,0,0,0,0,0,0);
- AddPlayerClass(59,-2382.0168,-582.0441,132.1172,125.2504,0,0,0,0,0,0);
- /* <-------------------------------------------> */
- ShowPlayerMarkers(0);
- ShowNameTags(1);
- DisableInteriorEnterExits();
- EnableStuntBonusForAll(0);
- SetNameTagDrawDistance(10.0);
- // =========== TIMERS ===========
- SetTimer("MoneyUpdate",1000,1);
- SetTimer("SaveAccounts", SECONDS(13), 1);
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(dialogid == DIALOG_AGE)
- {
- if(!response)
- {
- Kick(playerid);
- }
- else
- {
- if(strlen(inputtext))
- {
- new age = strval(inputtext);
- if(age > 70 || age < 20)
- {
- ShowPlayerDialog(playerid, DIALOG_AGE, DIALOG_STYLE_INPUT, "{FFFFFF}[{00DDFF}VARSTA{FFFFFF}] {00DDFF}C{FFFFFF}ounty {00DDFF}R{FFFFFF}oleplay","{00DDFF}C{FFFFFF}e varsta are caracterul dvs.?\n{00DDFF}V{FFFFFF}arsta caracterului dvs. trebuie sa fie intre {00DDFF}20 {FFFFFF}si {00DDFF}70 {FFFFFF}de ani.","Raspuns","Iesire");
- }
- else
- {
- PlayerInfo[playerid][pAge] = age;
- new
- string[ 64 ]
- ;
- format(string, sizeof(string), "Caracterul dvs. are {00DDFF}%d {FFFFFF}de ani.",age);
- SendClientMessage(playerid, -1, string);
- GivePlayerCash(playerid, 500);
- SaveAccountStats(playerid);
- SpawnPlayer(playerid);
- }
- }
- else
- {
- return 0;
- }
- }
- }
- if(dialogid == DIALOG_SEX)
- {
- if(response)
- {
- PlayerInfo[playerid][pSex] = 1;
- SendClientMessage(playerid, -1, "Caracterul dvs. este {00DDFF}barbat{FFFFFF}.");
- SetPlayerSkin(playerid, 60);
- PlayerInfo[playerid][pSkin] = 60;
- ShowPlayerDialog(playerid, DIALOG_AGE, DIALOG_STYLE_INPUT, "{FFFFFF}[{00DDFF}VARSTA{FFFFFF}] {00DDFF}C{FFFFFF}ounty {00DDFF}R{FFFFFF}oleplay","{00DDFF}C{FFFFFF}e varsta are caracterul dvs.?\n{00DDFF}V{FFFFFF}arsta caracterului dvs. trebuie sa fie intre {00DDFF}20 {FFFFFF}si {00DDFF}70 {FFFFFF}de ani.","Raspuns","Iesire");
- }
- else
- {
- PlayerInfo[playerid][pSex] = 2;
- SendClientMessage(playerid, -1, "Caracterul dvs. este {00DDFF}femeie{FFFFFF}.");
- SetPlayerSkin(playerid, 211);
- PlayerInfo[playerid][pSkin] = 211;
- ShowPlayerDialog(playerid, DIALOG_AGE, DIALOG_STYLE_INPUT, "{FFFFFF}[{00DDFF}VARSTA{FFFFFF}] {00DDFF}C{FFFFFF}ounty {00DDFF}R{FFFFFF}oleplay","{00DDFF}C{FFFFFF}e varsta are caracterul dvs.?\n{00DDFF}V{FFFFFF}arsta caracterului dvs. trebuie sa fie intre {00DDFF}20 {FFFFFF}si {00DDFF}70 {FFFFFF}de ani.","Raspuns","Iesire");
- }
- }
- switch( dialogid )
- {
- case DIALOG_REGISTER:
- {
- if (!response) return Kick(playerid);
- if(response)
- {
- if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "{FFFFFF}[{00DDFF}INREGISTRARE{FFFFFF}] {00DDFF}C{FFFFFF}ounty {00DDFF}R{FFFFFF}oleplay","{00DDFF}A{FFFFFF}ti introdus o parola {FF0000}invalida{FFFFFF}.\n{00DDFF}I{FFFFFF}ntroduceti o parola pentru a va inregistra:","Inregistrare","Iesire");
- new INI:File = INI_Open(UserPath(playerid));
- INI_SetTag(File,"data");
- INI_WriteInt(File,"Password",udb_hash(inputtext));
- INI_WriteInt(File,"Cash",0);
- INI_WriteInt(File,"Sex",0);
- INI_WriteInt(File,"Age",0);
- INI_WriteFloat(File,"Pos_x",0);
- INI_WriteFloat(File,"Pos_y",0);
- INI_WriteFloat(File,"Pos_z",0);
- INI_WriteInt(File,"Skin",0);
- INI_WriteInt(File,"Team",0);
- INI_Close(File);
- ShowPlayerDialog(playerid, DIALOG_SEX, DIALOG_STYLE_MSGBOX, "{FFFFFF}[{00DDFF}SEX{FFFFFF}] {00DDFF}C{FFFFFF}ounty {00DDFF}R{FFFFFF}oleplay","{00DDFF}C{FFFFFF}e sex are caracterul dvs.?","Barbat","Femeie");
- }
- }
- case 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);
- new
- tmp2[ 256 ],
- playername2[ MAX_PLAYER_NAME ]
- ;
- GetPlayerName(playerid, playername2, sizeof(playername2));
- format(tmp2, sizeof(tmp2), "~w~Bine ai (re)venit! ~n~~b~~h~%s", playername2);
- GameTextForPlayer(playerid, tmp2, 2000, 1);
- SetTimerEx("UnsetFirstSpawn", 2000, false, "i", playerid);
- GivePlayerCash(playerid, PlayerInfo[playerid][pCash]);
- SetSpawnInfo(playerid, PlayerInfo[playerid][pTeam], PlayerInfo[playerid][pSkin], PlayerInfo[playerid][pPos_x], PlayerInfo[playerid][pPos_y], PlayerInfo[playerid][pPos_z], 1.0, -1, -1, -1, -1, -1, -1);
- SpawnPlayer(playerid);
- }
- else
- {
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"{FFFFFF}[{00DDFF}AUTENTIFICARE{FFFFFF}] {00DDFF}C{FFFFFF}ounty {00DDFF}R{FFFFFF}oleplay","{00DDFF}A{FFFFFF}ti introdus o parola {FF0000}incorecta{FFFFFF}.\n{00DDFF}I{FFFFFF}ntroduceti parola pentru a va autentifica:","Autentificare","Iesire");
- }
- return 1;
- }
- }
- }
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- if(IsPlayerConnected(playerid))
- {
- SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
- SetPlayerToTeamColor(playerid);
- Logged[playerid] = 1;
- }
- if(PlayerInfo[playerid][pPos_x] == 0 && PlayerInfo[playerid][pPos_y] == 0)
- {
- SetPlayerPos(playerid, 1271.3654,181.0756,19.4705);
- Logged[playerid] = 1;
- }
- else
- {
- SetPlayerPos(playerid, PlayerInfo[playerid][pPos_x], PlayerInfo[playerid][pPos_y], PlayerInfo[playerid][pPos_z]);
- Logged[playerid] = 1;
- }
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- new
- realchat = 1,
- string[ 128 ]
- ;
- if(IsPlayerConnected(playerid))
- {
- if(realchat)
- {
- {
- format(string, sizeof(string), "%s spune: %s", RPName(playerid), text);
- ProxDetector(20.0, playerid, string,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
- }
- }
- }
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- SaveAccountStats(playerid);
- return 1;
- }
- function SetPlayerToTeamColor(playerid)
- {
- if(IsPlayerConnected(playerid))
- {
- SetPlayerColor(playerid,TEAM_HIT_COLOR);
- }
- }
- function OOCOff(color,const string[])
- {
- foreach (Player,i)
- {
- if(!gOoc{i})
- {
- SendClientMessage(i, color, string);
- }
- }
- }
- function SaveAccountStats(playerid)
- {
- if(Logged[playerid] == 1)
- {
- new
- INI:File = INI_Open(UserPath(playerid))
- ;
- INI_SetTag(File,"data");
- PlayerInfo[playerid][pSkin] = GetPlayerSkin(playerid);
- PlayerInfo[playerid][pCash] = GetPlayerCash(playerid);
- new
- Float:x,
- Float:y,
- Float:z
- ;
- GetPlayerPos(playerid,x,y,z);
- PlayerInfo[playerid][pPos_x] = x;
- PlayerInfo[playerid][pPos_y] = y;
- PlayerInfo[playerid][pPos_z] = z;
- INI_WriteInt(File,"Cash",PlayerInfo[playerid][pCash]);
- INI_WriteInt(File,"Sex",PlayerInfo[playerid][pSex]);
- INI_WriteInt(File,"Age",PlayerInfo[playerid][pAge]);
- INI_WriteFloat(File,"Pos_x",PlayerInfo[playerid][pPos_x]);
- INI_WriteFloat(File,"Pos_y",PlayerInfo[playerid][pPos_y]);
- INI_WriteFloat(File,"Pos_z",PlayerInfo[playerid][pPos_z]);
- INI_WriteInt(File,"Skin",PlayerInfo[playerid][pSkin]);
- INI_WriteInt(File,"Team",PlayerInfo[playerid][pTeam]);
- INI_Close(File);
- }
- return 1;
- }
- function SaveAccounts()
- {
- for(new i = 0; i < MAX_PLAYERS; i++)
- {
- if(IsPlayerConnected(i))
- {
- SaveAccountStats(i);
- }
- }
- }
- function GameModeExitFunc()
- {
- GameModeExit();
- return 1;
- }
- function LoadUser_data(playerid,name[],value[])
- {
- INI_Int("Password",PlayerInfo[playerid][pPass]);
- INI_Int("Cash",PlayerInfo[playerid][pCash]);
- INI_Int("Sex",PlayerInfo[playerid][pSex]);
- INI_Int("Age",PlayerInfo[playerid][pAge]);
- INI_Float("Pos_x",PlayerInfo[playerid][pPos_x]);
- INI_Float("Pos_y",PlayerInfo[playerid][pPos_y]);
- INI_Float("Pos_z",PlayerInfo[playerid][pPos_z]);
- INI_Int("Skin",PlayerInfo[playerid][pSkin]);
- INI_Int("Team",PlayerInfo[playerid][pTeam]);
- return 1;
- }
- function MoneyUpdate(playerid)
- {
- if(GetPlayerCash(playerid) < GetPlayerMoney(playerid))
- {
- foreach(Player, i)
- {
- new const old_money = GetPlayerCash(playerid);
- ResetPlayerCash(playerid), GivePlayerCash(playerid, old_money);
- }
- }
- return 1;
- }
- function ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5)
- {
- if(IsPlayerConnected(playerid))
- {
- new Float:posx, Float:posy, Float:posz;
- new BigEar[MAX_PLAYERS];
- new Float:oldposx, Float:oldposy, Float:oldposz;
- new Float:tempposx, Float:tempposy, Float:tempposz;
- GetPlayerPos(playerid, oldposx, oldposy, oldposz);
- for(new i = 0; i < MAX_PLAYERS; i++)
- {
- if(IsPlayerConnected(i) && (GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i)))
- {
- if(!BigEar[i])
- {
- GetPlayerPos(i, posx, posy, posz);
- tempposx = (oldposx -posx);
- tempposy = (oldposy -posy);
- tempposz = (oldposz -posz);
- if (((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16)))
- {
- SendClientMessage(i, col1, string);
- }
- else if (((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8)))
- {
- SendClientMessage(i, col2, string);
- }
- else if (((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4)))
- {
- SendClientMessage(i, col3, string);
- }
- else if (((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2)))
- {
- SendClientMessage(i, col4, string);
- }
- else if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
- {
- SendClientMessage(i, col5, string);
- }
- }
- else
- {
- SendClientMessage(i, col1, string);
- }
- }
- }
- }
- return 1;
- }
- // STOCKS
- stock UserPath(playerid)
- {
- new string[128],playername[MAX_PLAYER_NAME];
- GetPlayerName(playerid,playername,sizeof(playername));
- format(string,sizeof(string),PATH,playername);
- return string;
- }
- 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;
- }
- stock RPName(playerid)
- {
- new string[24];
- GetPlayerName(playerid,string,24);
- new str[24];
- strmid(str,string,0,strlen(string),24);
- for(new i = 0; i < MAX_PLAYER_NAME; i++)
- {
- if (str[i] == '_') str[i] = ' ';
- }
- return str;
- }
- // =================================
- // LOGS
- function OOCLog(string[])
- {
- new
- entry[ 128 ],
- year,
- month,
- day,
- hour,
- minute,
- second
- ;
- getdate(year, month, day);
- gettime(hour, minute, second);
- format(entry, sizeof(entry), "%s | (%d-%d-%d) (%d:%d:%d)\n",string, day, month, year, hour, minute, second);
- new File:hFile;
- hFile = fopen("Basic/logs/OOCLog.log", io_append);
- fwrite(hFile, entry);
- fclose(hFile);
- }
- // COMMANDS
- CMD:stats(playerid, params[])
- {
- if(IsPlayerConnected(playerid))
- {
- new
- string[ 128 ],
- Age = PlayerInfo[ playerid ][ pAge ],
- Money = GetPlayerCash( playerid )
- ;
- new Sex[20];
- if(PlayerInfo[ playerid ][ pSex ] == 1) { Sex = "Male"; }
- else if(PlayerInfo[ playerid ][ pSex ] == 2) { Sex = "Female"; }
- SendClientMessage(playerid, COLOR_LIGHTBLUE, "------------------------------------------------------------------------");
- format(string, sizeof(string), "Name: %s | Money: %d | Age: %d | Sex: %s", RPName(playerid), Money, Age, Sex);
- SendClientMessage(playerid, COLOR_GRAD2, string);
- }
- return 1;
- }
- CMD:help(playerid, params[])
- {
- SendClientMessage(playerid, COLOR_LIGHTBLUE,"------------------------------------------------------------");
- SendClientMessage(playerid, COLOR_GRAD2,"/do - /me - /ooc - /b");
- SendClientMessage(playerid, COLOR_LIGHTBLUE,"------------------------------------------------------------");
- return 1;
- }
- ALTCOMMAND:o->ooc;
- CMD:ooc(playerid, params[])
- {
- new
- string[ 186 ]
- ;
- if(isnull(params)) return SendClientMessage(playerid, COLOR_GRAD2, "USAGE: {FFFFFF}(/o)oc [ooc chat]");
- format(string, sizeof(string), "(( OOC: %s: %s ))", RPName(playerid), params);
- OOCOff(0xCCFFFF00, string);
- OOCLog(string);
- printf("%s", string);
- return 1;
- }
- CMD:b(playerid, params[])
- {
- new
- string[ 128 ]
- ;
- if(isnull(params)) return SendClientMessage(playerid, COLOR_GRAD2, "USAGE: {FFFFFF} /b [ooc chat]");
- format(string, sizeof(string), "(( OOC: %s[%i]: %s ))", RPName( playerid ), playerid, params);
- printf("%s", string);
- ProxDetector(30.0, playerid, string, COLOR_FADE,COLOR_FADE,COLOR_FADE,COLOR_FADE,COLOR_FADE);
- return 1;
- }
- CMD:do(playerid, params[])
- {
- new
- result[ 128 ],
- string[ 128 ]
- ;
- if(sscanf(params, "s[128]", result)) return SendClientMessage(playerid, COLOR_GRAD2, "USAGE: {FFFFFF}/do [action]");
- format(string, sizeof(string), "* %s (( %s ))", result, RPName(playerid));
- ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
- printf("%s", string);
- return 1;
- }
- CMD:me(playerid, params[])
- {
- new
- result[ 128 ],
- string[ 128 ]
- ;
- if(sscanf(params, "s[128]", result)) return SendClientMessage(playerid, COLOR_GRAD2, "USAGE: {FFFFFF}/do [action]");
- format(string, sizeof(string), "* %s %s", RPName(playerid), result);
- ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
- printf("%s", string);
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment