Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- S.W.A.T virvė [failas:fcs_virve]
- AUTORIUS:
- Tomas "f0cus" Vosylius
- DATA:
- 2014-07-20
- VERSIJA:
- 1.0 (updated: 2014-07-20)
- PAGALBA:
- BLASIUM
- Kalcor
- SA-MP TEAM
- DracoBlue
- Radus klaidą, praneškite ją į skype: factro0, arba filterscript publikavimo temoje.
- Perdaryti ir/ar perpublikuoti be autoriaus sutikimo yra draudžiama.
- */
- #include <a_samp>
- #include <mapandreas>
- // Sisteminiai nustatymai
- #define ChopperID 497 // Lėktuvo ID, iš kurio leidžiama leistis
- #define SkinID 285 // Išvaizdos ID, su kuria bus leidžiama leistis
- #define SlidingLenght 100 // Aukštis žaidimo metrais, aukščiau jo negalima leistis virve
- #define CheckSkin false // Ar tikrinti žaidėjo išvaizdos ID, su kuria leidžiama leistis (nustatyta viršuje)
- #define CheckChopper false // Ar tikrinti sraigtasparnio ID, iš kurio leidžiama leistis. Jei nustatyta FALSE, tikrinama bus ar išvis lėktuve (nustatyta viršuje)
- /*
- true = taip (tikrinti)
- false = ne (netikrinti)
- */
- // Kodavimo define
- #define IsPlayerSliding(%1) GetPVarInt(%1,"is_sliding")
- #define SetIsPlayerSliding(%1,%2) SetPVarInt(%1,"is_sliding",%2)
- #define SetCanPlayerSlide(%1,%2) SetPVarInt(%1,"can_slide",%2)
- #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
- new Float:pid_pos[MAX_PLAYERS][5],
- tikrinamSkin = CheckSkin,
- tikrinamSraigta = CheckChopper;
- public OnFilterScriptInit()
- {
- MapAndreas_Init(MAP_ANDREAS_MODE_FULL);
- print("\n FS::\t\"S.W.A.T virvė\" sėkmingai paleista.");
- print(" FS::\tŠio įskiepio autorius yra Tomas \"f0cus\" Vosylius\n");
- return 1;
- }
- public OnFilterScriptExit()
- {
- print("\n FS::\t\"S.W.A.T virvė\" išjungta.");
- print(" FS::\tŠio įskiepio autorius yra Tomas \"f0cus\" Vosylius\n");
- 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 OnPlayerSpawn(playerid)
- {
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- if(IsPlayerSliding(playerid) == 1)
- {
- SetIsPlayerSliding(playerid, 0);
- ClearAnimations(playerid);
- TogglePlayerControllable(playerid, true);
- }
- return 1;
- }
- public OnVehicleDeath(vehicleid, killerid)
- {
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- dcmd(lvirve,6, cmdtext);
- return 0;
- }
- dcmd_lvirve(playerid, params[])
- {
- #pragma unused params
- new reikiamaMasina = GetPlayerVehicleID(playerid);
- if(IsPlayerInAnyVehicle(playerid) && IsPlayerSliding(playerid) == 0 && GetPlayerVehicleSeat(playerid) != 1)
- {
- if(tikrinamSkin)
- {
- if(GetPlayerSkin(playerid) != SkinID)
- return SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}Jūs neesate tinkamai apsirengęs!");
- }
- if(tikrinamSraigta)
- {
- if(GetVehicleModel(reikiamaMasina) != ChopperID)
- return SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}Jūs neesate tinkamame lėktuve!");
- }
- else if(!tikrinamSraigta)
- {
- if(GetVehicleModel(reikiamaMasina) != 488 && GetVehicleModel(reikiamaMasina) != 487 && GetVehicleModel(reikiamaMasina) != 417\
- && GetVehicleModel(reikiamaMasina) != 447 && GetVehicleModel(reikiamaMasina) != 469 && GetVehicleModel(reikiamaMasina) != 548\
- && GetVehicleModel(reikiamaMasina) != 563 && GetVehicleModel(reikiamaMasina) != 497) // patikrinome ar išvis yra kokiam nors sraigtasparnyje
- return SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}Jūs neesate tinkamame transporte!");
- }
- GetPlayerPos(playerid,pid_pos[playerid][0],pid_pos[playerid][1],pid_pos[playerid][2]); // Išgauname žaidėjo X / Y / Z koordinates
- MapAndreas_FindZ_For2DCoord(pid_pos[playerid][0],pid_pos[playerid][1],pid_pos[playerid][3]); // Surandame aukščiausią tašką X / Y žaidėjo koordinatėje
- pid_pos[playerid][4] = floatsub(pid_pos[playerid][2],pid_pos[playerid][3]); // Sutraukiame koordinates į vieną, bei surandame skirtumus
- if(pid_pos[playerid][4] > SlidingLenght) // Tikriname ar žaidėjo aukštis nuo aukščiausio taško nėra didesnis nei limitas
- return SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}Iš tokio aukščio nusileisti negalite, esate per aukštai!");
- if(pid_pos[playerid][4] < 4) // Tikriname ar žaidėjo aukštis yra didesnis nei 4 metrai, nes tai yra per žemai.
- return SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}Iš tokio aukščio nusileisti negalite, esate per žemai!");
- SendClientMessage(playerid, 0xFFFFFFFF, "{BABABA}Pradėjote leistis!");
- SetIsPlayerSliding(playerid, 1);
- SetCanPlayerSlide(playerid, 0);
- SetPlayerCheckpoint(playerid,pid_pos[playerid][0],pid_pos[playerid][1],floatsub(pid_pos[playerid][3],12),20);
- SetPlayerPos(playerid,pid_pos[playerid][0],pid_pos[playerid][1],floatsub(pid_pos[playerid][2],2));
- SetPlayerVelocity(playerid,0,0,0);
- ApplyAnimation(playerid,"ped","abseil",4.0,0,0,0,1,0);
- SetTimerEx("PlayerSlide", 700, false, "i", playerid);
- }
- else
- return SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}Leistis virve negalite!");
- return true;
- }
- forward PlayerSlide(playerid);
- forward LastMeters(playerid);
- public PlayerSlide(playerid)
- {
- if(IsPlayerSliding(playerid) > 0)
- {
- ApplyAnimation(playerid,"ped","abseil",4.0,0,0,0,1,0);
- SetTimerEx("PlayerSlide", 100, false, "i", playerid);
- }
- else
- return 0;
- return true;
- }
- public LastMeters(playerid)
- {
- if(IsPlayerSliding(playerid) > 0)
- {
- TogglePlayerControllable(playerid, true);
- ClearAnimations(playerid);
- SendClientMessage(playerid, 0xFFFFFFFF, "{00F900}Sėkmingai nusileidote!");
- SetIsPlayerSliding(playerid, 0);
- }
- return true;
- }
- public OnPlayerEnterCheckpoint(playerid)
- {
- if(IsPlayerSliding(playerid) == 1)
- {
- DisablePlayerCheckpoint(playerid);
- SetTimerEx("LastMeters", 150, false, "i", playerid);
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment