Publics werden nicht Aufgerufen!?

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 liebe Community,


    Ich Arbeite wie man an meiner Signatur unschwer erkennen kann momentan an meinen Selfmade Script. Nun habe ich allerdings ein problem, meine selbst erstellten publics werden nicht Aufgerufen! Weiss der Teufel wieso auch immer...
    Ich habe die forwards Anfangs immer ganz oben im Script rein gepackt, da wo die Defines oder Globale Variabeln sind. Es ging nicht! Nun habe ich die Forwards direkt über den public Angeordnet und es geht immernoch nicht?! Ich habe deshalb einmal ein print() Befehl eingebaut mit den ich das überprüfen wollte, siehe da die publics werden aufgerufen aber Ingame bekomme ich keine Nachricht oder das was passieren soll passiert einfach nicht! Kann mir da vllt. einer Weiterhelfen?
    Publics bei dennen ich eine Schleife gemacht habe Funktionieren! Wieso gehen diese aber nicht wenn ich mit playerid Arbeite?


    Hier einmal ein Script Ausschnitt:



    forward SpawnTimer(playerid);
    public SpawnTimer(playerid)
    {
    print("Es hat Funktioniert!3");
    SendClientMessage(playerid,Grün,"Du hast dich erfolgreich bei uns Eingeloggt!");
    TogglePlayerControllable(playerid,1);
    SpawnPlayer(playerid);
    PlayerPlaySound(playerid,1186,0,0,0);
    return 1;
    }


    Dieser public wird Aufgerufen aber es passiert nichts! Ich bekomme jediglich eine Nachricht in meiner cmd-Konsole...


    Dieser public Funktionierte aber als ich diesen so hatte:

    forward SpawnTimer(playerid);
    public SpawnTimer(playerid)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    print("Es hat Funktioniert!3");
    SendClientMessage(playerid,Grün,"Du hast dich erfolgreich bei uns Eingeloggt!");
    TogglePlayerControllable(playerid,1);
    SpawnPlayer(playerid);
    PlayerPlaySound(playerid,1186,0,0,0);
    return 1;
    }
    }


    Hier würde er Funktionieren, ich werde Gespawnt und bekomme die SCM! Aber dann bekommt das ja jeder Spieler....



    Wie kann ich diesen Fehler wieder beheben?




    Mit freundlichen Grüßen
    LogispireMode

  • Ich habe die forwards Anfangs immer ganz oben im Script rein gepackt, da wo die Defines oder Globale Variabeln sind. Es ging nicht! Nun habe ich die Forwards direkt über den public Angeordnet und es geht immernoch nicht?!


    Das spielt keine Rolle, wird beides aufgerufen :)


    Die Frage und da liegt wahrscheinlich dein Fehler, wie rufst du diese Callbacks auf ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

  • Zitat

    Das spielt keine Rolle, wird beides aufgerufen :)
    Die Frage und da liegt wahrscheinlich dein Fehler, wie rufst du diese Callbacks auf ;)


    mfg. :thumbup:

    Ja das habe ich auch gemerkt ;) Ich teste aber erst ein bisschen rum bevor ich hier nachfrage... muss ja nicht das forum zuspammen wegen jedem weh wechen^^


    Diesen public z.B. rufe ich mit einen timer auf:

    SetTimer("SpawnTimer",3750,false);


    Aber las mich raten, da kommt ein SetTimerEx rein richtig? hahahaha aber das ist bei vielen sachen so....

  • Aber las mich raten, da kommt ein SetTimerEx rein richtig? hahahaha aber das ist bei vielen sachen so....


    Ja genau, SetTimerEx verwendet man, wenn man Parameter an den Callback übergeben will, in diesem Fall ist das ja "playerid" ;)


    Also muss der Timer so aussehen:


    SetTimerEx("SpawnTimer",3750,false,"i",playerid);


    So sollte es gehen ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

  • das ding war echt überflüssig XD ich konnte mir ja schon selber helfen XD aber na gut... bin halt auch nur ein esel von vielen... dazu muss ich aber auch sagen ein sehr dummer esel^^


    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    Ab 6 1/2 Sekunden wird glaube ich alles gesagt was bei mir zutrifft XD hahahaha na gut danke dir^^

  • for(new i = 0; i < MAX_PLAYERS; i++)
    {
    print("Es hat Funktioniert!3");
    SendClientMessage(playerid,Grün,"Du hast dich erfolgreich bei uns Eingeloggt!");
    TogglePlayerControllable(playerid,1);
    SpawnPlayer(playerid);
    PlayerPlaySound(playerid,1186,0,0,0);
    return 1;
    }


    Ehm wo bleibt eigentlich der Sinn ? ^^
    Wenn du eh alles auf playerid beziehst und nicht auf "i" . ^^

  • Ja aso XD ich habe die for Schleife erst hier gemacht^^ also statt "playerid" hatte ich im script natürlich ein "i" XD aber gut aufgepasst ;) aber nun sollte es ja gehen^^ mal gucken, habe gerade die 0,02k zeilen umgeschrieben :D