Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Zezombia
- Alcohol Script */
- #include <a_samp>
- #define PRESSED(%0) \
- (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0))) //Created by Y_Less (I think...)
- forward CheckDrinkCount(playerid);
- forward CheckPointCheck();
- forward BloodAlcoholLevel();
- new Text:Menu, Text:Menu2, Text:Menu3, Text:Menu4, Text:Menu5;
- enum pInfo
- {
- InCheckpoint,
- CheckSet,
- DrinkingCount,
- DrinkingType
- }
- new PlayerInfo[MAX_PLAYERS][pInfo];
- //Check Point Positions (Bars)
- new Float:CPP[11][3] =
- {
- {1955.3748, 1017.6965, 992.4688},
- {-2653.1204, 1410.2084, 906.2734},
- {499.9641, -20.6701, 1000.6797},
- {498.4640, -76.0254, 998.7578},
- {-224.7854, 1403.8903, 27.7734},
- {498.4646, -76.0377, 998.7578},
- {499.9659, -20.6998, 1000.6797},
- {499.9659, -20.6629, 1000.6797},
- {498.4817, -76.0398, 998.7578},
- {1955.3748, 1017.6965, 992.4688},
- {2199.3247, 1603.7456, 1005.0625}
- };
- public OnFilterScriptInit()
- {
- SetTimer("CheckPointCheck", 500, 1);
- SetTimer("BloodAlcoholLevel", 1000, 1);
- //Textdraw Beverage Menu
- Menu = TextDrawCreate(50, 150, "~r~Beverage Menu~n~~n~~n~~n~~n~~n~");
- TextDrawUseBox(Menu, 1);
- TextDrawFont(Menu, 1);
- TextDrawLetterSize(Menu, 0.30, 1.25);
- TextDrawTextSize(Menu, 200, 200);
- TextDrawBoxColor(Menu, 0x00000085);
- TextDrawColor(Menu, 0xFFFFFFFF);
- TextDrawSetOutline(Menu, 1);
- TextDrawSetShadow(Menu, 0);
- TextDrawSetProportional(Menu, 1);
- Menu2 = TextDrawCreate(50, 166, "~w~1) Beer~n~2) Wine~n~3) Champagne~n~4) Brandy~n~5) Rum~n~6) Whiskey");
- TextDrawFont(Menu2, 1);
- TextDrawLetterSize(Menu2, 0.25, 1);
- TextDrawTextSize(Menu2, 200, 200);
- TextDrawColor(Menu2, 0xFFFFFFFF);
- TextDrawSetOutline(Menu2, 1);
- TextDrawSetShadow(Menu2, 0);
- TextDrawSetProportional(Menu2, 1);
- Menu3 = TextDrawCreate(123, 166, "~b~5%~n~15%~n~20%~n~30%~n~40%~n~55%");
- TextDrawFont(Menu3, 1);
- TextDrawLetterSize(Menu3, 0.25, 1);
- TextDrawTextSize(Menu3, 200, 200);
- TextDrawColor(Menu3, 0xFFFFFFFF);
- TextDrawSetOutline(Menu3, 1);
- TextDrawSetShadow(Menu3, 0);
- TextDrawSetProportional(Menu3, 1);
- Menu4 = TextDrawCreate(160, 166, "~y~$5~n~$10~n~$15~n~$20~n~$25~n~$30");
- TextDrawFont(Menu4, 1);
- TextDrawLetterSize(Menu4, 0.25, 1);
- TextDrawTextSize(Menu4, 200, 200);
- TextDrawColor(Menu4, 0xFFFFFFFF);
- TextDrawSetOutline(Menu4, 1);
- TextDrawSetShadow(Menu4, 0);
- TextDrawSetProportional(Menu4, 1);
- //Textdraw Blood Alcohol Level
- Menu5 = TextDrawCreate(500, 420, "~w~Blood Alcohol Level: ~w~0.0%~n~~w~0.40% means death!");
- TextDrawUseBox(Menu5, 1);
- TextDrawFont(Menu5, 1);
- TextDrawLetterSize(Menu5, 0.2, 0.75);
- TextDrawTextSize(Menu5, 600, 200);
- TextDrawBoxColor(Menu5, 0x00000085);
- TextDrawColor(Menu5, 0xFFFFFFFF);
- TextDrawSetOutline(Menu5, 1);
- TextDrawSetShadow(Menu5, 0);
- TextDrawSetProportional(Menu5, 1);
- return 1;
- }
- public OnFilterScriptExit()
- {
- TextDrawDestroy(Menu);
- TextDrawDestroy(Menu2);
- TextDrawDestroy(Menu3);
- TextDrawDestroy(Menu4);
- TextDrawDestroy(Menu5);
- }
- public OnPlayerConnect(playerid)
- {
- PlayerInfo[playerid][InCheckpoint] = 0;
- PlayerInfo[playerid][DrinkingCount] = 0;
- PlayerInfo[playerid][DrinkingType] = 0;
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- PlayerInfo[playerid][InCheckpoint] = 0;
- PlayerInfo[playerid][DrinkingCount] = 0;
- PlayerInfo[playerid][DrinkingType] = 0;
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- if(PlayerInfo[playerid][InCheckpoint] == 0) return 1;
- if(strval(text) == 1 && GetPlayerMoney(playerid) < 5) return PlayerPlaySound(playerid, 1055, 0, 0, 0);
- if(strval(text) == 2 && GetPlayerMoney(playerid) < 10) return PlayerPlaySound(playerid, 1055, 0, 0, 0);
- if(strval(text) == 3 && GetPlayerMoney(playerid) < 15) return PlayerPlaySound(playerid, 1055, 0, 0, 0);
- if(strval(text) == 4 && GetPlayerMoney(playerid) < 20) return PlayerPlaySound(playerid, 1055, 0, 0, 0);
- if(strval(text) == 5 && GetPlayerMoney(playerid) < 25) return PlayerPlaySound(playerid, 1055, 0, 0, 0);
- if(strval(text) == 6 && GetPlayerMoney(playerid) < 30) return PlayerPlaySound(playerid, 1055, 0, 0, 0);
- if(strval(text) == 1)
- {
- SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_BEER);
- PlayerInfo[playerid][DrinkingType] = strval(text);
- PlayerInfo[playerid][DrinkingCount] = 3;
- GivePlayerMoney(playerid, -10);
- PlayerPlaySound(playerid, 1054, 0, 0, 0);
- return 0;
- }
- else if(strval(text) > 1 && strval(text) < 7)
- {
- SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_WINE);
- PlayerInfo[playerid][DrinkingType] = strval(text);
- PlayerInfo[playerid][DrinkingCount] = 3;
- if(strval(text) == 2) GivePlayerMoney(playerid, -10);
- if(strval(text) == 3) GivePlayerMoney(playerid, -15);
- if(strval(text) == 4) GivePlayerMoney(playerid, -20);
- if(strval(text) == 5) GivePlayerMoney(playerid, -25);
- if(strval(text) == 6) GivePlayerMoney(playerid, -30);
- PlayerPlaySound(playerid, 1054, 0, 0, 0);
- return 0;
- }
- return 1;
- }
- public OnPlayerEnterCheckpoint(playerid)
- {
- PlayerInfo[playerid][InCheckpoint] = 1;
- if(PlayerInfo[playerid][CheckSet])
- {
- TextDrawShowForPlayer(playerid, Menu);
- TextDrawShowForPlayer(playerid, Menu2);
- TextDrawShowForPlayer(playerid, Menu3);
- TextDrawShowForPlayer(playerid, Menu4);
- }
- return 1;
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- if(PRESSED(KEY_FIRE) && PlayerInfo[playerid][DrinkingCount] != 0)
- {
- if(PlayerInfo[playerid][DrinkingType] == 1) SetPlayerDrunkLevel(playerid, GetPlayerDrunkLevel(playerid) + 1000);
- if(PlayerInfo[playerid][DrinkingType] == 2) SetPlayerDrunkLevel(playerid, GetPlayerDrunkLevel(playerid) + 3000);
- if(PlayerInfo[playerid][DrinkingType] == 3) SetPlayerDrunkLevel(playerid, GetPlayerDrunkLevel(playerid) + 4000);
- if(PlayerInfo[playerid][DrinkingType] == 4) SetPlayerDrunkLevel(playerid, GetPlayerDrunkLevel(playerid) + 6000);
- if(PlayerInfo[playerid][DrinkingType] == 5) SetPlayerDrunkLevel(playerid, GetPlayerDrunkLevel(playerid) + 8000);
- if(PlayerInfo[playerid][DrinkingType] == 6) SetPlayerDrunkLevel(playerid, GetPlayerDrunkLevel(playerid) + 11000);
- PlayerInfo[playerid][DrinkingCount]--;
- SetTimerEx("CheckDrinkCount", 1000, 0, "i", playerid);
- }
- }
- public OnPlayerLeaveCheckpoint(playerid)
- {
- PlayerInfo[playerid][InCheckpoint] = 0;
- TextDrawHideForPlayer(playerid, Menu);
- TextDrawHideForPlayer(playerid, Menu2);
- TextDrawHideForPlayer(playerid, Menu3);
- TextDrawHideForPlayer(playerid, Menu4);
- return 1;
- }
- public OnPlayerDeath(playerid)
- {
- TextDrawHideForPlayer(playerid, Menu);
- TextDrawHideForPlayer(playerid, Menu2);
- TextDrawHideForPlayer(playerid, Menu3);
- TextDrawHideForPlayer(playerid, Menu4);
- return 1;
- }
- public CheckDrinkCount(playerid)
- {
- if(PlayerInfo[playerid][DrinkingCount] <= 0)
- {
- PlayerInfo[playerid][DrinkingCount] = 0;
- PlayerInfo[playerid][DrinkingType] = 0;
- SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE);
- }
- }
- public CheckPointCheck()
- {
- for(new a = 0; a < MAX_PLAYERS; a++)
- {
- if(IsPlayerConnected(a) == 0) continue;
- new Float:X, Float:Y, Float:Z, radius = 8, disable;
- GetPlayerPos(a, X, Y, Z);
- for(new b = 0; b < 11; b++)
- {
- if((X - radius < CPP[b][0] && X + radius > CPP[b][0]) && (Y - radius < CPP[b][1] && Y + radius > CPP[b][1]) && (Z - radius < CPP[b][2] && Z + radius > CPP[b][2]))
- {
- disable = 1;
- if(PlayerInfo[a][CheckSet] == 1) continue;
- PlayerInfo[a][CheckSet] = 1;
- SetPlayerCheckpoint(a, CPP[b][0], CPP[b][1], CPP[b][2], 2);
- }
- }
- if(disable == 0)
- {
- PlayerInfo[a][CheckSet] = 0;
- DisablePlayerCheckpoint(a);
- }
- }
- }
- public BloodAlcoholLevel()
- {
- new Float:DrunkFloatValue;
- for(new i = 0; i < MAX_PLAYERS; i++)
- {
- if(PlayerInfo[i][DrinkingType] == 7)
- {
- SetPlayerHealth(i, 0);
- continue;
- }
- if(GetPlayerDrunkLevel(i) >= 50000)
- {
- ApplyAnimation(i,"PARACHUTE", "FALL_skyDive_DIE", 4.1, 0, 1, 1, 1, 1);
- PlayerInfo[i][DrinkingType] = 7;
- continue;
- }
- if(IsPlayerConnected(i) == 0) continue;
- TextDrawHideForPlayer(i, Menu5);
- if(GetPlayerDrunkLevel(i) > 0)
- {
- SetPlayerDrunkLevel(i, GetPlayerDrunkLevel(i) - 200);
- DrunkFloatValue = GetPlayerDrunkLevel(i);
- new string[128];
- format(string, sizeof(string), "~w~Blood Alcohol Level: ~w~%0.2f~n~~w~0.40 means death!", DrunkFloatValue / 50000 / 2.5);
- TextDrawSetString(Menu5, string);
- TextDrawShowForPlayer(i, Menu5);
- }
- if(GetPlayerDrunkLevel(i) > 40000) if(random(20) == 0) ApplyAnimation(i, "PED", "WALK_DRUNK", 4.1, 1, 1, 1, 1, 1);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment