Beiträge von Douq

    Print dir doch mal die objektid...existiert diese denn?


    Und bist du sicher, dass sie nicht an den 0 Koordinaten ist?


    mfg. :rolleyes:

    Das einfachste zur Überprüfung wäre (in meinen Augen) folgendes: printf("-- %d --", IsValidObject(objectid));
    Sollte er dir dort 0 wieder geben, existiert die ObjektID nicht auf dem Server.


    Eventuell übergibst du die ObjektID falsch?


    #Edit:
    Ich sehe gerade den Fehler, du erstellst die Objekte mit einem Streamer oder? Probier mal GetDynamicObjectPos aus.


    Ich hoffe du erkennst selbst die Paradoxität deiner Aussage. :rolleyes:


    Wenn du mit Threaded Querys arbeiten willst, brauchst du einen Callback, ansonsten musst du mysql_query verwenden ;)


    mfg. :thumbup:

    Was für ein Quark, das Callback + die Parameter sind optionale Angaben und müssen nicht mit angegeben werden bzw. können leer ("") gelassen werden. Bei mysql_query() wartet der Server auf die Antwort von dem SQL Server, was bei diesem Query völlig unnötig wäre.


    #Anhang (edit):
    Es ist selten empfehlenswert als Suchkriterium bei einem Query einen string zu verwenden. Ich empfehle dir mit der unique ID (primary Key) des Datensatzes zu arbeiten. Falls du dich weigern solltest, empfehle ich dir wenigstens ein Limit von 1 beim Query zu setzen, da er trotz erfolgreichem Finden deines Datensatzes weitersucht. Kritisches Beispiel: Du hast 100.000 Accounts und der Ziel-Datensatz ist der dritte Account. Da der SQL Server aber nicht weiß, dass es nur einen Account mit diesem Namen gibt, sucht er die weiteren 999.997 Datensätze weiter ab -> unnötige Arbeit.

    Aber dann könnte es JEDES Objekt, was vom Server ist, denken, wie z.B. ein LSPD Tor oder wenn das LSPD total zugemappt ist :D
    Glaub mir eins, ich mach mir oft mehrmals über verschiedene Szenarien gedanken, bevor ich was schreib ;)

    Nein? GetObjectPos() hat als ersten Parameter die ObjektID?

    Punkt 1: Ich habe mich mal an die Position teleportiert in jedem Interior und bin jedesmal runtergefallen. Ich würde einfach mal meinen oben genannten Vorschlag umsetzen.


    Punkt 2: Du setzt lediglich die .ini Werte, aber nicht die spielerbezogenden Variabeln. Sofern die Accountinformation nach dem Registrieren nicht geladen werden, ist das deine Fehlerquelle. Entweder du rufst deine Account-laden-Funktion nach deiner Register-Funktion auf, oder du setzt die einzelnen Variablen in der Registerfunktion entsprechend (z.B. Spieler[playerid][Skin] = 97).


    Du rufst aber die Funktion Spielerspeichern() in OnPlayerDisconnect() auf.

    Er soll also für 5 Sekunden die Interior Toiletten Tür sagen, ein Spruch hören und wieder davor gesetzt werden.
    Es geht alles nur er wird nicht davor gesetzt er stirbt dann weil er irgendwie von der Map fällt und ist tot.

    Ist der Boden, auf dem Spieler währenddessen steht selbst gemappt? Falls ja, würde ich den Spieler einfach per TogglePlayerControllable() freezen und beim Zurücksetzen entfreezen. Sofern erste Frage bejaht wird, ist das (vermutlich) die Lösung zu diesem Fehler.

    Bei mir geht es nur manchmal ist es so das alles zurück gesetzt wird vom Enum...
    Woran kann es liegen?

    Ich empfehle dir GetPlayerSkin() nicht unter OnPlayerDisconnect zu verwenden, da dies unter manchen Umständen zu Fehlern führen kann (gibt ID 0 zurück). Wo liegt denn der genau der Fehler? Wird dem Spieler SkinID 0 gesetzt oder erhält der eine völlig falsche ID?

    Könntest du mir den da irgendwie vor machen, da ich grad wirklich ein bisschen 8| bin.


    Grüße.


    Könntest du mir den da irgendwie vor machen, da ich grad wirklich ein bisschen 8| bin.


    Grüße.


    if(strfind(cmd,"einladen",true) != -1)
    {
    new pID,einladen[200],einladen1[200];
    if(sscanf(params,"s[10]u",cmd,pID))return SendClientMessage(playerid,Grau,"Verwende: /interview einladen [SpielerName/ID]");
    Die Verwendung von strfind() ist deshalb nötig, da in der Variable cmd beispielsweiße "einladen 10" stehen würde und somit der Vergleich durch strcmp() fehlschlagen würde -> Bedingung wäre nicht erfüllt.


    /edit: Grammatikfehler behoben.

    Wie es ausschaut, ist dir die Funktionsweiße von sscanf() nicht geläufig oder du hast es schlichtweg übersehen: In Zeile 12 sollten 2 Variabeln angegeben werden, vorweg cmd und folgend pID. Auch wäre die Verwendung von strcmp() in Zeile 9 fehlerhaft, würde dir da dann zu strfind() raten.

    Der Code ist richtig und sollte wunderbar funktionieren. Sicher, dass die Differenz von 0.2 bei der Z-Koordinarte nicht einfach zu gering ist und du es deshalb nicht siehst? Denn diese Bewegung ist innerhalb von ~50 MS fertig und bei so einer geringen Verschiebung kaum sichtbar.

    Zitat

    [14:56:03] Loading plugin: sscanf


    [14:56:04] Failed.

    Du versuchst das sscanf Plugin zu laden, aber das schlägt fehl. Da das Skript / Server auf Funktionen von sscanf zugreifen möchte, diese aber durch kein Plugin geladen werden konnten, kommen halt diese Fehler. Ist denn das Plugin sscanf auch im Pluginordner?

    Weil GetPVarString() auch keinen string, sondern die Länge des Strings (sprich einen Integer) zurückgibt. Wie die richtige Verwendung von GetPVarString() aussieht, kannst du im Wikibeitrag nachlesen.

    du hast nicht kappiert was ich meine?
    dini_Set(SpielerD,"Herkunft",GetPVarString(playerid,"Herkunft"));


    Ich arbeite aber net mit PVars ich hoffe die Paramenter sind richtig

    Nein sind sie nicht, GetPVarString hat 4 Parameter. Habe einmal den Wikibeitrag dazu rausgesucht und verlinkt. Sollte dir das nicht weiterhelfen, weißst du ja wo du mich finden kannst Askari :D .

    Eine Variable erstellen, welche beim Klicken auf Weiter mit 1 addiert wird und beim Zurück mit 1 subtrahiert wird. Mit dieser Variable greifst du dann auf den Index (entsprechend der Variable) von ZiviSkins zu, um den jeweiligen Skin zu erhalten.