Beiträge von JayTheSheep

    Also, du hast alle Daten die du abspeichern willst in ein Enum gepackt oder?
    Dann sieht es bei dir ungefähr so aus:

    enum Info
    {
    pTut,
    pGeld,
    pWanted,
    passwort[128],
    pSkin,
    pOrigin,
    pSex,
    pCarLic,
    pAdmin, //Hier wird das Admin Level abgespeichert
    pLeader,
    pEingeloggt
    };


    new pInfo[MAX_PLAYERS][Info]


    Stimmts? Ansonsten füg pAdmin oder so noch hinzu, und vergess nicht das es beim login & disconnect gespeichert wird!

    Hallöchen,
    kann mir vielleicht jemand erklären wie ich am besten per dcmd einen /jail Befehl mache?
    Also /jail ID Zeit Strafe....
    MfG Jay :)
    (Wäre total dankbar wenn mir jemand hilft!!)

    Wie setze ich per dcmd die Adminlevel?
    Also pInfo[pID][pRank] == sRank; funktioniert nicht X( Wie muss ich das machen?


    dcmd_setlevel(playerid,params[]) {
    new
    sRank[128],
    pID;
    if(sscanf(params, "ud",pID,sRank)) {
    return SendClientMessage(playerid,COLOR_RED,"Benutze /setlevel [playerid] [Grund]");
    }
    if(!IsPlayerConnected(pID)) {
    return SendClientMessage(playerid,COLOR_RED,"Kein Spieler mit angegebener ID Online");
    }
    new
    ThePlayer[MAX_PLAYER_NAME],
    string[128],
    string2[128];
    GetPlayerName(pID,ThePlayer,sizeof(ThePlayer));
    format(string,sizeof(string),"%s (ID %d) wurde zu Level %d befördert.",ThePlayer,pID,sRank);
    SendClientMessage(playerid,COLOR_YELLOW,string);
    format(string2,sizeof(string2),"Du wurdest zu Level %d befördert.",sRank);
    SendClientMessage(pID,COLOR_YELLOW,string);
    pInfo[pID][pRank] == sRank;
    return 1;
    }

    Hey,
    wie mache ich ein Befehl für die Cops (gTeam = 1),
    dass wenn sie an einer bestimmten Position sind andere, die neben ihm stehen oder halt auch an der Position einsperren können.
    Also n einfacher /jail Befehl für Cops, am besten /jail ID Zeit Strafe :)
    Danke im vorraus!

    Wie gesagt, du musst es anpassen.
    Du hast deine Daten bestimmt in einem Enum gespeichert oder so..
    Versuch mal statt Player pInfo oder playerinfo...
    Und dahinter das ; weg...

    Hier aus meinem Script.. Musst du halt noch anpassen
    if(!strcmp(strget(cmdtext,0),"/makeleader"))
    {
    if(pInfo[playerid][pRank] >= 4 || IsPlayerAdmin(playerid))
    {
    if(!strlen(strget(cmdtext,1)))
    return
    SendClientMessage(playerid,COLOR_GREY,"Benutze: /makeleader [ID] [FraktionsID]");
    new string15[128];
    new string16[128];
    new id3 = strval(strget(cmdtext,1));
    new DerSpieler[MAX_PLAYER_NAME];
    new DerAdmin[MAX_PLAYER_NAME];
    new gang = strval(strget(cmdtext,2));
    GetPlayerName(id3,DerSpieler,sizeof(DerSpieler));
    GetPlayerName(playerid,DerAdmin,sizeof(DerAdmin));
    format(string15, sizeof(string15), "*** Du wurdest von Admin %s zum Leader der Fraktionsnummer %d gemacht.", DerAdmin, gang);
    format(string16, sizeof(string16), "*** Du hast %s zum Leader der Fraktionsnummer %d gemacht.", DerSpieler, gang);
    SendClientMessage(id3, COLOR_LIGHTRED, string15);
    SendClientMessage(playerid, COLOR_LIGHTRED, string16);
    if(gang == 0)
    {
    SetPlayerSkin(id3,110);
    SetPlayerInterior(id3, 0);
    SetPlayerPos(id3,233.9751,77.8963,1005.0391);
    gTeam[id3] = gang;
    pInfo[id3][pLeader]= 0;
    }
    if(gang == 1)
    {
    SetPlayerSkin(id3,280);
    SetPlayerInterior(id3, 6);
    SetPlayerPos(id3,233.9751,77.8963,1005.0391);
    gTeam[id3] = gang;
    pInfo[id3][pLeader]= gang;
    }
    else if(gang == 2)
    {
    SetPlayerSkin(id3,285);
    pInfo[id3][pLeader] = gang;
    gTeam[id3] = gang;
    } //Kannst natürlich noch mehr Gangs einfügen
    else if(gang >= 2)
    {
    SendClientMessage(playerid, COLOR_RED,"Entweder sind deine Rechte zu niedrig oder die Fraktion gibt es nicht!");
    }
    }
    return 1;
    }

    Hallo,
    ersteinmal danke an Lambo, er hat vergeblich versucht mir zu helfen..
    Es wird irgendwie nichts abgespeichert oder nichts abgerufen..
    Zum Beispiel fängt das Tutorial immer wieder an, wenn ich mich einlogge...


    public OnPlayerDisconnect(playerid, reason)
    {
    new pname[MAX_PLAYERS],accFormat[128],unconnecttext[20];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"/Spieler/%s.ini",pname);
    format(unconnecttext,128,"Der %s hat den Server verlassen!", pname);
    if(dini_Exists(accFormat)) //&& pInfo[playerid][pEingeloggt] == 1) Versuchs erstmal so ok
    {
    dini_IntSet(accFormat,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(accFormat,"Skin",GetPlayerSkin(playerid));
    dini_IntSet(accFormat,"Wanteds",GetPlayerWantedLevel(playerid));
    dini_IntSet(accFormat,"Tutorial",pInfo[playerid][pTut]);
    dini_IntSet(accFormat,"Fraktion",gTeam[playerid]);
    dini_IntSet(accFormat,"Geschlecht",pInfo[playerid][pSex]);
    dini_IntSet(accFormat,"Herkunft",pInfo[playerid][pOrigin]);
    dini_IntSet(accFormat,"Führerschein", pInfo[playerid][pCarLic]);
    dini_IntSet(accFormat,"Rank", pInfo[playerid][pRank]);
    dini_IntSet(accFormat,"Leader", pInfo[playerid][pLeader]);
    }
    pInfo[playerid][pEingeloggt] = 0;
    return 1;
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(logintext,126,"Herzlich Willkommen : [%s]\n\nBitte Logge dich nun ein:", pname);
    format(registertext,126,"Herzlich Willkommen : [%s]\n\nBitte Registriere dich nun:", pname);
    format(accFormat,sizeof accFormat,"Spieler/%s.ini",pname);
    if(response)
    {
    switch(dialogid)
    {
    case DIALOG_LOGIN:
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login System",logintext,"Weiter","Abbrechen");
    GameTextForPlayer(playerid,"~r~Keine gültige Eingabe!",5000,1);
    return SendClientMessage(playerid,0xFFFFFFFF,"Du hast kein Passwort angegeben!");
    }
    if(strcmp(inputtext,dini_Get(accFormat,"Passwort")) == 0)
    {
    GivePlayerMoney(playerid,(dini_Int(accFormat,"Geld")));
    SetPlayerWantedLevel(playerid,(dini_Int(accFormat,"Wanted")));
    pInfo[playerid][pCarLic]= (dini_Int(accFormat,"Führerschein"));
    pInfo[playerid][pTut]= (dini_Int(accFormat,"Tutorial"));
    pInfo[playerid][pRank]= (dini_Int(accFormat,"Rank"));
    pInfo[playerid][pLeader]= (dini_Int(accFormat,"Leader"));
    pInfo[playerid][pOrigin]= (dini_Int(accFormat,"Herkunft"));
    pInfo[playerid][pSex]= (dini_Int(accFormat,"Geschlecht"));
    pInfo[playerid][pEingeloggt] = 1;
    GameTextForPlayer(playerid,"~g~Erfolgreich Eingeloggt!",5000,1);
    SendClientMessage(playerid,0xFFFFFFFF,"Du hast dich erfolgreich eingeloggt!");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login System",logintext,"Weiter","Abbrechen");
    GameTextForPlayer(playerid,"~r~Passwort stimmt nicht!",5000,1);
    SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort stimmt mit der in der Datenbank nicht überein!");
    }
    }
    case DIALOG_REGISTER:
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_REGISTER,1,"Register System",registertext,"Weiter","Abbrechen");
    GameTextForPlayer(playerid,"~r~Passwort zu kurz!",5000,1);
    return SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort ist leider zu kurz!");
    }
    dini_Create(accFormat);
    dini_Set(accFormat,"Passwort",inputtext);
    dini_IntSet(accFormat,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(accFormat,"Skin",GetPlayerSkin(playerid));
    dini_IntSet(accFormat,"Tutorial",pInfo[playerid][pTut]);
    dini_IntSet(accFormat,"Rank",pInfo[playerid][pRank]);
    dini_IntSet(accFormat,"Leader",pInfo[playerid][pLeader]);
    dini_IntSet(accFormat,"Land",pInfo[playerid][pOrigin]);
    dini_IntSet(accFormat,"Geschlecht",pInfo[playerid][pSex]);
    dini_IntSet(accFormat,"Führerschein",pInfo[playerid][pCarLic]);
    pInfo[playerid][pGeld] = 5000;
    pInfo[playerid][pEingeloggt] = 0;
    pInfo[playerid][pWanted] = 0;
    pInfo[playerid][pCarLic] = 0;
    gTeam[playerid] = 0;
    pInfo[playerid][pEingeloggt] = 1;
    GameTextForPlayer(playerid,"~g~Erfolgreich Registriert!",5000,1);
    SendClientMessage(playerid,0xFFFFFFFF,"Account wurde in der Datenbank angelegt, und du wurdest eingeloggt!");
    }
    }
    }
    else
    {
    switch(dialogid)
    {
    case DIALOG_LOGIN:ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login System",logintext,"Weiter","Abbrechen");
    case DIALOG_REGISTER:ShowPlayerDialog(playerid,DIALOG_REGISTER,1,"Register System",registertext,"Weiter","Abbrechen");
    }
    }
    return 1;
    }


    Hoffe ihr findet den Fehler :(

    Hallo,
    such jemanden der mir am besten per Teamviewer helfen kann.
    Undzwar funktioniert mein Login System nicht mehr richtig...
    Möchte meinen ganzen Script hier nicht veröffentlichen ^^
    PM schreiben wäre am besten :)
    MfG

    /E: Habs jetzt hinbekommen, jedoch laggt es nach der Bombe total.. Laufen irgendwelche Timer weiter oder so?
    public detonation()
    {
    new bombennachricht[256];
    format(bombennachricht, sizeof(bombennachricht), "Die Bombe ist detoniert, der Bombenleger war %s", bombenleger);
    SendClientMessageToAll(COLOR_RED, bombennachricht);
    SetTimer("bombe1", 100, 0);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    DisablePlayerCheckpoint(i);
    }
    DestroyPickup(bombe);
    return 0;
    }


    public bombe1()
    {
    CreateExplosion(b1,b2,b3, 7, 103050);
    CreateExplosion(b1+500,b2,b3,7, 10350);
    CreateExplosion(b1-5,b2,b3,7, 100050);
    CreateExplosion(b1,b2,b3, 7, 103050);
    CreateExplosion(b1+200,b2,b3,7, 10350);
    CreateExplosion(b1,b2,b3, 7, 13050);
    CreateExplosion(b1+500,b2,b3,7, 100350);
    CreateExplosion(b1-5,b2,b3,7, 100050);
    CreateExplosion(b1,b2,b3, 7, 103050);
    CreateExplosion(b1+200,b2,b3,7, 10350);
    CreateExplosion(b1,b2,b3, 7, 13050);
    SetTimer("bombe2", 1000, 0);
    }


    public bombe2()
    {
    CreateExplosion(b1,b2,b3, 7, 103050);
    CreateExplosion(b1+500,b2,b3,7, 10350);
    CreateExplosion(b1-5,b2,b3,7, 100050);
    CreateExplosion(b1,b2,b3, 7, 103050);
    CreateExplosion(b1+200,b2,b3,7, 10350);
    CreateExplosion(b1,b2,b3, 7, 13050);
    CreateExplosion(b1+500,b2,b3,7, 100350);
    CreateExplosion(b1-5,b2,b3,7, 100050);
    CreateExplosion(b1,b2,b3, 7, 103050);
    CreateExplosion(b1+200,b2,b3,7, 10350);
    CreateExplosion(b1,b2,b3, 7, 13050);
    SetTimer("bombe3", 2500, 0);
    }


    public bombe3()
    {
    CreateExplosion(b1,b2,b3, 7, 103050);
    CreateExplosion(b1+800,b2,b3,7, 10350);
    CreateExplosion(b1-5,b2,b3,7, 100050);
    CreateExplosion(b1,b2,b3, 7, 103050);
    CreateExplosion(b1+2000,b2,b3,7, 10350);
    CreateExplosion(b1,b2,b3+476, 7, 13050);
    CreateExplosion(b1+500,b2,b3,7, 100350);
    CreateExplosion(b1-5,b2,b3+344,7, 100050);
    CreateExplosion(b1,b2,b3, 7, 103050);
    CreateExplosion(b1+200,b2,b3,7, 10350);
    CreateExplosion(b1+534,b2+1000,b3, 7, 13050);
    SetTimer("bombe4", 3500, 0);
    }


    public bombe4()
    {
    CreateExplosion(b1,b2,b3, 7, 103050);
    CreateExplosion(b1+500,b2,b3,7, 10350);
    CreateExplosion(b1-5,b2,b3,7, 100050);
    CreateExplosion(b1,b2,b3, 7, 103050);
    CreateExplosion(b1+200,b2,b3,7, 10350);
    CreateExplosion(b1,b2,b3, 7, 13050);
    CreateExplosion(b1+500,b2,b3,7, 100350);
    CreateExplosion(b1-5,b2,b3,7, 100050);
    CreateExplosion(b1,b2,b3, 7, 103050);
    CreateExplosion(b1+200,b2,b3,7, 10350);
    CreateExplosion(b1,b2,b3, 7, 13050);
    SetTimer("bombe5", 4000, 0);
    }


    public bombe5()
    {
    CreateExplosion(b1,b2,b3, 7, 103050);
    CreateExplosion(b1+800,b2,b3,7, 10350);
    CreateExplosion(b1-5,b2,b3,7, 100050);
    CreateExplosion(b1,b2,b3, 7, 103050);
    CreateExplosion(b1+2000,b2,b3,7, 10350);
    CreateExplosion(b1,b2,b3+476, 7, 13050);
    CreateExplosion(b1+500,b2,b3,7, 100350);
    CreateExplosion(b1-5,b2,b3+344,7, 100050);
    CreateExplosion(b1,b2,b3, 7, 103050);
    CreateExplosion(b1+200,b2,b3,7, 10350);
    CreateExplosion(b1+534,b2+1000,b3, 7, 13050);
    }


    if(strcmp(cmdtext, "/bombe", true) == 0)
    {
    if(gTeam[playerid] == 12)
    {
    if (bomb == 0)
    {
    GetPlayerName(playerid, bombenleger, sizeof(bombenleger));
    GetPlayerPos(playerid, b1, b2, b3);
    bombe = CreatePickup(1252 ,1, b1+2,b2,b3);
    deto = SetTimer("detonation", 30000, 0);
    countdowns = SetTimer("count_down", 295000, 0);
    countdown = 1;
    bomb = 1;
    SetPlayerColor(playerid, COLOR_RED);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    SetPlayerCheckpoint(i, b1,b2,b3,600);
    }
    SetTimer("bombabkling", 7200000, 0);
    SendClientMessage(playerid, COLOR_GREEN, "Du hast eine Bombe gelegt die in 5 Minuten explodiert!");
    SendCopMessage(COLOR_RED, "==================[Alarmstufe : ROT]=====================");
    SendCopMessage(COLOR_RED, "Eine Bombe wurde gelegt. In 5 Minuten wird sie explodieren!");
    SendCopMessage(COLOR_RED, "Mit /defuse kannst du diese Bombe entschärfen!");
    SendCopMessage(COLOR_RED, "Ein Rang 5 Mitglied ist verflichtet Infos zum Standort zu geben!");
    SendCopMessage(COLOR_RED, "==================[Alarmstufe : ROT]=====================");
    SendCopMessage(COLOR_GREY, "Der Bombenleger ist jetzt ROT markiert, so können sie die Bombe finden!");
    SendClientMessageToAll(COLOR_RED, "STAAT: Es wurde eine Bombe gelegt, die Polizei wird weitere Infos geben!");
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Bombenlegen ist nur alle 2 Stunden möglich !");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Du hast keine Bombe und weißt nicht wie sowas geht !");
    }
    return 1;
    }