Warum funktioniert dieses GetNamem, aber nicht dieses?

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
  • Hey Community,
    ich bin etwas verwirrt... Ich habe einen GetName() stock definiert, aber der will die Funktion GetPlayerName nicht annehmen.
    Nun habe ich aufgrund dessen mir andere Funktionen angeschaut. Diese funktionierte aber einwandfrei, obwohl sie genau gleich wie meine ist...


    Hier sind die zwei:



    stock GetName(playerid) <--- Das aus dem Internet
    {
    new string[MAX_PLAYER_NAME];
    GetPlayerName(playerid,string,sizeof(string));
    return string;
    }


    /*stock GetName(playerid) <-- Mein Selfmade
    {
    new Name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Name, sizeof(Name));
    return Name;
    }*/



    LG

  • Sry, dass ich so spääät antworte, aber hatte in letzter Zeit etwas viel um die Ohren...


    Wo liegt der Sinn bitteschön, wenn ich eine Konstante verwende? Dann kann ich ja nur den Namen von eines einzigen Spielers nehmen und die restlichen 100 bekommen ja den vom 1.


    LG

  • Also...er redet nicht von konstanten "Variablen" (ich lass das einfach mal so stehen) an sich, sondern er redet von der Konstanen MAX_PLAYER_NAME.


    Aber da sizeof ein unärer Operator ist, macht das nicht direkt einen Unterschied ob man das eine oder das andere nimmt.


    Der Fehler, wieso es wahrscheinlich nicht funktioniert ist der, dass du die Variable Name schon irgendwo verwendest (evtl in einem Enum(erator)?) :)


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • den Fehler


    Naja es wäre kein Error, sondern nur ein Warning.


    Vielleicht ignoriert er diesen, weiß man ja nicht :D


    Aber wenn der Code funktioniert, lass ihn doch einfach stehen...ich meine auf den Variablen-Namen kommt es jetzt auch nicht an :rolleyes:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Dankee <3 Jap.. Die Variable Name habe ich schon in einem Enum benutzt.. Dachte auch wie [BE]axi92 , dass er mir wenigstens einen Warning geben würden, aber doch nicht ^^..

    Genau deswegen sollte man normalerweise keine stocks verwenden ...
    "Normale" Funktionen tun ihre Arbeit genauso!
    Bei stocks werden Warnings beim Compilen nicht angezeigt.


    Mit freundlichen Grüßen
    Kevin

  • Bei stocks werden Warnings beim Compilen nicht angezeigt.


    Quatsch!


    Das Wort stock sorgt nur dafür, dass wenn die Funktion nicht aufgerufen wird, vom Compiler ignoriert wird :)


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Genau deswegen sollte man normalerweise keine stocks verwenden ...
    "Normale" Funktionen tun ihre Arbeit genauso!
    Bei stocks werden Warnings beim Compilen nicht angezeigt.

    Blödsinn kevin wir haben das doch letztens erst wo getestet^^
    Kaliber liegt da schon richtig denke ich.


    Edit: +Der Vorteil wenn du vor die Funktion "stock" schreibst ist du findest die deklaration leichter

  • Kaliber liegt da schon richtig denke ich.


    Ja...das tue ich ;)


    stock kann man nicht nur bei Funktionen anwenden, auch z.B. bei globalen Variablen:


    new stock Var1;


    /*
    Wenn man diese nicht nutzt, kommt ja meistens ein Warning, so von wegen, Variable never used.
    Aber durch stock, wird sie vom Compiler automatisch ignoriert.
    So kann man unnötige Speicherverschwendung verhindern.
    */


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S