Ingame Objekt nach Befehl erstellen

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.


    Ich will bei dem Gärtner Job, nach dem Befehl /pflanzen eine Pflanze an der Stelle des Spielers erstellen.
    Ich habe das schon fertig und arbeite mit GetPlayerPos


    Doch immoment lasse ich die Pflanze mit CreateObject in dem Befehl erstellen.
    Doch wenn ich es Teste, erscheint das Object nicht.


    Der Befehl funktioniert.
    Wie muss ich die Pflanze (Object) Ingame erstellen lassen?


    Mfg

  • if(strcmp(cmd,"/pflanzen",true)==0)
    {
    if(PlayerInfo[playerid][pJob] == 20 && DuengerJob[playerid]==1)
    {
    GetPlayerPos(playerid, PlantPos[0], PlantPos[1], PlantPos[2]);
    CreateObject(804, PlantPos[0], PlantPos[2], PlantPos[3], 0.00000, 0.00000, 0.00000);
    SendClientMessage(playerid,COLOR_GREEN,"Du hast den Dünger erfolgreich verwendet!");
    SendClientMessage(playerid,COLOR_GREEN,"Eine neue Pflanze wurde gepflanzt!");
    SendClientMessage(playerid,COLOR_YELLOW,"Du hast soeben deinen Lohn erhalten, 2000 $");
    GivePlayerMoney(playerid,2000);
    DuengerJob[playerid] = 0;
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du bist kein Gärtner oder hast kein Dünger!");
    }
    }

  • if(strcmp(cmd,"/pflanzen",true)==0)
    {
    if(PlayerInfo[playerid][pJob] == 20 && DuengerJob[playerid]==1)
    {
    new Float:x,,Float:y,Float:z;
    GetPlayerPos(playerid, x, y, z);
    CreateObject(804, x, y, z, 0.00000, 0.00000, 0.00000);
    SendClientMessage(playerid,COLOR_GREEN,"Du hast den Dünger erfolgreich verwendet!");
    SendClientMessage(playerid,COLOR_GREEN,"Eine neue Pflanze wurde gepflanzt!");
    SendClientMessage(playerid,COLOR_YELLOW,"Du hast soeben deinen Lohn erhalten, 2000 $");
    GivePlayerMoney(playerid,2000);
    DuengerJob[playerid] = 0;
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du bist kein Gärtner oder hast kein Dünger!");
    }
    }


    versuchs mal so.. so hats bei mir auch geklappt (anderer befehl aber gleiches thema)

  • Wo ist jetzt der Unterschied?


    Ich vermute mal die Objekt ID, sicher dass die stimmt? Probier's mal mit einem anderen Objekt.


  • Das habe ich wohl gesehen aber das macht keinen Unterschied aus, da der TE vermutlich vorher auch schon irgendwo sein Float Array deklariert hat.

  • SO Danke, das klappt bisdahin :thumbup:


    Ich möchte nun, dass das Objekt nach einem Timer verschwindet.
    Den Timer habe ich schon im Befehl eingebaut!


    Doch was muss ich schreiben wenn der Timer abläuft, also wie lasse ich das Objekt entfernen?


    Mfg

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • ganz oben


    forward plantTimer();
    new plantObj;


    dann bei OnPlayerCommandText (dein command)


    if(strcmp(cmd,"/pflanzen",true)==0)
    {
    if(PlayerInfo[playerid][pJob] == 20 && DuengerJob[playerid]==1)
    {
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid, x, y, z);
    plantObj = CreateObject(804, x, y, z, 0.00000, 0.00000, 0.00000);
    SendClientMessage(playerid,COLOR_GREEN,"Du hast den Dünger erfolgreich verwendet!");
    SendClientMessage(playerid,COLOR_GREEN,"Eine neue Pflanze wurde gepflanzt!");
    SendClientMessage(playerid,COLOR_YELLOW,"Du hast soeben deinen Lohn erhalten, 2000 $");
    GivePlayerMoney(playerid,2000);
    DuengerJob[playerid] = 0;
    SetTimer("plantTimer", 60000, false);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du bist kein Gärtner oder hast kein Dünger!");
    return 1;
    }
    }


    und unter allem


    public plantTimer()
    {
    DestroyObject(plantObj);
    return 1;
    }


    dann sollten die nach 60 sek weg gehen


    6 Mal editiert, zuletzt von ame824 ()