koordinaten abfragen 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
  • Hallo Leute,


    ich habe ein Problem mit dieser Funktion. Ich will das man in einen Haus
    Mats/Drogen ablegen kann und auch nur in den Haus wo man sie abgelegt
    hat diese wieder aufnehmen kann. Ich habe bei den Befehl zum ablegen...


    GetPlayerPos(playerid, dposX, dposY, dposZ);
    ...gesetzt damit die Position genommen wird. Dann habe ich diese definiert damit das auch abgespeichert werden kann mit...


    new Float:dposX,Float:dposY,Float:dposZ;
    PlayerInfo[playerid][pDx] = dposX;
    PlayerInfo[playerid][pDy] = dposY;
    PlayerInfo[playerid][pDz] = dposZ;


    ...und dann bei dem Befehl zum aufnehmen gesetzt das der Spieler an diesen Punkt sein muss


    if(IsPlayerInRangeOfPoint(playerid,10, PlayerInfo[playerid][pDx],PlayerInfo[playerid][pDy],PlayerInfo[playerid][pDz]))


    Das ganze habe ich von der Funktion abgeguckt bei der ein Spieler stirbt und wiederbelebt werden kann per Befehl.


    Wenn ich jetzt aber die Drogen/Mats aufnehmen will kommt Ingame "Hier hast du nichts versteckt".




    else
    {
    SendClientMessage(playerid,0xFF0000FF,"Hier hast du nichts versteckt");
    }
    Ich bin schon seid Ewigkeiten dabei und bekomme es einfach nicht hin. Kann mir jemadn sagen wo der Fehler liegt?




    Damit man sich das ganze genau angucken kann hier nochmal der ganze Befehl:


    if(strcmp(cmdtext, "/dnehmen10" , true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    new location = PlayerInfo[playerid][pLocal];
    if(IsPlayerInRangeOfPoint(playerid,10, PlayerInfo[playerid][pDx],PlayerInfo[playerid][pDy],PlayerInfo[playerid][pDz]))
    {
    if(location < 255)
    {
    if(PlayerInfo[playerid][Versteck] > 9)
    {
    PlayerInfo[playerid][pDrugs] += 10;
    PlayerInfo[playerid][Versteck] -= 10;
    SendClientMessage(playerid,0xFF0000FF,"10 Gramm genommen");
    }
    }
    }
    else
    {
    SendClientMessage(playerid,0xFF0000FF,"Hier hast du nichts versteckt");
    }
    }
    }
    if(strcmp(cmdtext, "/dverstecken10" , true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    new location = PlayerInfo[playerid][pLocal];
    for(new i = 0; i < sizeof(HouseInfo); i++)
    {
    if(location < 255)
    {
    if(PlayerInfo[playerid][pDrugs] > 9)
    {
    PlayerInfo[playerid][pDrugs] -= 10;
    PlayerInfo[playerid][Versteck] += 10;
    SendClientMessage(playerid,0xFF0000FF,"10 Gramm versteckt");
    GetPlayerPos(playerid, dposX, dposY, dposZ);
    }
    }
    }
    }
    }

    2 Mal editiert, zuletzt von Carlson.Bared () aus folgendem Grund: PWN Quelltext

  • Zeig mal den ganzen Befehl wo

    else
    {
    SendClientMessage(playerid,0xFF0000FF,"Hier hast du nichts versteckt");
    }
    ist.


    //edit und wie du die koordinaten speicherst.

    seekrass approved
    4x vom Discord geflogen


    shoxinat0r 4
    dennismitzwein 2
    Trooper[Y] 2
    maddin 1
    Unbekannter Discord Kick 2

  • if(strcmp(cmdtext, "/dnehmen10" , true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    new location = PlayerInfo[playerid][pLocal];
    if(IsPlayerInRangeOfPoint(playerid,10, PlayerInfo[playerid][pDx],PlayerInfo[playerid][pDy],PlayerInfo[playerid][pDz]))
    {
    if(location < 255)
    {
    if(PlayerInfo[playerid][Versteck] > 9)
    {
    PlayerInfo[playerid][pDrugs] += 10;
    PlayerInfo[playerid][Versteck] -= 10;
    SendClientMessage(playerid,0xFF0000FF,"10 Gramm genommen");
    }
    }
    }
    else
    {
    SendClientMessage(playerid,0xFF0000FF,"Hier hast du nichts versteckt");
    }
    }
    }


    Oh kleiner Fehler unterlaufen hier ist das zum nehmen.

  • Also wenn man betrachtet das dies für einen erfahrenene Scripter ein Kinderspiel ist und denn mal nachdenkt wieviele die das als Hobby machen gibt, ist es schon sehr verwunderlich für ein Forum von den alle reden, das hier so lange bei einen eigentlich so kleinen Problem gewartet werden muss. Und ja es ist mein Problem dafür musste ich jetzt echt nicht in ein Forum um das zu wissen aber danke XD

  • Das ist kein Forum für Meinungsverschiedenheiten ok. Wenn dir langweilig ist bitte ich dich mach dein Ding woanders. Ich will das mir hier geholfen wird und nicht noch einen haben der sein Senf dazugeben muss. Du hast keine Ahnung von Haussystemen wie oben gesagt und hast auch keine Ahnung von simplenen Basics sonst hättest du gemerkt das es hier gar nicht um das Haussystem geht das mir Fehler bereitet. Also solltest du ganz offen und ehrlich wenn du Senf haben willst in diesen Bereich Scripting eher auf der fragenden Seite sein anstatt deine sinnlosen Antworten zu ganz anderen Themen in diese Thread zu schreiben. Ich habe nur gesagt das ich es echt schade finde da dieses Forum so einen guten Namen geniest. Das war einfach nur eine Meinung denn die Freiheit habe ich ja diese zu äußern. Unerwünscht kann es auch nicht sein da es in meinen Thread ist. Um es nochmals anzuecken deine Meinung ist in diesen Sinne hier unerwünscht (ps vom Threadersteller). Also bitte ich dich nochmals ganz konkret nimm bitte deinen Senf mit und geh woanders damit hin. Du musst nicht an jede kleine Bemerkung etwas aussetzen oder etwas dazuschreiben. Danke.

  • So, wieso holst du vom Spiele die Koordinaten und speicherst es als eine Spieler Variable ?
    Damit holst nur seine Aktuelle Position und nicht dort wo du die Drogen nehmen willst.


    Beim Wiederbeleben Befehl ist es wieder was anderes...


    Du musst einfach bei if(IsPlayerInRangeOfPoint die Koordinaten vom Drogen Punkt reinschreiben z.B



    if(IsPlayerInRangeOfPoint(playerid,5.0,1348.13,451.67,18.2))


    //edit glaube habe es falsch verstanden.
    Ist es richtig das du möchtest das er seine Drogen irgendwo im Haus verstecken kann ?
    Und dann dort aufheben ?
    Wenn ja dann gehts so :


    Wieso machst du es so ?

    ew Float:dposX,Float:dposY,Float:dposZ;
    PlayerInfo[playerid][pDx] = dposX;
    PlayerInfo[playerid][pDy] = dposY;
    PlayerInfo[playerid][pDz] = dposZ;


    Wenn du es direkt im Befehl machen könntest wo er die Drogen versteckt weil ansosten wie bei deinem ist dpoX und die anderen eine Globale Variable nehme ich an da ich nicht weiß wo du das stehen hasst.


    So den Befehl könntest du jetzt so machen :


    if(strcmp(cmdtext, "/dverstecken10" , true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    new location = PlayerInfo[playerid][pLocal];
    for(new i = 0; i < sizeof(HouseInfo); i++)
    {
    if(location < 255)
    {
    if(PlayerInfo[playerid][pDrugs] > 9)
    {
    new Float:x,Float:y,Float:z;
    PlayerInfo[playerid][pDrugs] -= 10;
    PlayerInfo[playerid][Versteck] += 10;
    SendClientMessage(playerid,0xFF0000FF,"10 Gramm versteckt");
    PlayerInfo[playerid][pDx] = x;
    PlayerInfo[playerid][pDy] = y;
    PlayerInfo[playerid][pDz] = z;
    }
    }
    }
    }
    }

  • Wie es oben steht. Die Spieler sollen in ihren eigenen Haus Drogen ablegen können und auch nur dort diese wieder abholen können. Wenn ich ganz normal IfIsPlayerInRangeOfPoint mit einer Koordinate setze müsste ich für jede Koordinate einen neuen Namen für den Lagerplatz nehmen. So es gibt um die 50 Häuser oder mehr und wenn mehr Spieler kommen würden wären es auch wieder mehr Häuser. Es wär eine ganze Menge Arbeit anstatt es so zu machen das wenn die Drogen abgelegen werden das eine Koord gespeichert wird und man auch nur im Umkreis dieser Koord diese wieder abholen kann.

  • Wie es oben steht. Die Spieler sollen in ihren eigenen Haus Drogen ablegen können und auch nur dort diese wieder abholen können. Wenn ich ganz normal IfIsPlayerInRangeOfPoint mit einer Koordinate setze müsste ich für jede Koordinate einen neuen Namen für den Lagerplatz nehmen. So es gibt um die 50 Häuser oder mehr und wenn mehr Spieler kommen würden wären es auch wieder mehr Häuser. Es wär eine ganze Menge Arbeit anstatt es so zu machen das wenn die Drogen abgelegen werden das eine Koord gespeichert wird und man auch nur im Umkreis dieser Koord diese wieder abholen kann.


    Habe oben editiert und das Problem gefunden ;D

    MFG

  • So wird das leider auch nicht klappen. Die Definierung ist nicht das Problem das Problem ist das IfIsPlayerInRangeOfPoint nicht klappt da immer Hier hast du nichts versteckt. Zudem hast du es ein wenig durcheinander gebracht und GetPos ist nicht mehr dabei.

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