Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <zcmd>
- #include <streamer>
- #define MAX_PORTALS 200
- #define PRESSED(%0) \
- (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
- enum pInfo
- {
- pCreated[2],
- Float:pPos[6],
- pCount,
- pObject[2],
- Text3D:PortalText[2],
- };
- new PortalInfo[MAX_PORTALS][pInfo];
- new gunMode[MAX_PLAYERS];
- new TPed[MAX_PLAYERS];
- public OnFilterScriptInit()
- {
- for(new i; i < MAX_PORTALS; i++) { i = 0; return 1;}
- print(" Multifunctional Bullets - [Cannary2048]");
- return 1;
- }
- forward UnFreeze(playerid);
- public UnFreeze(playerid)
- {
- TogglePlayerControllable(playerid, 1);
- TPed[playerid] = 0;
- return 1;
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- if(newkeys == KEY_CROUCH && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
- {
- for(new i = 0; i < sizeof(PortalInfo); i++)
- {
- if(PortalInfo[i][pCreated][0] == 1 && PortalInfo[i][pCreated][1] == 1)
- {
- if(IsPlayerInRangeOfPoint(playerid, 2.5, PortalInfo[i][pPos][3], PortalInfo[i][pPos][4], PortalInfo[i][pPos][5]) && TPed[playerid] == 0)
- {
- SetPlayerPos(playerid, PortalInfo[i][pPos][0], PortalInfo[i][pPos][1], PortalInfo[i][pPos][2]);
- TogglePlayerControllable(playerid, 0);
- SetTimerEx("UnFreeze", 1000, false, "i", playerid);
- TPed[playerid] = 1;
- }
- if(IsPlayerInRangeOfPoint(playerid, 2.5, PortalInfo[i][pPos][0], PortalInfo[i][pPos][1], PortalInfo[i][pPos][2]) && TPed[playerid] == 0)
- {
- SetPlayerPos(playerid, PortalInfo[i][pPos][3], PortalInfo[i][pPos][4], PortalInfo[i][pPos][5]);
- TogglePlayerControllable(playerid, 0);
- SetTimerEx("UnFreeze", 1000, false, "i", playerid);
- TPed[playerid] = 1;
- }
- }
- }
- return 1;
- }
- if (PRESSED( KEY_WALK | KEY_YES ))
- {
- new string[64];
- gunMode[playerid] += 1;
- if(gunMode[playerid] == 1) { format(string, sizeof(string), "MODE: {3399FF}Portal"); }
- if(gunMode[playerid] == 2) { format(string, sizeof(string), "MODE: {FFFF00}Exploding"); }
- if(gunMode[playerid] == 3) { format(string, sizeof(string), "MODE: {808080}Drunk"); }
- if(gunMode[playerid] > 3) { gunMode[playerid] = 0; format(string, sizeof(string), "MODE: Normal"); }
- SendClientMessage(playerid, -1, string);
- }
- return 1;
- }
- stock CreatePortal(Float:x, Float:y, Float:z)
- {
- for(new i = 0; i < sizeof(PortalInfo); i++)
- {
- if(PortalInfo[i][pCreated][0] == 0 && PortalInfo[i][pCreated][1] == 0)
- {
- PortalInfo[i][pCreated][0] = 1;
- PortalInfo[i][pPos][0] = x;
- PortalInfo[i][pPos][1] = y;
- PortalInfo[i][pPos][2] = z;
- PortalInfo[i][pObject][0] = CreateObject(19256, x, y, z, 0, 0, 0);
- PortalInfo[i][pCount] += 1;
- PortalInfo[i][PortalText][0] = Create3DTextLabel("{3399FF}[Portal]{FFFFFF}\nC to Teleport\nC-248 {99FF33}Science{FFFFFF} Division", 0xFFFFFFFF, x, y, z+0.2, 10.0, 0, 0);
- return 1;
- }
- if(PortalInfo[i][pCreated][0] == 1 && PortalInfo[i][pCreated][1] == 0)
- {
- PortalInfo[i][pPos][3] = x;
- PortalInfo[i][pPos][4] = y;
- PortalInfo[i][pPos][5] = z;
- PortalInfo[i][pObject][1] = CreateObject(19256, x, y, z, 0, 0, 0);
- PortalInfo[i][pCount] += 1;
- PortalInfo[i][PortalText][1] = Create3DTextLabel("{FF9933}[Portal]{FFFFFF}\nC to Teleport\nC-248 {99FF33}Science{FFFFFF} Division", 0xFFFFFFFF, x, y, z+0.2, 10.0, 0, 0);
- PortalInfo[i][pCreated][1] = 1;
- return 1;
- }
- if(PortalInfo[i][pCount] == MAX_PORTALS) { return DeleteAllPortals(); }
- }
- return 0;
- }
- CMD:clear(playerid, params[])
- {
- DeleteAllPortals();
- return 1;
- }
- public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart)
- {
- if(gunMode[issuerid] == 3 && GetPlayerWeapon(playerid) > 0 && playerid != issuerid)
- {
- SetPlayerDrunkLevel(playerid, 6000);
- SetTimerEx("UnDrunk", 25000, false, "i", playerid);
- }
- return 1;
- }
- forward UnDrunk(playerid);
- public UnDrunk(playerid)
- {
- SetPlayerDrunkLevel(playerid, 0);
- return 1;
- }
- stock DeleteAllPortals()
- {
- for(new i = 0; i < sizeof(PortalInfo); i++)
- {
- if(PortalInfo[i][pCreated][0] == 1 && PortalInfo[i][pCreated][1] == 1)
- {
- PortalInfo[i][pCreated]=0;
- PortalInfo[i][pPos][0]=0.0;
- PortalInfo[i][pPos][1]=0.0;
- PortalInfo[i][pPos][2]=0.0;
- PortalInfo[i][pPos][3]=0.0;
- PortalInfo[i][pPos][4]=0.0;
- PortalInfo[i][pPos][5]=0.0;
- PortalInfo[i][pCount] = 0;
- DestroyObject(PortalInfo[i][pObject][0]);
- DestroyObject(PortalInfo[i][pObject][1]);
- Delete3DTextLabel(Text3D:PortalInfo[i][PortalText][0]);
- Delete3DTextLabel(Text3D:PortalInfo[i][PortalText][1]);
- }
- }
- return 0;
- }
- public OnFilterScriptExit()
- {
- return 1;
- }
- GetXYInFrontOfPlayer(playerid, &Float:x, &Float:y, Float:distance)
- {
- new Float:a;
- GetPlayerPos(playerid, x, y, a);
- GetPlayerFacingAngle(playerid, a);
- if (GetPlayerVehicleID(playerid))
- {
- GetVehicleZAngle(GetPlayerVehicleID(playerid), a);
- }
- x += (distance * floatsin(-a, degrees));
- y += (distance * floatcos(-a, degrees));
- }
- CMD:gun(playerid, params[])
- {
- GivePlayerWeapon(playerid, 23, 100);
- GivePlayerWeapon(playerid, 34, 100);
- GivePlayerWeapon(playerid, 38, 100);
- return 1;
- }
- public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
- {
- if(hittype == 0 || hittype == 3)
- {
- if(gunMode[playerid] == 1 && GetPlayerWeapon(playerid) == 34 || GetPlayerWeapon(playerid) == 23)
- {
- new Float: A, Float: rX, Float: rY;
- GetXYInFrontOfPlayer(playerid, rX, rY, 5.0);
- GetPlayerFacingAngle(playerid, A);
- CreatePortal(fX, fY, fZ);
- }
- if(gunMode[playerid] == 2 && GetPlayerWeapon(playerid) == 34 || GetPlayerWeapon(playerid) == 23)
- {
- CreateExplosion(fX, fY, fZ, 12, 5.0);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement