stock Problem

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 habe mir mal ein Stock erstellt wo die Position des Spielers abgefragt wird
    hierstock GetPos(playerid)
    {
    new Float:pX,Float:pY,Float:pZ;
    GetPlayerPos(playerid,pX,pY,pZ);
    return 1;
    }
    und ein test Command ob er auch geht also der stock
    hier if (strcmp("/mypos", cmdtext, true, 10) == 0)
    {
    new string[128];
    format(string,sizeof(string),"%d",GetPos(playerid));
    SendClientMessage(playerid, COLOR_WEISS,string);
    return 1;
    }


    aber es kommt immer nur 1 als Message und wenn ich beim Stock
    return pX,pY,pZ;mache komt error gibt es da eine Lösung ??

  • Sollte funktionieren.
    Kann fehler enthalten!
    Ungetestet!


    stock GetPos(playerid)
    {
    new Float:pX,Float:pY,Float:pZ,Koordinaten[128];
    GetPlayerPos(playerid,pX,pY,pZ);
    format(Koordinaten,128,"X= %f Y= %f Z= %f",pX,pY,pZ);
    SendClientMessage(playerid,0xFFFFFFFF,Koordinaten);
    return Koordinaten;
    }


    if (strcmp("/mypos", cmdtext, true, 10) == 0)
    {
    GetPos(playerid);
    return 1;
    }

  • Zitat

    und wo dann halt keine Message kommt aber danke

    Du willst nicht das eine Message kommt?
    Hier was aus deinem stock:

    SendClientMessage(playerid, COLOR_WEISS,string);

    Wozu hast du dan eine Message in deinem eigenen stock drin?

    Zitat

    Das wird einfach nur alles zusammen gepackt

    Hier was aus deinem Stock:


    new string[128];
    format(string,sizeof(string),"%d",GetPos(playerid));


    Sinn?



    Entferne einfach die Message wen du sie nicht willst.

  • @ Mailer Wenn es so einfach wäre ^^


    stock Float:GetPos(playerid, pos[2])
    {
    new Float:X, Float:Y, Float:Z;
    GetPlayerPos(playerid,X,Y,Z);
    if(!strcmp(pos, "X", true)) return X;
    else if(!strcmp(pos, "Y", true)) return Y;
    else if(!strcmp(pos, "Z", true)) return Z;
    else return float(-1);
    }


    Verwendung als Beispiel ^^:


    SetPlayerPos(playerid, GetPos(playerid, "X", GetPos(playerid, "Y"), floatadd(GetPos(playerid, "Z"), 5.0));

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • mein stock stock GetPos(playerid) // geht net gibt nur 1 aus
    {
    new Float:pX,Float:pY,Float:pZ;
    GetPlayerPos(playerid,pX,pY,pZ);
    return 1;
    }


    Command um den Stock zu testen
    if (strcmp("/mypos", cmdtext, true, 10) == 0)
    {
    new string[128];
    format(string,sizeof(string),"%d",GetPos(playerid));
    SendClientMessage(playerid, COLOR_WEISS,string);
    return 1;
    }

    das war lediglich nur ein Testum zu sehen ob es geht

  • PixeL bist ja auch ein Held,Basics...

    stock GetPos(playerid) // geht net gibt nur 1 aus
    {
    new Float:pX,Float:pY,Float:pZ;
    GetPlayerPos(playerid,pX,pY,pZ);
    return 1;
    }

    Wird immer 1 ausgeben,warum? Weil du die 1 returnst, wiedergibst,da KANN garnichts anderes bei rauskommen!
    Und aus deinem cmd da %d ist eine ganze Zahl und wenn du vor hattest mit dem stock die 3 Koordinaten wiederzugeben,naja fail :D
    Ich nehme einfach mal an du willst statt new Float und GetPlayerPos direkt die zahlen irgendwo haben,dazu müsstest das aber einzeln returnen...



    stock GetXPos(playerid)
    {
    new Float:pX,Float:pY,Float:pZ;
    GetPlayerPos(playerid,pX,pY,pZ);
    return pX;
    }
    stock GetYPos(playerid)
    {
    new Float:pX,Float:pY,Float:pZ;
    GetPlayerPos(playerid,pX,pY,pZ);
    return pY;
    }
    stock GetZPos(playerid)
    {
    new Float:pX,Float:pY,Float:pZ;
    GetPlayerPos(playerid,pX,pY,pZ);
    return pZ;
    }
    if (strcmp("/mypos", cmdtext, true, 10) == 0)
    {
    new string[128];
    format(string,sizeof(string),"Deine Position: X:%f Y:%f Z:%f",GetXPos(playerid),GetYPos(playerid),GetZPos(playerid));
    SendClientMessage(playerid, COLOR_WEISS,string);
    return 1;
    }

  • @ InternetInk aka Benjamin Meine Methode ist ja noch Zeilensparender ^^

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!