Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //* Das Filterscript wurde geschrieben von Mert_Coleman und Syfox *//
- #include <a_samp>
- #include <zcmd>
- #include <streamer>
- #include <foreach>
- #define GRAU 0xAFAFAFAA
- #define WEIß 0xFFFFFFAA
- #define GELB 0xFFFF00AA
- #define Raketenhöhe 50
- #define Raketenverbreitung 30
- #define MAX_STARTS 20
- #define MAX_FEUERWERKE 100
- new Raket[MAX_STARTS],
- Raketenlicht[MAX_STARTS],
- Raketenrauch[MAX_STARTS],
- Raketenexplosion[MAX_STARTS],
- Float:rx[MAX_STARTS],
- Float:ry[MAX_STARTS],
- Float:rz[MAX_STARTS],
- FeuerwerkTotal,
- Schuesse;
- public OnFilterScriptInit()
- {
- }
- public OnFilterScriptExit()
- {
- }
- forward Feuerwerk(i);
- public Feuerwerk(i)
- {
- new Float:x, Float:y, Float:z;
- x = rx[i];
- y = ry[i];
- z = rz[i];
- z += Raketenhöhe;
- if (Raketenexplosion[i] == 0)
- {
- DestroyDynamicObject(Raket[i]);
- DestroyDynamicObject(Raketenlicht[i]);
- DestroyDynamicObject(Raketenrauch[i]);
- CreateExplosion(x ,y, z, 4, 10);
- CreateExplosion(x ,y, z, 5, 10);
- CreateExplosion(x ,y, z, 6, 10);
- }
- else if (Raketenexplosion[i] >= MAX_FEUERWERKE)
- {
- for (new j = 0; j <= Raketenverbreitung; j++)
- {
- CreateExplosion(x + float(j - (Raketenverbreitung / 2)), y, z, 7, 10);
- CreateExplosion(x, y + float(j - (Raketenverbreitung / 2)), z, 7, 10);
- CreateExplosion(x, y, z + float(j - (Raketenverbreitung / 2)), 7, 10);
- }
- Raketenexplosion[i] = -1;
- FeuerwerkTotal = 0;
- Schuesse = 0;
- return 1;
- }
- else
- {
- x += float(random(Raketenhöhe) - (Raketenhöhe / 2));
- y += float(random(Raketenhöhe) - (Raketenhöhe / 2));
- z += float(random(Raketenhöhe) - (Raketenhöhe / 2));
- CreateExplosion(x, y, z, 7, 10);
- }
- Raketenexplosion[i]++;
- SetTimerEx("Feuerwerk", 250, 0, "i", i);
- return 1;
- }
- CMD:fwplatzieren(playerid, params[])
- {
- if(IsPlayerAdmin(playerid))
- {
- if(FeuerwerkTotal == MAX_STARTS)
- {
- SendClientMessage(playerid, WEIß, "Du hast die maximale Anzahl von Feuerwerkskörpern zu setzen erreicht");
- return 1;
- }
- if(Schuesse == 1)
- {
- SendClientMessage(playerid, WEIß, "Warte bis deine Feuerwerke platzen bevor du neue legst");
- return 1;
- }
- new string[128],name[24];
- GetPlayerName(playerid, name, 24);
- format(string, sizeof(string), "%s hat ein Feuerwerk platziert",name );
- new Float:x, Float:y, Float:z, Float:a;
- GetPlayerPos(playerid, x, y, z);
- foreach(Player, i)
- {
- if(IsPlayerInRangeOfPoint(i, 30, x, y, z)) {
- SendClientMessage(i, GELB, string);
- }
- }
- GetPlayerFacingAngle(playerid, a);
- x += (2 * floatsin(-a, degrees));
- y += (2 * floatcos(-a, degrees));
- Raket[FeuerwerkTotal] = CreateDynamicObject(3786, x, y, z, 0, 90, 0);
- Raketenlicht[FeuerwerkTotal] = CreateDynamicObject(354, x, y, z + 1, 0, 90, 0);
- Raketenrauch[FeuerwerkTotal] = CreateDynamicObject(18716, x, y, z - 4, 0, 0, 0);
- rx[FeuerwerkTotal] = x;
- ry[FeuerwerkTotal] = y;
- rz[FeuerwerkTotal] = z;
- Raketenexplosion[FeuerwerkTotal] = 0;
- FeuerwerkTotal++;
- }
- return 1;
- }
- CMD:fwstarten(playerid, params[])
- {
- if(IsPlayerAdmin(playerid))
- {
- if(FeuerwerkTotal == 0)
- {
- SendClientMessage(playerid, WEIß, "Du hast noch keine Feuerwerke bei dir");
- return 1;
- }
- if(Schuesse == 1)
- {
- SendClientMessage(playerid, WEIß, "Du hast deine Feuerwerke bereits abgefeuert");
- return 1;
- }
- for(new i = 0; i < FeuerwerkTotal; i++)
- {
- CreateExplosion(rx[i] ,ry[i], rz[i], 12, 5);
- new time = MoveDynamicObject(Raket[i], rx[i] ,ry[i], rz[i] + Raketenhöhe, 10);
- MoveDynamicObject(Raketenlicht[i], rx[i] ,ry[i], rz[i] + 2 + Raketenhöhe, 10);
- MoveDynamicObject(Raketenrauch[i], rx[i] ,ry[i], rz[i] + Raketenhöhe, 10);
- SetTimerEx("Feuerwerk", time, 0, "i", i);
- }
- Schuesse = 1;
- }
- return 1;
- }
- //* by Mert_Coleman & Syfox *//
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement