Bombenangriff auf sich selbst geht nicht

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • ich versuche gerade
    ein Bombenangriff-script auf sich selber zu schreiben
    aber erstmall fliegt die bombe nicht durch die luft und zweitens
    verstehe ich die ganze timer logik nicht
    hier der script



    new Missle ,GetMisslePos;


    if (strcmp("/missle", cmdtext, true, 10) == 0)
    {
    if (IsPlayerAdmin(playerid))
    {
    new Float:X,Float:Y,Float:Z;
    if(IsValidObject(Missle)) return SendClientMessage(playerid, ROT, "You already dropped a missile that's currently in progress of exploding");
    GetPlayerPos(playerid, X,Y,Z);
    Missle = CreateObject(3786, X, Y, Z+50, 357.6293, 272.3375, 6.8755);
    MoveObject(Missle, X, Y, Z, 60.0);
    GetMisslePos = SetTimer("MisslePosGet",30000,1);
    }
    else return SendClientMessage(playerid, ROT, "You're not a lead admin!");
    return 1;


    forward MisslePosGet(playerid, objectid, type);


    public MisslePosGet(playerid, objectid, type)
    {
    new Float:MX,Float:MY,Float:MZ;
    new Float:PX,Float:PY,Float:PZ;
    GetObjectPos(objectid == Missle, MX, MY, MZ);
    GetPlayerPos(playerid, PX, PY, PZ);
    if(IsPlayerInRangeOfPoint(objectid == Missle, 3.0, PX, PY, PZ))
    {
    CreateExplosion(PX, PY, PZ, type == 2, 10.0);
    DestroyObject(Missle);
    KillTimer(GetMisslePos);
    }
    else
    {
    MoveObject(Missle, PX, PY, PZ,30.0);
    }
    return 1;
    }

    mit dem sync der timer und der rakete verstehe ich nicht
    könnt ihr mir helfen
    MFG Piet

  • new Missle ,GetMisslePos;


    if (strcmp("/missle", cmdtext, true, 7) == 0) {
    if (IsPlayerAdmin(playerid)) {
    new Float:X,Float:Y,Float:Z;
    if(IsValidObject(Missle)) return SendClientMessage(playerid, ROT, "You already dropped a missile that's currently in progress of exploding");
    GetPlayerPos(playerid, X,Y,Z);
    Missle = CreateObject(3786, X, Y, Z+50, 357.6293, 272.3375, 6.8755);
    MoveObject(Missle, X, Y, Z, 60.0);
    GetMisslePos = SetTimerEx("MisslePosGet",3000,1,"ddd",playerid,Missle,2);
    }
    else return SendClientMessage(playerid, ROT, "You're not a lead admin!");
    return 1;
    }
    forward MisslePosGet(playerid, objectid, type);


    public MisslePosGet(playerid, objectid, type) {
    new Float:PX,Float:PY,Float:PZ;
    GetPlayerPos(playerid, PX, PY, PZ);
    if(IsPlayerInRangeOfPoint(objectid, 3.0, PX, PY, PZ)) {
    CreateExplosion(PX, PY, PZ, type, 10.0);
    DestroyObject(Missle);
    KillTimer(GetMisslePos);
    }
    return 1;
    }