Plants

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 Leute


    Ich habe mal ein bisschen herrum probiert und habe auchschon den anfang geschafft...
    Ich möchte das wenn man einen Befehl eingibt, das dann ein Objekt erstellt wird. Soweit habe ich es auch schon geschafft:
    if(!strcmp("/plant", cmdtext))
    {
    new Float:plX,Float:plY,Float:plZ;
    GetPlayerPos(playerid,plX,plY,plZ);
    CreateObject(3409,plX,plY,plZ-0.85,0.0,0.0,0.0);
    return 1;


    }


    Jetzt will ich noch das wenn man einen anderen Befehl eingibt, das das Objekt wieder verschwindet und man Drogen bekommt.
    Also nochmal:
    Ich gebe ein /plant dann erscheint etwas... (Plant)
    Nach ca. 10 minuten oder so kann ich dann wieder kommen und /abbauen machen, um das objekt verschwinden zu lassen und dann Drogen zu bekommen.


    Ich fände voll cool wenn mir das jemand erklären könnt ;)


    MFG Marten_Blue

  • new plant[MAX_PLAYERS];
    new planted[MAX_PLAYERS];
    forward ptimer(playerid);
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(strcmp("/plant", cmdtext, true, 6) == 0)
    {
    if(planted[playerid]==0)
    {
    planted[playerid]=1;
    new Float:plX,Float:plY,Float:plZ;
    GetPlayerPos(playerid,plX,plY,plZ);
    CreateObject(3409,plX,plY,plZ-0.85,0.0,0.0,0.0);
    SendClientMessage(playerid,0x33AA33AA,"** In 10 Minuten hast du reines Weed! **");
    SetTimerEx("ptimer",60000*10,0,"i",playerid);
    }
    else
    {
    SendClientMessage(playerid,0xFF6365FF,"** Du hast gerade erst gepflanzt! **");
    }
    }
    if(strcmp("/get", cmdtext, true, 4) == 0)
    {
    if(planted[playerid]==2)
    {
    new Float:f_x,Float:f_y,Float:f_z;
    GetObjectPos(plant[playerid],f_x,f_y,f_z);
    if(IsPlayerInRangeOfPoint(playerid,5.0,f_x,f_y,f_z))
    {
    SendClientMessage(playerid,0x33AA33AA,"** Da haste dein Weed! **");
    //----- Was bei dir noch kommen soll
    DestroyObject(plant[playerid]);
    planted[playerid]=0;
    }
    else
    {
    SendClientMessage(playerid,0xFF6365FF,"Du bist nicht bei deiner Pflanze!");
    }
    }
    else
    {
    SendClientMessage(playerid,0xFF6365FF,"Dein Zeug ist noch nicht reif!");
    }
    }
    return 0;
    }
    public ptimer(playerid)
    {
    if(planted[playerid]==1)
    {
    SendClientMessage(playerid,0x33AA33AA,"** Dein Zeug ist reif!");
    planted[playerid]=2;
    }
    }


    Ungetestet^^

    Einmal editiert, zuletzt von Firerfan ()

  • Cool danke werde es gleich mla ausprobieren


    EDIT: Hmm. Immer wenn ich Compieliren will kommt: Pawn Compiler funktioniert nicht mehr und dann blinkt der zeger im compiler fenster?ß
    wass ist der fehler ??

    Einmal editiert, zuletzt von Marten_Blue ()

  • Und so?


    // Edit:
    Hast du einfach nur C&P (Copy and Paste) gemacht?
    Wen ja das include raus, sollte standardmässig immer da sein.
    Falls OnPlayerCommandTex schon exitiert dan lösche eines.



    #include <a_samp>
    new plant[MAX_PLAYERS];
    new planted[MAX_PLAYERS];
    forward ptimer(playerid);
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(strcmp("/plant", cmdtext, true, 6) == 0)
    {
    if(planted[playerid]==0)
    {
    planted[playerid]=1;
    new Float:plX,Float:plY,Float:plZ;
    GetPlayerPos(playerid,plX,plY,plZ);
    CreateObject(3409,plX,plY,plZ-0.85,0.0,0.0,0.0);
    SendClientMessage(playerid,0x33AA33AA,"** In 10 Minuten hast du reines Weed! **");
    SetTimerEx("ptimer",60000*10,0,"i",playerid);
    }
    else
    {
    SendClientMessage(playerid,0xFF6365FF,"** Du hast gerade erst gepflanzt! **");
    }
    return 1;
    }
    if(strcmp("/get", cmdtext, true, 4) == 0)
    {
    if(planted[playerid]==2)
    {
    new Float:f_x,Float:f_y,Float:f_z;
    GetObjectPos(plant[playerid],f_x,f_y,f_z);
    if(IsPlayerInRangeOfPoint(playerid,5.0,f_x,f_y,f_z))
    {
    SendClientMessage(playerid,0x33AA33AA,"** Da haste dein Weed! **");
    //----- Was bei dir noch kommen soll
    DestroyObject(plant[playerid]);
    planted[playerid]=0;
    }
    else
    {
    SendClientMessage(playerid,0xFF6365FF,"Du bist nicht bei deiner Pflanze!");
    }
    }
    else
    {
    SendClientMessage(playerid,0xFF6365FF,"Dein Zeug ist noch nicht reif!");
    }
    return 1;
    }
    return 0;
    }
    public ptimer(playerid)
    {
    if(planted[playerid]==1)
    {
    SendClientMessage(playerid,0x33AA33AA,"** Dein Zeug ist reif!");
    planted[playerid]=2;
    }
    return 1;
    }

  • Nein ich habe nicht copy and paste gemacht habe auch schon das include raus weil das eh shcon drin ist..
    habe alles so gemacht wie es eigentlich richtig sein sollte hmm? dann probiere ich mal ein bissceh herrum..
    danke für deine schnelle hilfe ;)

  • Cool danke ich hatte nur einen Klammerfehler im Script hatte nichts damit zutun...Danke jetzt geht es Vielen Dank


    habe aber noch nen Warnig drin:


    warning 225: unreachable code


    hier die zeile dazu
    CMDSpams[playerid]++;

  • ahh jo stimmt hatte ich danke ;)
    endlich mal etwas was fast direkt klappt, natürlich nur durch euch ;) danke


    /EDIT Also soweit so gut.. aber wenn ich geplanted habe und dann nach 10 min wieder komme und ich /get mache steht da das ich nicht bi meiner pflanze bin?? wieso?

    Einmal editiert, zuletzt von Marten_Blue ()

  • einfache if abfrage ob er zu der fraktion gehört.
    Wie du deine fraktionen hast weis ich nicht.


    Bei den meisten sieht es so aus


    if(Spieler[playerid][pMember] == x) bla bla /* Die fraktionen werden mit zahlen gekenzeichnet. Also wen z.B. Drogendealer 1 ist dan ist X = 1. */

  • #include <a_samp>
    new plant[MAX_PLAYERS];
    new planted[MAX_PLAYERS];
    forward ptimer(playerid);
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(strcmp("/plant", cmdtext, true, 6) == 0)
    {
    if(Spieler[playerid][pMember] == x)
    {
    if(planted[playerid]==0)
    {
    planted[playerid]=1;
    new Float:plX,Float:plY,Float:plZ;
    GetPlayerPos(playerid,plX,plY,plZ);
    CreateObject(3409,plX,plY,plZ-0.85,0.0,0.0,0.0);
    SendClientMessage(playerid,0x33AA33AA,"** In 10 Minuten hast du reines Weed! **");
    SetTimerEx("ptimer",60000*10,0,"i",playerid);
    }
    else
    {
    SendClientMessage(playerid,0xFF6365FF,"** Du hast gerade erst gepflanzt! **");
    }
    }
    return 1;
    }

  • Bei mir kommt immer:
    C:\Users\***\Desktop\GTA Server\5\gg-rl.pwn(16023) : error 017: undefined symbol "player"
    C:\Users\***\Desktop\GTA Server\5\gg-rl.pwn(16023) : warning 215: expression has no effect
    C:\Users\***\Desktop\GTA Server\5\gg-rl.pwn(16023) : error 001: expected token: ";", but found "]"
    C:\Users\***\Desktop\GTA Server\5\gg-rl.pwn(16023) : error 029: invalid expression, assumed zero
    C:\Users\***\Desktop\GTA Server\5\gg-rl.pwn(16023) : fatal error 107: too many error messages on one line


    Die zeile:
    if(Spieler[playerid][pMember] == 4)



    ich ahbe schon Spieler in Player geändert und acuh schon pMember in pJob geändert hat sich aber nichts geändert
    kannst du nicht eben mit teamviewer das machen ?? fände ich voll cool von dir, oder einem von euch.

    Einmal editiert, zuletzt von Marten_Blue ()

  • ja habe ich wir beutzten einen LoH Edit, da haben wir schon alles ich habe ja auch schon pMemer in pJob geändert weil das da so heißt. und halt 4 weil der job die id 4 hat.
    eigentlich habe ich alles nur das mit Spieler geht nciht und wenn ich da Player einsetze geht es nicht??


    /Edit OK habe es hinbekommen ;) geht jetzta alles mit der farktion bzw. mit dem job ^^
    kann man es auch noch so hinbekommen das es nur auf bestimmten böden geht ? also nihct auf der straße und so ..??
    wäre nicht schlimm wenn aber wenn es geth wäre schon cool


    /EDIT 17:32 hmm. ok wie schon gesagt es geht jetzt aber mann kann nicht ernten weil da halt steht das man nicht bei der pflanze ist ..warum??
    ich habe schon den range auf 10 geändert aber es geht trotzdem nicht.

  • wie??
    das verstehe ich nicht was muss ich ändern das playerid in die Objekt nummer ? dann bekomme ich den error.
    error 032: array index out of bounds (variable "plant")
    ??
    was soll das ? was muss ich genau ändern

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