Beiträge von Mafu

    Ich danke, zwar habe ich deinen Code nicht eingefügt, jedoch erkennen können was ich falsch hatte.
    Es handelte sich darum, dass ich bei "sizeof(string) die Klammern nicht hatte, sondern "sizeof string" geschrieben hatte.

    Ich bleibe definitiv bei DCMD. Allerdings könnte ich ableiten. Wobei mir eine Erklärung meines Fehlers und ein Lösungsvorschlag mit Erklärung warum so um einiges mehr bringen würde, damit ich es auch in Zukunft verstehe und kann.

    So ich stehe nun vor einem nächsten Punkt der Verzweiflung.


    Mal so als Einleitung: Mit GetPlayerName und Format habe ich noch nie gearbeitet, weshalb ich kaum über deren Funktionen bescheid weiß. Deshalb vermute ich da den Fehler.
    Wie im Titel genannt Crasht der Gamemode, sobald ich /kick Parameter verwende. Ohne Parameter kommt die "Böser-Wicht" Meldung^^


    dcmd_kick(playerid, params[])
    {
    if(PlayerInfo[playerid][admin] >= 1)
    {
    new kickid, sname[16],string[516];
    if(sscanf(params, "u", kickid)) return SendClientMessage(playerid, rot, "Benutzung: /kick Böser-Wicht");
    GetPlayerName(kickid, sname, sizeof sname);
    format(string, sizeof string, "{BDBDBD}%s {0080FF}wurde gekickt.", sname);
    SendClientMessageToAll(rot, string);
    Kick(kickid);


    }
    return 1;
    }

    Kann er schlecht ausführen wenn er mitten drin ist zu spawnen.
    Musst du zeitverzögert machen, oder schauen ob auch die Werte ausgelesen werden, was sie ja nach deiner Aussage tun...


    Ja hab es hinbekommen. Dumm von mir die Coordinaten zu setzen, wenn der Spieler ja noch nicht gespawnt war. Hab es nun in den Timer direkt unter "SpawnPlayer" gesetzt. Meine Probleme sind behoben, ich danke dir.

    Zwar unschön wenn es kurz erscheint aber es funzt nun. Bis auf die Tatsache, dass mein Script die letzten Coordinaten nicht läd, sondern mich wieder zum Nullpunkt bringt.


    PlayerInfo[playerid][lastx] = dini_Float(accFormat,"lastx");
    PlayerInfo[playerid][lasty] = dini_Float(accFormat,"lasty");
    PlayerInfo[playerid][lastz] = dini_Float(accFormat,"lastz");


    PlayerInfo[playerid][eingeloggt] = 1; // PlayerInfo ist nun erfolgreich eingeloggt
    SetPlayerPos(playerid, PlayerInfo[playerid][lastx], PlayerInfo[playerid][lasty], PlayerInfo[playerid][lastz]);


    Das hat vorher (bis zum KLicken von Spawn) super funktioniert.

    Verstehe dein Problem irgendwie ncht wirklich.


    Es ist im prinzip ganz einfach. Mein Login und Registriersystem funktioniert einwandfrei, außer dass ich nach der Funtkion "SpawnPlayer" in die Klassenauswahl komme, die Standartmäßig bei SAMP drinnen ist. Also da wo man auf DM und Race Servern den Skin/Spawn usw. wählt. Das soll aber weg.

    Und wie du dich irrst. Ich bau doch keine Fraktionen beim Login ein.


    Aber ich verstehe nochimmer nicht was deine Funktion mit dem Spawn zu tun hat und wie sie funktioniert.


    Edit: Ich hab nun ein bisschen rumgespielt, zwar ohne zu bewirken was ich wollte, aber gewisse Sachen konnte ich in Erfahrung bringen: Das Script lässt mich mit SpawnPlayer(playerid); zwar Spawnen, jedoch bleibt die Klassenauswahl bestehen und nach dem Klicken von Spawn setzt das Script meine Koordinaten auf 0 von jeder Achse.

    Trotz Suchfunktion konnte ich folgendes Problem nicht lösen:


    Ich möchte nachdem ich im Guy-Login System das Passwort eingegeben habe und auf login klicke nicht in die Skin Auswahl geraten.


    Mein Gui CMD lautet verkürzt:


    case DIALOG_LOGIN: // ID Login
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Weiter","Abbrechen");
    return SendClientMessage(playerid,0xFFFFFFFF,"Kein Passwort angegeben!");
    }
    if(strcmp(inputtext,dini_Get(accFormat,"Passwort")) == 0) // Passwort Direkt aus der Datei Laden
    {


    SendClientMessage(playerid,0xFFFFFFFF,"Du wurdest erfolgreich eingeloggt.");
    SpawnPlayer(playerid);
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Weiter","Abbrechen");
    SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort war Falsch!");
    }
    }

    Bei "OnPlayerRequestClass" habe ich außer dem "return 1;" nichts stehen.


    ich hoffe jemand kann mir helfen.

    Ansonsten würd ich sagen: Schauen, dass man an einen 2 Kern Prozessor mit gleicher Sockel findet. Solltest du keinen 2 Kern Prozessor finden, der gleich gesockelt ist wie dein Motherboard zulässt, so würde ich sagen, tausch den ganzen Rechner aus, denn ehe du Motherboard und Prozessor neu käufst, leg lieber das Doppelte rauf und dein Rechner hat mehr als zwei mal so viel Leistung und ist vom Innenleben auf recht aktuellem Stand (Deinem Rechner nach gehe ich von IDE Anschlüssen für Laufwerke aus, sowie DDR1 RAM. Mit Sockel meine ich übrigens die Pins auf der Unterseite deines Prozessores

    Stimmt ja, FahrzeugID nicht SpielerID. @Fragesteller wegen den Klammern: Gewohnheit :D


    Zitat

    und zwar möchte ich das ein SPieler in einem bestimmten Feld keine Befehle oä machen kann


    Ganz einfach.


    Zeile in der der Command anfäng
    {
    if(IsPlayerInRangeOfPoint(playerid, Radius in welchem Kreis, x, y, z)) return SendClientMessage(playerid, FARBE, "Du darfst hier keine CMDs nutzen");
    else
    {
    Rest deines bereits vorhandenen Commands


    Nun mit dcmd und Scanff wäre es:


    dcmd(cc, 2, cmdtext);
    bei deine CMDs und als eigenständigen Public:
    dcmd_cc(playerid, params[])
    {
    new c1, c2;
    if(sscanf(params,"ii", c1, c2))
    { return SendClientMessage(playerid, FARBE, "Richtige Anwendung: /cc [Farbid1] [Farbid2]"); }
    ChangeVehicleColor(playerid, c1, c2);
    return 1;
    }


    Ungetestet, sollte aber eigentlich Funktionieren. Wichtig ist, dass du nicht nur DCMD in deinem Script eingefügt hast, sondern auch den Sscanf Include lädst.

    Gefällt mir Alpa, mir wäre es nur lieber wenn man statt des cmds auch nur die ID usw. anzeigen lassen kann: also ungefär so: Waffenid: Waffenslot: Nahkampfwaffe/Fernkampfwaffe