Problem bei /legbombe - Fraktion Terroristen im Script Los Angeles Roleplay

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
  • Hallo habe hiervon das script Los Angelos Roleplay
    Hier das Quellscript : [ GAMEMODE ] Los Angeles Reallife [ v4.9.1 ]
    Allerdings gibt es da einen Bug bei /legbombe
    ein spieler hatte den befehl ausprobiert und mir gemeldet das die bombe nicht erstellt wird weis jeman wo der fehler liegen könnte??
    ??


    Hier mal das Snippet aus dem script:
    Erstmal der comand der scheint ja nach meines ersehens i.o zu sein
    befindet sich unter OnPlayerCommandText

    if(strcmp(cmd, "/legbombe", true) == 0 || strcmp(cmd, "/bombelegen", true) == 0)
    {
    if(PlayerInfo[playerid][pMember] == 20 || PlayerInfo[playerid][pLeader] == 20)
    {
    if(BombStatus == 1)
    {
    SendClientMessage(playerid, COLOR_WHITE, "Du kannst nur alle 40min eine Bombe legen.");
    }
    else if(PlayerInfo[playerid][pAdmin] == 1337)
    {
    }
    else if(PlayerInfo[playerid][pJailed] > 0)
    {
    SendClientMessage(playerid, COLOR_WHITE, "Du kannst dich nicht im Gefängnis hochjagen.");
    }
    else if(GetPlayerInterior(playerid) > 0)
    {
    SendClientMessage(playerid, COLOR_WHITE, "Das ist ein schlechter Ort für eine Bombe...");
    }
    else
    {
    ShowMenuForPlayer(Menu:BOMB,playerid);
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_WHITE, "*Du bist kein Terrorist.");
    }
    return 1;
    }


    Nun aber zum hauptteil
    Die bombe wird im dem Script mit einem dialog erstellt

    public OnPlayerSelectedMenuRow(playerid, row)
    {
    new Menu:CurrentMenu = GetPlayerMenu(playerid);
    if(CurrentMenu == BOMB)
    {
    switch(row)//rot,gelb,grün,blau
    {
    case 0://rot
    {
    GetPlayerPos(playerid, PlayerExplosionX[1], PlayerExplosionY[1], PlayerExplosionZ[1]);
    SendClientMessage(playerid, COLOR_LIGHTRED, "** Bombe wurde gelegt! Du hast den ROTEN Draht genommen!");
    bombe =CreateObject(1719, PlayerExplosionX[1], PlayerExplosionY[1], PlayerExplosionZ[1]-0.85, 0.0000, 0.0000, 0.0000);
    ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.0, 0, 0, 0, 0, 0);
    bombexplotimer = SetTimerEx("bombexplode",60000,0,"i",playerid);
    BombStatus = 1;
    Bombactivated=1;
    bombdrahtchoosen = 1;
    bombdraht1 = 1;
    bombdraht2 = 0;
    bombdraht3 = 0;
    bombdraht4 = 0;
    for(new i = 0; i <MAX_PLAYERS; i++)
    {
    if(IsACop(i))
    {
    SendClientMessage(i,COLOR_RED,"** Passanten melden, das sie eine Verdächtige Person entdeckt haben");
    SendClientMessage(i,COLOR_RED,"** die eine Bombe gelegt haben soll!!");
    bombzone = GangZoneCreate(PlayerExplosionX[1]-random(60), PlayerExplosionY[1]-random(60), PlayerExplosionX[1]+random(60), PlayerExplosionY[1]+random(60));
    GangZoneShowForPlayer(i,bombzone,COLOR_RED);
    GangZoneFlashForPlayer(i,bombzone,COLOR_GREEN);
    }
    }
    }
    case 1://gelb
    {
    GetPlayerPos(playerid, PlayerExplosionX[1], PlayerExplosionY[1], PlayerExplosionZ[1]);
    SendClientMessage(playerid, COLOR_LIGHTRED, "** Bombe wurde gelegt! Du hast den GELBEN Draht genommen!");
    bombe =CreateObject(1719, PlayerExplosionX[1], PlayerExplosionY[1], PlayerExplosionZ[1]-0.85, 0.0000, 0.0000, 0.0000);
    ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.0, 0, 0, 0, 0, 0);
    bombexplotimer = SetTimerEx("bombexplode",60000,0,"i",playerid);
    BombStatus = 1;
    Bombactivated=1;
    bombdrahtchoosen = 1;
    bombdraht1 = 0;
    bombdraht2 = 1;
    bombdraht3 = 0;
    bombdraht4 = 0;
    for(new i = 0; i <MAX_PLAYERS; i++)
    {
    if(IsACop(i))
    {
    SendClientMessage(i,COLOR_RED,"BOMBENALARM: Es wurde eine Bombe gelegt!");
    bombzone = GangZoneCreate(PlayerExplosionX[1]-random(60), PlayerExplosionY[1]-random(60), PlayerExplosionX[1]+random(60), PlayerExplosionY[1]+random(60));
    GangZoneShowForPlayer(i,bombzone,COLOR_RED);
    GangZoneFlashForPlayer(i,bombzone,COLOR_GREEN);
    }
    }
    }
    case 2://grün
    {
    GetPlayerPos(playerid, PlayerExplosionX[1], PlayerExplosionY[1], PlayerExplosionZ[1]);
    SendClientMessage(playerid, COLOR_LIGHTRED, "** Bombe wurde gelegt! Du hast den GRÜNEN Draht genommen!");
    bombe =CreateObject(1719, PlayerExplosionX[1], PlayerExplosionY[1], PlayerExplosionZ[1]-0.85, 0.0000, 0.0000, 0.0000);
    ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.0, 0, 0, 0, 0, 0);
    bombexplotimer = SetTimerEx("bombexplode",60000,0,"i",playerid);
    BombStatus = 1;
    Bombactivated=1;
    bombdrahtchoosen = 1;
    bombdraht1 = 0;
    bombdraht2 = 0;
    bombdraht3 = 1;
    bombdraht4 = 0;
    for(new i = 0; i <MAX_PLAYERS; i++)
    {
    if(IsACop(i))
    {
    SendClientMessage(i,COLOR_RED,"BOMBENALARM: Es wurde eine Bombe gelegt!");
    bombzone = GangZoneCreate(PlayerExplosionX[1]-random(60), PlayerExplosionY[1]-random(60), PlayerExplosionX[1]+random(60), PlayerExplosionY[1]+random(60));
    GangZoneShowForPlayer(i,bombzone,COLOR_RED);
    GangZoneFlashForPlayer(i,bombzone,COLOR_GREEN);
    }
    }
    }
    case 3://blau
    {
    GetPlayerPos(playerid, PlayerExplosionX[1], PlayerExplosionY[1], PlayerExplosionZ[1]);
    SendClientMessage(playerid, COLOR_LIGHTRED, "** Bombe wurde gelegt! Du hast den BLAUEN Draht genommen!");
    bombe =CreateObject(1719, PlayerExplosionX[1], PlayerExplosionY[1], PlayerExplosionZ[1]-0.85, 0.0000, 0.0000, 0.0000);
    ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.0, 0, 0, 0, 0, 0);
    bombexplotimer = SetTimerEx("bombexplode",60000,0,"i",playerid);
    BombStatus = 1;
    Bombactivated=1;
    bombdrahtchoosen = 1;
    bombdraht1 = 0;
    bombdraht2 = 0;
    bombdraht3 = 0;
    bombdraht4 = 1;
    for(new i = 0; i <MAX_PLAYERS; i++)
    {
    if(IsACop(i))
    {
    SendClientMessage(i,COLOR_RED,"BOMBENALARM: Es wurde eine Bombe gelegt!");
    bombzone = GangZoneCreate(PlayerExplosionX[1]-random(60), PlayerExplosionY[1]-random(60), PlayerExplosionX[1]+random(60), PlayerExplosionY[1]+random(60));
    GangZoneShowForPlayer(i,bombzone,COLOR_RED);
    GangZoneFlashForPlayer(i,bombzone,COLOR_GREEN);
    }
    }
    }
    }
    }
    if(CurrentMenu == BOMBD && bombdrahtchoosen == 1)
    {
    switch(row)//rot,gelb,grün,blau
    {
    case 0://rot
    {//&& bombdraht2 = 0 || bombdraht3 = 0 || bombdraht4 && 0
    if(bombdraht1 == 1)
    {
    Bombtimer(3,playerid);
    bombdraht1 = 0;
    bombdraht2 = 0;
    bombdraht3 = 0;
    bombdraht4 = 1;
    }
    else if(bombdraht1 == 0)
    {
    bombexplode(playerid);
    bombdraht1 = 0;
    bombdraht2 = 0;
    bombdraht3 = 0;
    bombdraht4 = 1;
    }
    bombdrahtchoosen = 0;
    }
    case 1://gelb
    {
    bombdrahtchoosen = 0;
    if(bombdraht2 == 1)
    {
    Bombtimer(3,playerid);
    bombdraht1 = 0;
    bombdraht2 = 0;
    bombdraht3 = 0;
    bombdraht4 = 1;
    }
    else if(bombdraht2 == 0)
    {
    bombexplode(playerid);
    bombdraht1 = 0;
    bombdraht2 = 0;
    bombdraht3 = 0;
    bombdraht4 = 1;
    }
    }
    case 2://grün
    {
    bombdrahtchoosen = 0;
    if(bombdraht3 == 1)
    {
    Bombtimer(3,playerid);
    bombdraht1 = 0;
    bombdraht2 = 0;
    bombdraht3 = 0;
    bombdraht4 = 1;
    }
    else if(bombdraht3 == 0)
    {
    bombexplode(playerid);
    bombdraht1 = 0;
    bombdraht2 = 0;
    bombdraht3 = 0;
    bombdraht4 = 1;
    }
    }
    case 3://blau
    {
    bombdrahtchoosen = 0;
    if(bombdraht4 == 1)
    {
    Bombtimer(3,playerid);
    bombdraht1 = 0;
    bombdraht2 = 0;
    bombdraht3 = 0;
    bombdraht4 = 1;
    }
    else if(bombdraht4 == 0)
    {
    bombexplode(playerid);
    bombdraht1 = 0;
    bombdraht2 = 0;
    bombdraht3 = 0;
    bombdraht4 = 1;
    }
    }
    }
    }
    // restlicher code vom Script


    Es geht darum man sieht die bombe nicht.. die animation allerdings wird abgespielt..
    Wo könnte der fehler liegen ?

    Einmal editiert, zuletzt von locomaster ()

  • Probier es mal so:


    if(strcmp(cmd, "/legbombe", true) == 0 || strcmp(cmd, "/bombelegen", true) == 0)
    {
    if(PlayerInfo[playerid][pMember] == 20 || PlayerInfo[playerid][pLeader] == 20)
    {
    if(BombStatus == 1)
    {
    SendClientMessage(playerid, COLOR_WHITE, "Du kannst nur alle 40min eine Bombe legen.");
    }
    else if(PlayerInfo[playerid][pAdmin] == 1337)
    {
    }
    else if(PlayerInfo[playerid][pJailed] > 0)
    {
    SendClientMessage(playerid, COLOR_WHITE, "Du kannst dich nicht im Gefängnis hochjagen.");
    }
    else if(GetPlayerInterior(playerid) > 0)
    {
    SendClientMessage(playerid, COLOR_WHITE, "Das ist ein schlechter Ort für eine Bombe...");
    }
    else if(GetPlayerInterior(playerid) == 0 && PlayerInfo[playerid][pJailed] == 0 && BombStatus == 0)
    {
    ShowMenuForPlayer(Menu:BOMB,playerid);
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_WHITE, "*Du bist kein Terrorist.");
    }
    return 1;
    }



    :thumbup: mfg.

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Werd ich mal versuchen müssen ... ich hoff echt das es daran liegt...
    Danke erstmal wenn die anderen besser lösungen haben hör ich sie gerne ..


    // an Kaliber
    Danke für deine mühe
    Habe den code drin
    Nur leider wird immer noch keine Bombe erstellt..


    Die animation dazu spielt er ab..

    Einmal editiert, zuletzt von locomaster () aus folgendem Grund: Ausprobiert misserfolg

  • Die Nachricht das die bombe gelegt wurde erscheint und welcher draht auch..


    aber das objekt nicht!


    //Edit Thread kann geschlossen werden..
    //PS wer das gleiche problem hat wie ich da ich noch zusätsliche Filterscripte hatte
    //Nutzt einen Objectstreame da SA-MP standard nur 400 Objecte schaft..


    Ein dank an InternetInk Aka Benjamin der mir Per PN geholfen hat..
    Du hast was gut :)


    _CLOSED_!

    Einmal editiert, zuletzt von locomaster ()