Zelt

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
  • Hi Leute ich möchte das wenn man /zelt eingiebt und dann wird vor einem das objekt mit der id 3626 gespawnt,
    das soll aber nur mit dem auto mit der id 433 gehen,
    könnt ihr mir helfen,
    danke

  • Hi,
    so sollte es funktionieren:

    if (strcmp("/zelt", cmdtext, true, 10) == 0)
    {
    if(GetVehicleModel(GetPlayerVehicleID(playerid))==433)
    {
    new Float:Pos[3];
    GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
    CreateObject(3626,Pos[0]+8,Pos[1]+8,Pos[2],0,0,0);


    }
    return 1;
    }



    MfG leonid4s

  • Ein Command womitman das auch Löschen kann, wäre auch nett. :s

  • Da fehltt doch noch was.
    Sry kenne mich mit Scripting nicht mehr aus :D

  • Hi :)


    Am besten oben ins script:


    new Zelt;


    if (strcmp("/zelt", cmdtext, true, 10) == 0)
    {
    if(GetVehicleModel(GetPlayerVehicleID(playerid))==433)
    {
    new Float:Pos[3];
    GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
    Zelt = CreateObject(3626,Pos[0]+8,Pos[1]+8,Pos[2],0,0,0);
    }
    return 1;
    }


    if (strcmp("/zeltkaputt", cmdtext, true, 10) == 0)
    {
    DestroyObject(Zelt);
    return 1;
    }


    CreateObject gibt die ID des Objectes Zurück. Nur mit dieser ID kann man dann das Zelt wieder Löschen. Die ID wird in die Variable "Zelt" gelegt.


    MFG, Robdeflop®

  • kann man dass nicht so machen das der befehl erst wieder funktioniert wenn vorher das zelt gelöscht wurde?
    ich hoffe ihr könnt mir helfen
    danke an alle

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Klar geht das xD Einfach nach löschen auf 0 setzen. Dann vom Erstellen des Objects abfragen ob ID 0 is. Wenn nicht, gehts halt nit :D Oder halt wie Multi schon gesagt hat mit Playervariablen. Oder wenn ein player auch mehrere machen können soll, dann mit schleife^^


    MFG, Robdeflop®

  • Doch. Erstell einfach eine Variable und frage stelle sie dann wenn er das Zelt created auf 1 und wenn dann jemand /zelt macht frage die Variable ab und wenn sie 1 ist mach einfach SendClientMessage....
    und beim Löschen die Variable auf 0 stellen

  • Ganz oben bei den andern "new"s:
    new Zelt[MAX_PLAYERS];


    Unter OnPlayerCommandText:
    if(!strcmp("/zelt aufstellen",cmdtext,true))
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 433)
    {
    new Float:Pos[3];
    GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
    Zelt[playerid] = CreateObject(3626,Pos[0]+8,Pos[1]+8,Pos[2],0,0,0);
    }
    else
    {
    return SendClientMessage(playerid,FARBE,"Du bist nicht in einem 'Fahrzeugname'");
    }
    }
    else
    {
    return SendClientMessage(playerid,FARBE,"Du bist in keinem Fahrzeug!");
    }
    return 1;
    }


    if(!strcmp("/zelt abbauen",cmdtext,true))
    {
    DestroyObject(Zelt[playerid]);
    SendClientMessage(playerid,FARBE,"Dein Zelt wurde erfolgreich abgebaut.");
    return 1;
    }


    MFG
    luckyguy

  • Leute euer gequassel da wird bei ihm nicht ankommen


    was der InCredible meint ist



    sowas wie




    statuszelt = 0;


    statuszelt = 1;


    ja aber er checkt es net man veruscht duch ausführliche rzu erklären

  • Hab jetzt das von luckyguy mal eingebaut,
    jetzt meine frage,
    wie mach ich das dass man pro spieler nur 1 zelt aufbauen kann ?
    Bis /zelt abbauen gemacht wird,
    sonst funktioniert alles


    //Edit:
    Es währe auch cool wenn es sich nach 500 sek. von selbst löscht.
    Aber das muss nicht sein.



    Ihr seit :thumbup:

  • SetTimer("Zeltweg",300000,0);


    forward Zeltweg1();


    public Zeltweg1()
    {
    DestroyObject(Zelt[playerid]);
    return 1;
    }




    so
    UNGETESTET

  • wenn ich es so einbaue:
    if(!strcmp("/zelt aufstellen",cmdtext,true))
    {



    SetTimer("Zeltweg",300000,0);


    forward Zeltweg1();


    public Zeltweg1()
    {
    DestroyObject(Zelt[playerid]);
    return 1;
    }


    if(IsPlayerInAnyVehicle(playerid))
    {
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 433)
    {
    new Float:Pos[3];
    GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
    Zelt[playerid] = CreateObject(3626,Pos[0]+8,Pos[1]+8,Pos[2],0,0,0);

    return 1;
    }
    else
    {
    return SendClientMessage(playerid,0xFFFF00FF,"Du bist nicht in einem 'Fahrzeugname'");
    }
    }
    else
    {
    return SendClientMessage(playerid,0xFFFF00FF,"Du bist in keinem Fahrzeug!");
    }
    return 1;
    }


    return 0;
    }



    und bekomme lauter errors und warnings



  • new Zelt;
    new Zeltvar;
    if(strcmp(cmd, "/zelt", true) == 0)
    {
    if(Zeltvar == 0)
    {
    if(GetPlayerVehicleID(playerid) != 433)
    {
    return SendClientMessage(playerid,COLOR_GREY,"Du bist nicht im dafür vorgesehenen Fahrzeug!");
    }
    else
    {
    new Float:pX,Float:pY,Float:pZ;
    GetPlayerPos(playerid,pX,pY,pZ);
    Zelt = CreateObject(3626,pX+8,pY+8,pZ,0,0,0);
    Zeltvar = 1;
    }
    if(Zeltvar == 1)
    {
    DestroyObject(Zelt);
    Zeltvar = 0;
    }
    }
    return 1;
    }


    Ich denke mal das es so funktioniert!
    Hoffe ich konnte helfen.


    //Edit: Habe es erneuert und getestet!Ohne Errors etc.!


    Lg
    Hardcore