/setstat Problem | Und noch ein anderes Problem

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
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, Leute.


    Also, Sache 1:
    Ich arbeite gerade an einem Setstat System für Admins.
    Hier mal das Setstat Teil




    //============SETSTAT=====================//
    if(strcmp("/setstat", cmdtext, true, 10) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_WHITE, "Benutze: /setstat [playerid] [statcode] [Betrag]");
    SendClientMessage(playerid, COLOR_WHITE, "|1 = Level | 2 = Admin Level | 3 = Geld");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    if(IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_WHITE, "Benutze: /setstat [playerid] [statcode] [Betrag]");
    SendClientMessage(playerid, COLOR_WHITE, "|1 = Level | 2 = Admin Level | 3 = Geld");
    return 1;
    }
    new stat;
    stat = strval(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_WHITE, "Benutze: /setstat [playerid] [statcode] [Betrag]");
    SendClientMessage(playerid, COLOR_WHITE, "|1 = Level | 2 = Admin Level | 3 = Geld");
    return 1;
    }
    new amount;
    amount = strval(tmp)
    if(Spieler[playerid][Admin] >= 1);
    {
    switch (stat)
    {
    case 1:
    {
    Spieler[giveplayerid][Level] = amount;
    format(string, sizeof(string), " Der Spieler wurde auf Level %d gesetzt", amount);
    //SendClientMessage(playerid,COLOR_RED,"Das Level wurde neu gesetzt");
    }
    case 2:
    {
    Spieler[giveplayerid][Admin] = amount;
    format(string, sizeof(string), " Der Spieler wurde auf Admin Level %d gesetzt", amount);
    //SendClientMessage(playerid,COLOR_RED,"Das Admin-Level wurde neu gesetzt");
    }
    case 3:
    {
    Spieler[giveplayerid][Geld] = amount;
    format(string, sizeof(string), " Das Geld des Spielers wurde auf %d gesetzt", amount);
    //SendClientMessage(playerid,COLOR_RED,"Das Geld wurde neu gesetzt");
    }
    default:
    {
    format(string, sizeof(string), "FEHLER: Ungültiger Stat-Code", amount);
    //SendClientMessage(playerid,COLOR_WHITE,"FEHLER: Ungültiger Stat-Code");
    }
    }
    SendClientMessage(playerid, COLOR_BLUE, string);
    }
    else
    {
    SendClientMessage(playerid, COLOR_WHITE, " Du bist kein Administrator!");
    }
    }
    }
    }
    return 1;
    }
    //=====================================//




    Am anfang habe ich auch "Admin" definiert, siehe hier:



    enum spieler_daten
    {
    Admin,
    Level,
    wanted,
    skin,
    eingeloggt,
    paydaytime,
    Geld
    }
    new Spieler[MAX_PLAYERS][spieler_daten];





    Sache 2:


    Wenn ein Spieler sich registriert, soll ein Tutorial kommen, das mit SendClientMessage gemacht wird.
    Die Camera soll hin und her geschoben werden, d.H einmal Camera ändern, von z.B dem Ort wenn man sich registriert, soll dann halt nach dem Passwort eingeben erstmal kommen, wie alt man ist, und ob man männlich oder weiblich ist.
    Wenn man männlich ist, soll man nach 5 Sekunden zu einer Skin Auswahl kommen, Dort soll man den skin halt bekommen und bei jedem login hat man ihn.
    Dort sollen nur Männer Skins kommen.
    Bei Weiblich sollen halt nur Weibliche Skins kommen(werden selbst ausgesucht)


    Dann soll das Tutorial beginnen, und man sieht für 20 Sekunden die Stadthalle, z.B und dann erscheint ein Text, nach 20 Sek geht man zum LSPD für 20 Sek und es kommt ein Text, dann zum BSN usw, usw.
    Ich möchte den "Spawn" Button sozusagen Nutzlos machen.
    Ich hoffe mir kann jemand helfen. <.< <.< :cursing::cursing:

  • Zu 1. hab es dir mal in Dcmd gemacht:


    dcmd(setstat,7,cmdtext); // in den Puplic OnPlayerCommandText


    // unten ins Script!
    dcmd_setstat(playerid, params[])
    {
    if(Spieler[playerid][Admin] < 3) return SendClientMessage(playerid,COLOR_GREY,"Du bist kein Admin!");
    new pID,stat,amount;
    if(sscanf(params,"uii",pID,stat,amount))
    {
    SendClientMessage(playerid, COLOR_WHITE, "Benutze: /setstat [playerid] [statcode] [Betrag]");
    SendClientMessage(playerid, COLOR_WHITE, "|1 = Level | 2 = Admin Level | 3 = Geld");
    return 1;
    }
    new name[30],ziel[30],string[128];
    GetPlayerName(playerid, name, sizeof name);
    GetPlayerName(pID, ziel, sizeof ziel);
    if(!IsPlayerConnected(pID) || pID == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_GREY, "Diesen Spieler gibt es nicht!");
    switch(stat)
    {
    case 1:
    {
    Spieler[pID][Level] = amount;
    format(string, sizeof(string), "Der Spieler wurde auf Level %d gesetzt", amount);
    SendClientMessage(playerid, COLOR_GREY, string);
    }
    case 2:
    {
    Spieler[pID][Admin] = amount;
    format(string, sizeof(string), " Der Spieler wurde auf Admin Level %d gesetzt", amount);
    SendClientMessage(playerid, COLOR_GREY, string);
    }
    case 3:
    {
    Spieler[pID][Geld] = amount;
    format(string, sizeof(string), " Das Geld des Spielers wurde auf %d gesetzt", amount);
    SendClientMessage(playerid, COLOR_GREY, string);
    }
    default:
    {
    SendClientMessage(playerid,COLOR_GREY,"FEHLER: Ungültiger Statcode!");
    }
    }
    return 1;
    }

  • Brauch ich da ne dcmd Include? ^^


    // EDit
    Also, ich habe gefunden dass ich


    #define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1


    Ganz oben einfügen muss, aber es kommen folgende Errors:


    D:\SA-MP Server Sachen\Selfmade\gamemodes\GTA-GreatSelfmade.pwn(15) : error 017: undefined symbol "dcmd"
    D:\SA-MP Server Sachen\Selfmade\gamemodes\GTA-GreatSelfmade.pwn(325) : warning 204: symbol is assigned a value that is never used: "string"
    D:\SA-MP Server Sachen\Selfmade\gamemodes\GTA-GreatSelfmade.pwn(745) : error 017: undefined symbol "text"
    D:\SA-MP Server Sachen\Selfmade\gamemodes\GTA-GreatSelfmade.pwn(1421) : warning 235: public function lacks forward declaration (symbol "SetPlayerSpawn")
    D:\SA-MP Server Sachen\Selfmade\gamemodes\GTA-GreatSelfmade.pwn(1518) : warning 235: public function lacks forward declaration (symbol "ProxDetector")
    D:\SA-MP Server Sachen\Selfmade\gamemodes\GTA-GreatSelfmade.pwn(1938) : warning 203: symbol is never used: "ReturnUser"
    D:\SA-MP Server Sachen\Selfmade\gamemodes\GTA-GreatSelfmade.pwn(1938) : warning 203: symbol is never used: "giveplayerid"
    D:\SA-MP Server Sachen\Selfmade\gamemodes\GTA-GreatSelfmade.pwn(1938) : warning 203: symbol is never used: "idx"
    D:\SA-MP Server Sachen\Selfmade\gamemodes\GTA-GreatSelfmade.pwn(1938) : warning 203: symbol is never used: "tmp"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Errors.



    //Edit2


    New Errors

    2 Mal editiert, zuletzt von Mirko97 ()

  • Hast du das
    #define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
    bei deinen defines drin?
    und mach mal dcmd(setstat,7,cmdtext);
    ganz unten im puplic OnPlayerCommandText

  • D:\SA-MP Server Sachen\GTA-Great\gamemodes\GTA-GreatSelfmade.pwn(869) : warning 225: unreachable code
    D:\SA-MP Server Sachen\GTA-Great\gamemodes\GTA-GreatSelfmade.pwn(893) : error 017: undefined symbol "tmp"
    D:\SA-MP Server Sachen\GTA-Great\gamemodes\GTA-GreatSelfmade.pwn(893) : error 017: undefined symbol "idx"
    D:\SA-MP Server Sachen\GTA-Great\gamemodes\GTA-GreatSelfmade.pwn(894) : error 017: undefined symbol "tmp"
    D:\SA-MP Server Sachen\GTA-Great\gamemodes\GTA-GreatSelfmade.pwn(900) : error 017: undefined symbol "giveplayerid"
    D:\SA-MP Server Sachen\GTA-Great\gamemodes\GTA-GreatSelfmade.pwn(900) : error 017: undefined symbol "tmp"
    D:\SA-MP Server Sachen\GTA-Great\gamemodes\GTA-GreatSelfmade.pwn(901) : error 017: undefined symbol "giveplayerid"
    D:\SA-MP Server Sachen\GTA-Great\gamemodes\GTA-GreatSelfmade.pwn(903) : error 017: undefined symbol "giveplayerid"
    D:\SA-MP Server Sachen\GTA-Great\gamemodes\GTA-GreatSelfmade.pwn(905) : error 017: undefined symbol "tmp"
    D:\SA-MP Server Sachen\GTA-Great\gamemodes\GTA-GreatSelfmade.pwn(905) : error 017: undefined symbol "idx"
    D:\SA-MP Server Sachen\GTA-Great\gamemodes\GTA-GreatSelfmade.pwn(906) : error 017: undefined symbol "tmp"
    D:\SA-MP Server Sachen\GTA-Great\gamemodes\GTA-GreatSelfmade.pwn(913) : error 017: undefined symbol "tmp"
    D:\SA-MP Server Sachen\GTA-Great\gamemodes\GTA-GreatSelfmade.pwn(914) : error 017: undefined symbol "tmp"
    D:\SA-MP Server Sachen\GTA-Great\gamemodes\GTA-GreatSelfmade.pwn(914) : error 017: undefined symbol "idx"
    D:\SA-MP Server Sachen\GTA-Great\gamemodes\GTA-GreatSelfmade.pwn(915) : error 017: undefined symbol "tmp"
    D:\SA-MP Server Sachen\GTA-Great\gamemodes\GTA-GreatSelfmade.pwn(922) : error 017: undefined symbol "tmp"
    D:\SA-MP Server Sachen\GTA-Great\gamemodes\GTA-GreatSelfmade.pwn(923) : error 001: expected token: ";", but found "if"
    D:\SA-MP Server Sachen\GTA-Great\gamemodes\GTA-GreatSelfmade.pwn(923) : error 036: empty statement
    D:\SA-MP Server Sachen\GTA-Great\gamemodes\GTA-GreatSelfmade.pwn(929) : error 017: undefined symbol "giveplayerid"
    D:\SA-MP Server Sachen\GTA-Great\gamemodes\GTA-GreatSelfmade.pwn(930) : error 017: undefined symbol "string"
    D:\SA-MP Server Sachen\GTA-Great\gamemodes\GTA-GreatSelfmade.pwn(930) : error 017: undefined symbol "string"
    D:\SA-MP Server Sachen\GTA-Great\gamemodes\GTA-GreatSelfmade.pwn(930) : error 029: invalid expression, assumed zero
    D:\SA-MP Server Sachen\GTA-Great\gamemodes\GTA-GreatSelfmade.pwn(930) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    22 Errors.

  • Hm, es klappt
    Aber es passiert nichts wenn ich /setstat mache.


    z.B für Geld:


    /setstat 0 3 10000


    Da passiert nichts. <.<

  • D:\SA-MP Server Sachen\Selfmade\gamemodes\GTA-GreatSelfmade.pwn(869) : warning 225: unreachable code
    D:\SA-MP Server Sachen\Selfmade\gamemodes\GTA-GreatSelfmade.pwn(976) : warning 202: number of arguments does not match definition
    D:\SA-MP Server Sachen\Selfmade\gamemodes\GTA-GreatSelfmade.pwn(1581) : warning 235: public function lacks forward declaration (symbol "SetPlayerSpawn")
    D:\SA-MP Server Sachen\Selfmade\gamemodes\GTA-GreatSelfmade.pwn(1678) : warning 235: public function lacks forward declaration (symbol "ProxDetector")
    D:\SA-MP Server Sachen\Selfmade\gamemodes\GTA-GreatSelfmade.pwn(1801) : error 017: undefined symbol "SetPlayerMoney"
    D:\SA-MP Server Sachen\Selfmade\gamemodes\GTA-GreatSelfmade.pwn(2131) : warning 203: symbol is never used: "Fracs"
    D:\SA-MP Server Sachen\Selfmade\gamemodes\GTA-GreatSelfmade.pwn(2131) : warning 203: symbol is never used: "ReturnUser"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • if(!strcmp(strget(cmdtext, 0), "/givegun"))
    {
    if(Spieler[playerid][Admin] >= 2)
    {
    new spieleridwaffen = strval(strget(cmdtext, 1));
    new waffe = strval(strget(cmdtext, 2));
    new munni = strval(strget(cmdtext, 3));
    GivePlayerWeapon(spieleridwaffen, waffe, munni);
    return 1;
    }
    else SendClientMessage(playerid,COLOR_WHITE,"Du bist kein Administrator!");
    return 1;
    {
    }

    }


    869 ist das { unter dem letzten return 1;


    Der Error ist der hier:


    SetPlayerMoney(pID, betrag);


  • if(!strcmp(strget(cmdtext, 0), "/givegun"))
    {
    if(Spieler[playerid][Admin] >= 2)
    {
    new spieleridwaffen = strval(strget(cmdtext, 1));
    new waffe = strval(strget(cmdtext, 2));
    new munni = strval(strget(cmdtext, 3));
    GivePlayerWeapon(spieleridwaffen, waffe, munni);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_WHITE,"Du bist kein Administrator!");
    return 1;
    }

    }



    Sorry das Forum rückt nicht richtig ein^^


    edit: klammer zuvoiel