Wie macht mein einen String ? Und gibt es einen PlayerToPoint.inc

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
  • Also erstmal,


    gibt es einen PlayerToPoint Include ? und wo bekomm ich den her?


    Nun zum eigentlich Problem:


    Ich hab das hier


    if (strcmp("/raub", cmdtext, true, 10) == 0)
    {
    if(geraubt[playerid] == 0)
    {
    if(raubort(playerid))
    {
    if(GetPlayerWeapon(playerid))
    {
    new geld;
    new geldn;
    new beute;
    geld = GetPlayerMoney(playerid);
    GivePlayerMoney(playerid,2000*random(10));
    geldn = GetPlayerMoney(playerid);
    beute = geldn-geld;
    format("string",beute,"Du hast %s $ geraubt. Flüchte !!! ",playerid);
    SendClientMessage(playerid,gelb," %s ");
    SetPlayerWantedLevel(playerid,GetPlayerWantedLevel(playerid)+2);
    SendClientMessage(playerid,gelb,"Du hast 2 Wanteds bekommen.");
    geraubt[playerid] = 1;
    SetTimer("geraubtende(playerid)",6000,0);
    }
    else
    {
    SendClientMessage(playerid,grau,"Du brauchst eine Waffe um zu rauben.");
    }
    }
    else
    {
    SendClientMessage(playerid,grau,"Hier kannst du nicht rauben.");
    }
    }
    else
    {
    SendClientMessage(playerid,grau,"Du hast vor kurzem erst geraubt. Warte noch ein bisschen.");
    }
    }


    Nur ich bekomm es nicht hin den String so zu formatieren dass er "beute" ausgibt.
    Wie kann ich ihn definieren dass er "beute" ausgibt und wie definiert man überhaupt String ?

  • Ich hab das bei meinem Rob system so gemacht


    new raubgeld = random(10000);


    GivePlayerMoney(playerid, raubgeld);


    format(string, sizeof(string), "** Du hast $%d gestohlen",raubgeld);
    SendClientMessage(playerid,COLOR_YELLOW,string);

    Sie brauchen Hilfe bei Linux oder Windows Servern? Wissen nicht, wie man am besten ein Forum o. a. installiert? Dann schreiben Sie mir eine PN und ich versuche Ihnen zu helfen!

  • new Wert[index];


    new wert[0-255(256)]; // Man kann den Index Theoretisch so hochstellen wie man will , doch ob das dem Code gut tut ist eine andere Frage


    new wert[12]; // 12 Zellen = 12 Bytes

    wert[0] = 'H';
    wert[1] = 'A';
    wert[2] = 'G';
    wert[3] = 'I';


    Ein Zeichen = eine Zelle, Eine Zahl = Eine Zelle (byte)

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • BlackFoX das wert soll dann string heißen oder?

  • Es gib ja sowas


    new string[256];
    format(string, sizeof(string), "** Du hast $%d gestohlen",beute);


    format(output[],len,const format[], float[])


    Was muss man an die entsprechenden Stellen setzten und was heißen sie ?


  • format(string, sizeof(string), "** Du hast $%d gestohlen",beute);


    string ist ebend den du oben definierst.
    Anonsten gibts ja nur den Text den du in " " eingibst.
    Wenn du nen Namen mit einbringen willst kannste das mit %s machen aber musst GetPlayerName... haben
    wenn du einen Namen in den String einarbeitest siehts so aus


    format(string, sizeof(string), "** %s hat $%d gestohlen",name,beute);

  • PlayerToPoint include gibt es nicht... das musst du im script definieren

  • Wie wärs wenn du es ihm einfach gibst? ;)
    Das hier irgendwo ins Script rein:

    stock PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
    {
    if(IsPlayerConnected(playerid))
    {
    new Float:oldposx, Float:oldposy, Float:oldposz;
    new Float:tempposx, Float:tempposy, Float:tempposz;
    GetPlayerPos(playerid, oldposx, oldposy, oldposz);
    tempposx = (oldposx -x);
    tempposy = (oldposy -y);
    tempposz = (oldposz -z);
    if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
    {
    return 1;
    }
    }
    return 0;
    }


    Ich scripte NICHT mehr, ich möchte mit NIEMANDEM einen Server aufmachen habe auch NICHTS mehr mit LoH zu tun, also lasst es mit den PNs!

  • ich habs so
    forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);
    // und so
    public PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
    {
    if(IsPlayerConnected(playerid))
    {
    new Float:oldposx, Float:oldposy, Float:oldposz;
    new Float:tempposx, Float:tempposy, Float:tempposz;
    GetPlayerPos(playerid, oldposx, oldposy, oldposz);
    tempposx = (oldposx -x);
    tempposy = (oldposy -y);
    tempposz = (oldposz -z);
    //printf("DEBUG: X:%f Y:%f Z:%f",posx,posy,posz);
    if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
    {
    return 1;
    }
    }
    return 0;
    }

  • stock PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
    {
    if(IsPlayerConnected(playerid))
    {
    new Float:oldposx, Float:oldposy, Float:oldposz;
    new Float:tempposx, Float:tempposy, Float:tempposz;
    GetPlayerPos(playerid, oldposx, oldposy, oldposz);
    tempposx = (oldposx -x);
    tempposy = (oldposy -y);
    tempposz = (oldposz -z);
    if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
    {
    return 1;
    }
    }
    return 0;
    }


    ist genau das gleiche nur du musst dann mit der forward deine public definieren

  • Mal eine genauere Erklärung was Strings + die "format" Funktion betrifft:


    Ein String ist eine Zusammensetzung von einzelnen Zellen. Die in Klammern angegebene Zahl beschreibt die maximale Anzahl von Zellen.


    Ein String kann im Übrigen jede Größe, die 0 überschreitet annehmen. 256 ist nicht, wie von vielen angenommen, das Limit. Ich selber musste schon einmal mit einem 512er String hantieren. (Betraf File Streaming in Pawn)


    Output Strings in Pawn (Strings die gesendet werden):


    Was das betrifft ist das Limit 128. Die SA:MP Chatbox kann "nur" 128 Stellen ausgeben bzw. enthält soviele.


    Erklärung zu format:
    format(output[], len, const format[], {Float,_}...)


    Der 1. Parameter (output) gibt an welcher String formatiert wird. Der 2. gibt an wie lang der String ist, man gibt meistens "sizeof(string)" an. Der 3. Parameter gibt an welchen Text der String annehmen soll. Der optionale 4. Parameter (geht noch beliebig weiter, ist aber optional) "sagt" Pawno welche Werte die Variablen annehmen sollen.