Beiträge von Stone[413]

    Dann benutzt du SpielerInfo aber komplett falsch.
    Du kannst SpielerInfo nur so benutzen:

    C
    SpielerInfo[playerid][pAdmin]


    als Beispiel hier mit pAdmin.
    Was du brauchst wäre GetPlayerName.


    Zeig doch bitte mal die Zeilen wo du das TextDraw erstellst.
    Des Weiteren sind mir 2 Fehler aufgefallen.


    Die Variable Message hast du einmal global erstellt, das beißt sich sobald mehr als 1 Spieler auf dem Server ist.
    Ich würde die Message Variable eins player enum oder LokalDaten enum oder so packen.


    2. Fehler:
    Die Variable MessageText soll ja anscheinend das Textdraw sein, also musst du diese so erstellen:

    C
    new Text:MessageText[MAX_PLAYERS]

    Du könntest ne Funktion schreiben

    C
    stock AdminrankToName(adminrank, name[], len) {
    	if(adminrank == 0) return format(name, len, "Spieler", 0);
    	else if (adminrank == 1) return format(name, len, "Supporter", 0);
    	else if (adminrank== 2) return format(name, len, "Administrator", 0);
    	return false;
    }


    die dann so benutzen



    C
    new lRank[24];
    AdminrankToName(adminrank, lRank, 24);
    format(string,sizeof(string),"%s %s hat von %s den Adminrang in %i geändert.",lRank,aName,pName,a_level);

    Das weglassen der Klammern änder ja nix, die sind auch nur für die Übersicht gedacht.
    //EDIT:
    Ich hab ganz vergessen, dass sscanf die Möglichkeit zum überladen hat.
    Hier der Code für Leute mit ähnlichem Problem.


    Optinale Integer Werte werden mit großem i gekennzeichnet.
    Trotzdem danke.

    Hi.
    Es geht hier um nen netten /get Befehl, der natürlich ne variable Anzahl an Parametern hat.


    Es ist jetzt nicht unbedingt richtig überladen, es ist eher ein Problem mit sscanf.
    Es gibt zwar keine Fehler-Meldung vom Server, aber die Format- sowie ClientMessage bei der Auswahl Dynamit wird nicht angezeigt.
    Ich hab auch schon bisschen mit verschiedenen Möglichkeiten bei sscanf gespielt aber ohne Erfolg.
    Vielleicht hat ja jemand ne Lösung.

    Also zur 1. Frage:
    Du kannst die zum Beispiel in nem Dialog anzeigen lassen dazu formatierst du einfach den Text mit den enums richtig
    Beispiel:
    Enum mit Daten

    Code
    enum Test {
    	Score,
    	Tode,
    	Kills
    }
    new pInfo[MAX_PLAYERS][Test];


    OnPlayerCommandText


    Code
    if(!strcmp(cmdtext, "/help", true))
        {
    		new lString[128];
    		format(lString, sizeof(lString), "Score: %i\nTode: %\nKills: %i", pInfo[playerid][Score], pInfo[playerid][Tode], pInfo[playerid][Kills]);
    		ShowPlayerDialog(playerid, DIALOG_STATS, DIALOG_STYLE_MSGBOX, "Stats", lString, "Ok", "");
            return true;
        }

    Zum 2.
    Du könntest einfach ein Paar X, Y und Z Koordinaten in ein Array packen und dann beim spawnen eben random auswählen lassen.
    Die schwere Variaten wäre zum Beipspiel Random Koordinaten aus einer Area zu berechen (max min etc.) und sich dann die Z Koordinate per plugin MapAndreas auswählen lassen.
    So hast du halt massig random Spawns und so gut wie nie die selben.



    Is jetzt nich grade die am schönsten gemachte Funktion und die beachtet auch noch nicht falls falls minx und maxx bzw miny und maxy verschieden vorzeichen haben, nur falls beide das gleich haben.


    Das wäre der erste teil du hast eine andere Random ID gespeichert als die ID, von welcher die VehicleID geholt wird.
    Den zweiten teil versteh ich leider überhaupt nicht mit so wenig Infos. Das einzige was ich seh is, dass du die Random id die du vorher oben speicherst mit der vhicle id vergleichst, was für mich keinen Sinn ergibt.
    Ansonsten Vorschlag:
    Neues Array mit IsSpected definieren

    Code
    new bool:IsSpected[MAX_PLAYERS];


    Dann eben der RaceSpec public teil mit foreach (weil wegen einfacher)

    Und zum Schluss noch bei OnPlayerStateChange


    Ansonsten mal mysql_log(LOG_ERROR | LOG_WARNING | LOG_DEBUG); bei OnGameModeInit reinpacken und vielleicht mal die Query mit der du LoadNoDMZone aufrufst posten.