Beiträge von Martinez

    Ich hab kein Enum, weil wenn ich Enum erstelle kommt die meldung das SpielerInfo[playerid][*] schon definiert ist.


    nur das hier was mit spielerinfo zu tun hat=


    //SpielerName-Stock
    stock SpielerName(playerid)
    {
    new GetName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,GetName,sizeof(GetName));
    return GetName;
    }


    //Register-Stock
    stock Register(playerid,key[])
    {
    new Spielerdatei[64],IP[16],Jahr, Monat, Tag, Datum[16];
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",SpielerName(playerid));
    getdate(Jahr, Monat, Tag);
    format(Datum, sizeof(Datum), "%02d/%02d/%d", Tag, Monat, Jahr);
    GetPlayerIp(playerid, IP, sizeof(IP));
    dini_Create(Spielerdatei);
    dini_Set(Spielerdatei,"Passwort",key);
    dini_IntSet(Spielerdatei,"Banned",0);
    dini_IntSet(Spielerdatei,"Adminrang",0);
    dini_IntSet(Spielerdatei,"Geld",25000);
    dini_IntSet(Spielerdatei,"Spielzeit",0);
    dini_IntSet(Spielerdatei,"Bank",50000);
    dini_Set(Spielerdatei, "RegIP", IP);
    dini_Set(Spielerdatei, "RegDatum", Datum);
    GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
    SpielerInfo[playerid][Adminrang] = dini_Int(Spielerdatei,"Adminrang"));
    SetPVarInt(playerid,"eingeloggt",1);
    SpielerInfo[playerid][Banned] = dini_Int(Spielerdatei,"Banned"));
    SpielerInfo[playerid][RegDatum] = dini_Int(Spielerdatei,"RegDatum"));
    SpielerInfo[playerid][Bank] = dini_Int(Spielerdatei,"Bank"));
    return 1;
    }


    //Login-Stock
    stock Login(playerid,key[])
    {
    new Spielerdatei[64];
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",SpielerName(playerid));
    if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false))
    {
    SpielerLaden(playerid);
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"{FFFFFF}Login","{FFFFFF}Du hast leider ein falsches Passwort angegeben!\nBitte versuche es erneut!","Login","Abbrechen");
    }
    return 1;
    }


    //---------------[SpielerLaden-Stock]-------------
    stock SpielerLaden(playerid)
    {
    new Spielerdatei[64];
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",SpielerName(playerid));
    SpielerInfo[playerid][Geld] = dini_Int(Spielerdatei,"Geld");
    GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
    SpielerInfo[playerid][Adminrang] = dini_Int(Spielerdatei,"Adminrang"));
    SetPVarInt(playerid,"eingeloggt",1);
    SpielerInfo[playerid][Banned] = dini_Int(Spielerdatei,"Banned"));
    SpielerInfo[playerid][Spielerzeit] = dini_Int(Spielerdatei,"Spielzeit"));
    SpielerInfo[playerid][RegIP] = dini_Int(Spielerdatei,"RegIP"));
    SpielerInfo[playerid][RegDatum] = dini_Int(Spielerdatei,"RegDatum"));
    SpielerInfo[playerid][Bank] = dini_Int(Spielerdatei,"Bank");
    if(SpielerInfo[playerid][Banned] == 1)
    {
    SendClientMessage(playerid,ROT,"Du kannst mit diesem Account nicht spielen, da er gebannt ist!\nBei Fragen oder Einwänden kontaktiere einen Admin!");
    Kick(playerid);
    }
    return 1;
    }


    //------------------[SpielerSpeichern-Stock]------------------------
    stock SpielerSpeichern(playerid)
    {
    if(GetPVarInt(playerid,"eingeloggt") == 1)
    {
    new Spielerdatei[64];
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",SpielerName(playerid));
    dini_IntSet(Spielerdatei,"Adminrang",SpielerInfo[playerid][Adminrang]));
    dini_IntSet(Spielerdatei,"Geld",SpielerInfo[playerid][Geld]);
    dini_IntSet(Spielerdatei,"Bank",SpielerInfo[playerid][Bank]);
    }
    return 1;
    }

    ocmd:setadmin(playerid,params[])
    {
    new pID,rang,string[128];
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,ROT,"Der angegebene Spieler ist nicht connected!");
    if(sscanf(params,"ui",pID,rang))return SendClientMessage(playerid,ROT,"Benutzung: /setadmin [ID] [Adminlevel]");
    if( rang <0 || rang > 8)return SendClientMessage(playerid,ROT,"Das Adminlevel muss zwischen 1 und 6 sein");
    if(IstSpielerAdmin(playerid,8) || IsPlayerAdmin(playerid))
    {
    SpielerInfo[pID][Adminrang] = rang;
    format(string,sizeof(string),"[AdmCmd] %s wurde von %s ins Adminteam mit dem Adminlevel %i gesetzt",SpielerName(pID),SpielerName(playerid),rang);
    SendClientMessageToAll(ROT,string);
    printf(string);
    SpielerSpeichern(playerid);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,ROT,"Zugriff verweigert. Benötigter Rang : ServerAdmin");
    return 1;
    }
    }



    MFG Martinez

    Ich hab für meine neue Gang ein Pickup ergestellt aber ich kann überall wo
    das Info pickup ist in das HQ rein.


    new hunter;


    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid == hunter)
    {
    SetPlayerPos(playerid, -2640.762939,1406.682006,906.460937);
    GameTextForPlayer(playerid, "~w~Hunters HQ", 5000, 1);
    SetPlayerInterior(playerid, 3);
    }
    return 1;
    }



    hunter = CreateDynamicPickup(1239,1,2351.9565,-1170.6644,28.0746,0);
    Create3DTextLabel("[Hunters-Base]",COLOR_YELLOW,2351.9565,-1170.6644,28.0746,20,0,1);


    MFG Martinez

    Wenn ich /punkte 0 Test 1 eintippe gibt er als 1punkt 65535 punkte,
    was ist dran falsch?
    ocmd:punkte(playerid, params[])
    {
    new pID, grund[64], points, string1[128], string2[128],name[28];
    if(sscanf(params, "usu", pID, grund, points)) return SendClientMessage(playerid, COLOR_GREY, "Benutze: /punkte [ID] [Grund] [Anzahl]");
    GetPlayerName(playerid, name, sizeof(name));
    if(SpielerInfo[playerid][pAdmin] >= 1 || IsPlayerAdmin(playerid))
    {
    if(SpielerInfo[playerid][pAdmin] >= 1 || IsPlayerAdmin(playerid))
    {
    if(!IsPlayerConnected(pID))
    {
    SendClientMessage(playerid, COLOR_GREY, "Angegebener User ist nicht Online!");
    }
    else
    {
    SetPVarInt(playerid,"Führerscheinpunkte",GetPVarInt(playerid,"Führerscheinpunkte")+points)
    format(string1, sizeof(string1), "%s hat dir auf deinen Führerschein %d Punkte eingetragen! Grund: %s", name, points, grund);
    SendClientMessage(pID, COLOR_GREY, string1);
    format(string2, sizeof(string2), "Du hast %s auf seinen Führerschein %d Punkte gegeben! Grund: %s", name, points, grund);
    SendClientMessage(playerid, COLOR_GREY, string2);
    if(GetPVarInt(playerid,"Führerscheinpunkte") == 15)
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist bei 15 Strafpunkten angekommen, dein Führerschein wurde entzogen!");
    SpielerInfo[playerid][pCarLic] = 0;
    SetPVarInt(playerid,"Führerscheinpunkte",0)
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Dein Rank reicht dafür nicht aus!");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist nicht im Ordnungsamt/SAPD/FBI!");
    }
    return 1;
    }


    MFG Martinez

    da kommt immer beim befehl eingeben "Film Modus deaktiviert"


    if (strcmp("/film", cmdtext, true) == 0)
    {
    if(Film[playerid] == 1)
    {
    KillTimer(aclock);
    new string[128];
    format(string,sizeof(string),"");
    TextDrawSetString(TEXTVGODMODE,string);
    TextDrawSetString(TEXTBOOST,string);
    TextDrawSetString(LOGO,string);
    TextDrawSetString(RealClock,string);
    TextDrawSetString(TEXTGODMODE,string);
    TextDrawSetString(TEXTAUTONOS,string);
    SendClientMessage(playerid,GRÜN,"Film Modus Aktiviert");
    // Deine Sachen - Falls 1
    }
    else if(Film[playerid] == 0)
    {
    aclock = SetTimer("UpdateClock",1000,1);
    new Spielerdatei[64];
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",SpielerName(playerid));
    if(GetPVarInt(playerid,"/vgod") == 1)
    {
    new string[16];
    format(string,sizeof(string),"/vgod: ~g~An");
    TextDrawSetString(TEXTVGODMODE,string);
    }
    if(GetPVarInt(playerid,"/vgod") == 0)
    {
    new string[16];
    format(string,sizeof(string),"/vgod: ~r~Aus");
    TextDrawSetString(TEXTVGODMODE,string);
    }
    if(GetPVarInt(playerid,"/boost") == 1)
    {
    new string[16];
    format(string,sizeof(string),"/boost: ~g~An");
    TextDrawSetString(TEXTBOOST,string);
    }
    if(GetPVarInt(playerid,"/boost") == 0)
    {
    new string[16];
    format(string,sizeof(string),"/boost: ~r~Aus");
    TextDrawSetString(TEXTBOOST,string);
    }
    if(GetPVarInt(playerid,"/autonos") == 0)
    {
    new string[18];
    format(string,sizeof(string),"/autonos: ~r~Aus");
    TextDrawSetString(TEXTAUTONOS,string);
    }
    if(GetPVarInt(playerid,"/autonos") == 1)
    {
    new string[18];
    format(string,sizeof(string),"/autonos: ~g~An");
    TextDrawSetString(TEXTAUTONOS,string);
    }
    if(GetPVarInt(playerid,"/god") == 0)
    {
    new string[18];
    format(string,sizeof(string),"/god: ~r~Aus");
    TextDrawSetString(TEXTGODMODE,string);
    }
    if(GetPVarInt(playerid,"/god") == 1)
    {
    new string[18];
    format(string,sizeof(string),"/god: ~g~An");
    TextDrawSetString(TEXTGODMODE,string);
    }
    SendClientMessage(playerid,GRÜN,"Film Modus deaktiviert");
    // Deine Sachen - Falls 0
    }
    return 1;
    }

    Wenn ich /film eingebe kommt nur die rückmeldung "Film Modus deaktiviert".
    Im diesen Script soll er verursachen das man die textdraw entfernen und mit gleichen
    befehl wieder laden kann.


    if (strcmp("/film", cmdtext, true, 10) == 0)
    {
    if(Film[playerid])
    {
    Film[playerid] = 1;
    KillTimer(aclock);
    new string[128];
    format(string,sizeof(string),"");
    TextDrawSetString(TEXTVGODMODE,string);
    TextDrawSetString(TEXTBOOST,string);
    TextDrawSetString(LOGO,string);
    TextDrawSetString(RealClock,string);
    TextDrawSetString(TEXTGODMODE,string);
    TextDrawSetString(TEXTAUTONOS,string);
    SendClientMessage(playerid,GRÜN,"Film Modus Aktiviert");
    return 1;
    }
    else
    {
    Film[playerid] = 0;
    aclock = SetTimer("UpdateClock",1000,1);
    new Spielerdatei[64];
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",SpielerName(playerid));
    if(GetPVarInt(playerid,"/vgod") == 1)
    {
    new string[16];
    format(string,sizeof(string),"/vgod: ~g~An");
    TextDrawSetString(TEXTVGODMODE,string);
    }
    if(GetPVarInt(playerid,"/vgod") == 0)
    {
    new string[16];
    format(string,sizeof(string),"/vgod: ~r~Aus");
    TextDrawSetString(TEXTVGODMODE,string);
    }
    if(GetPVarInt(playerid,"/boost") == 1)
    {
    new string[16];
    format(string,sizeof(string),"/boost: ~g~An");
    TextDrawSetString(TEXTBOOST,string);
    }
    if(GetPVarInt(playerid,"/boost") == 0)
    {
    new string[16];
    format(string,sizeof(string),"/boost: ~r~Aus");
    TextDrawSetString(TEXTBOOST,string);
    }
    if(GetPVarInt(playerid,"/autonos") == 0)
    {
    new string[18];
    format(string,sizeof(string),"/autonos: ~r~Aus");
    TextDrawSetString(TEXTAUTONOS,string);
    }
    if(GetPVarInt(playerid,"/autonos") == 1)
    {
    new string[18];
    format(string,sizeof(string),"/autonos: ~g~An");
    TextDrawSetString(TEXTAUTONOS,string);
    }
    if(GetPVarInt(playerid,"/god") == 0)
    {
    new string[18];
    format(string,sizeof(string),"/god: ~r~Aus");
    TextDrawSetString(TEXTGODMODE,string);
    }
    if(GetPVarInt(playerid,"/god") == 1)
    {
    new string[18];
    format(string,sizeof(string),"/god: ~g~An");
    TextDrawSetString(TEXTGODMODE,string);
    }
    SendClientMessage(playerid,GRÜN,"Film Modus deaktiviert");
    return 1;
    }
    }

    Der Script funktioniert nicht korrekt als auf 9 uhr umzustellen stellt er
    es auf 0 uhr.


    Ich kenn auch server die vielleicht so ein ähnlichen befehl haben
    und die spieler damit die uhr umstellen kann, ohne die serverzeit
    an zu rühren

    Wie benutz ich SetPlayerTime so das wenn man z.b /mytime 22 eingibt oder eine belibige zeit von 0 bis 23
    uhr ohne die allgemeine zeit vom server zu umstellen.

    Ich hab mir ein godmode script gemacht und wollte so machen das es sich auch beim textdrawn
    umschalten und über /Accounts/Spielerdatei.ini gespeichert wird und beim nächstes mal
    das godmode bleibt wie es war falls der spieler wieder kommt.
    Mit EnableGodMode will ich es über das login machen das er /god = 0/1 abfragt und wenn er es an macht
    EnableGodMode nach dem script abfragt.


    //----------------------[Unsterblichkeit Modus]---------------


    if(!strcmp(GODMODE, cmd, true))
    {
    new param[256];
    param = strtok(cmdtext, idx);
    if(!strlen(param))
    {
    SendClientMessage(playerid,ROT,"Benutzung: /god [an|aus]");
    return 1;
    }
    if(!strcmp("an", param, true))
    {
    if(EnableGodMode[playerid])
    {
    EnableGodMode[playerid] = 1;
    new Spielerdatei[64], string[128];
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",SpielerName(playerid));
    dini_IntSet(Spielerdatei,"/god",1);
    format(string,sizeof(string),"/god: ~g~An");
    TextDrawSetString(TEXTGODMODE,string);
    SendClientMessage(playerid,GRÜN,"Dein God Modus wurde Aktiviert.");
    }
    }
    else if(!strcmp("aus", param, true))
    {
    if(EnableGodMode[playerid])
    {
    EnableGodMode[playerid] = 0;
    new Spielerdatei[64], string[128];
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",SpielerName(playerid));
    dini_IntSet(Spielerdatei,"/god",0);
    format(string,sizeof(string),"/god: ~r~Aus");
    TextDrawSetString(TEXTGODMODE,string);
    SendClientMessage(playerid,ROT,"Dein God Modus wurde Deaktiviert.");
    SetPlayerHealth(playerid,100);
    }
    }
    else
    {
    SendClientMessage(playerid,ROT,"Benutzung: /god [an|aus]");
    return 1;
    }
    return 1;
    }

    was bedeutet das ui für
    sscanf?


    BeispielCode:


    if (sscanf(params, "ui", giveplayerid, amount))
    {
    return SendClientMessage(playerid, 0xFF0000AA, "Usage: /givecash <playerid/name> <amount>");
    }


    MFG Martinez