Beiträge von Weihnachtsmann

    Was ist hier falsch? wollte eine Statsbox scripten aber er zeigt ingame keinen Namen etc an, steht auch keine Zahl nichts.




    forward statstextdraw ();
    public statstextdraw ()
    {
    new str[30],i;
    for(;i < MAX_PLAYERS; ++i)
    {
    format(str,30,"Name: %s",SpielerName(i));
    format(str,30,"Level: %d",SpielerInfo[i][pLevel]);
    format(str,30,"Kills: %d",SpielerInfo[i][pKills]);
    format(str,30,"Tode: %d",SpielerInfo[i][pDeaths]);
    format(str,30,"K/D: %d",SpielerInfo[i][pKills]/SpielerInfo[i][pDeaths]);
    format(str,30,"Verwarnungen: %d/5",SpielerInfo[i][pWarn]);
    PlayerTextDrawSetString(i,statsname[i],str);
    PlayerTextDrawSetString(i,statslevel[i],str);
    PlayerTextDrawSetString(i,statskills[i],str);
    PlayerTextDrawSetString(i,statstode[i],str);
    PlayerTextDrawSetString(i,statskd[i],str);
    PlayerTextDrawSetString(i,statswarn[i],str);
    }
    return 1;
    }

    Was ist hier falsch? wollte eine Statsbox scripten aber er zeigt ingame keinen Namen etc an, steht auch keine Zahl nichts.




    forward statstextdraw ();
    public statstextdraw ()
    {
    new str[30],i;
    for(;i < MAX_PLAYERS; ++i)
    {
    format(str,30,"Name: %s",SpielerName(i));
    format(str,30,"Level: %d",SpielerInfo[i][pLevel]);
    format(str,30,"Kills: %d",SpielerInfo[i][pKills]);
    format(str,30,"Tode: %d",SpielerInfo[i][pDeaths]);
    format(str,30,"K/D: %d",SpielerInfo[i][pKills]/SpielerInfo[i][pDeaths]);
    format(str,30,"Verwarnungen: %d/5",SpielerInfo[i][pWarn]);
    PlayerTextDrawSetString(i,statsname[i],str);
    PlayerTextDrawSetString(i,statslevel[i],str);
    PlayerTextDrawSetString(i,statskills[i],str);
    PlayerTextDrawSetString(i,statstode[i],str);
    PlayerTextDrawSetString(i,statskd[i],str);
    PlayerTextDrawSetString(i,statswarn[i],str);
    }
    return 1;
    }


    Halt alle in der Arena rausfliegen ^^ keine ahnung wie das gehen soll? villt eine Schleife? :s


    Danke ^^ Würde das so klappen das man wenn ein Spieler jemanden dann mit dem Messer killt, die Runde vorbei ist?
    ich habe es so würde es so gehen



    case 5:
    {
    if(dm[5][playerid] == 1 || killerid == 1)
    {
    SpawnPlayer(playerid);
    gunstreak[playerid] = 0;
    gungameclose = 0;
    dm[5][playerid] = 0;
    Map[playerid] = 0;
    SendClientMessage(playerid,SERVER,"[SERVER] Die Runde ist vorbei!");
    SpawnPlayer(killerid);
    gunstreak[killerid] = 0;
    gungameclose = 0;
    dm[5][killerid] = 0;
    Map[killerid] = 0;
    SendClientMessage(killerid,SERVER,"[SERVER] Die Runde ist vorbei!");
    }
    }

    Ich will gungame(waffenspiel) scripten aber nach dem man stirbt bekommt man keine Waffen, ich habe auch keine Ahnung wieso :S


    OnPlayerSpawn
    else if(dm[5][playerid] == 1)
    {
    new Random = random(sizeof(dmspawn));
    SetPlayerInterior(playerid,10);
    SetPlayerPos(playerid,dmspawn[Random][0],dmspawn[Random][1],dmspawn[Random][2]);
    switch(gunstreak[playerid])
    {
    case 1:
    {
    GivePlayerWeapon(playerid,23,1339);
    gunstreak[playerid] = 1;
    }
    case 2:
    {
    GivePlayerWeapon(playerid,32,1339);
    gunstreak[playerid] = 2;
    }
    case 3:
    {
    GivePlayerWeapon(playerid,25,1339);
    gunstreak[playerid] = 3;
    }
    case 4:
    {
    GivePlayerWeapon(playerid,4,1);
    gunstreak[playerid] = 3;
    }
    }
    }



    //OnPlayerDeath


    //gungame
    gunstreak[killerid] +=1;
    gunstreak[playerid] --;
    switch(gunstreak[killerid])
    {
    case 1:
    {
    GivePlayerWeapon(playerid,32,1337);
    gunstreak[killerid] = 1;
    }
    case 2:
    {
    GivePlayerWeapon(playerid,29,1337);
    gunstreak[killerid] = 2;
    }
    case 3:
    {
    GivePlayerWeapon(playerid,25,1337);
    gunstreak[killerid] = 3;
    }
    case 4:
    {
    GivePlayerWeapon(playerid,4,1);
    gunstreak[killerid] = 4;
    }
    case 5:
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(dm[5][i] == 1)
    {
    SpawnPlayer(i);
    gunstreak[i] = 0;
    gungameclose = 0;
    dm[5][i] = 0;
    Map[i] = 0;
    SendClientMessage(playerid,SERVER,"[SERVER] Die Runde ist vorbei!");
    }
    }
    }
    }

    Diese Zahl wird wohl der Unix Timestamp sein, den du auch eingetragen hast oO Aber warum sollte der runter gehen? Das ist in deinem Script nicht veranlasst und auch garnicht notwendig.
    Was verstehst du unter "passiert nichts"? Kannst du einfach normal weiterzocken während du gebanned sein solltest, oder kannst du dich garnicht mehr einloggen?


    Kann mich ganz normal einloggen

    ocmd:tban(playerid,params[])
    {
    new pID,grund[64],dauer;
    if(!isPlayerAnAdmin(playerid,1)) return SendClientMessage(playerid,GRAU,"Du bist kein Admin!");
    if(sscanf(params, "us[64]i", pID, grund,dauer))return SendClientMessage(playerid,GRAU, "/tban [SpielerName/ID] [Grund] [Dauer (in Minuten)]");
    TBan(pID,grund,dauer,playerid);
    return 1;
    }


    stock TBan(playerid,const string[],dauer,bannerid)
    {
    new timestamp,str[128];
    timestamp = gettime();
    new sekunden = dauer * 60;
    timestamp += sekunden;
    new name[MAX_PLAYER_NAME],bannername[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    GetPlayerName(bannerid,bannername,sizeof(bannername));
    format(str,sizeof(str),"AdmCmd: %s wurde von %s für %d Minuten gebannt, Grund: %s ",name,bannername,dauer,string);
    SendClientMessageToAll(ROT,str);
    Kick(playerid);
    mysql_SetInt("accounts", "tBan", timestamp, "Name", name);
    return 1;
    }



    stock LoadPlayer(playerid)
    {
    new str5[128];
    new timestamp = gettime();
    new bisgebannt = mysql_GetInt("accounts", "tBan", "Name", SpielerName(playerid));




    if(timestamp < bisgebannt)
    {
    new differenz = bisgebannt - timestamp;
    new minuten = differenz / 60;
    new str[64];
    format(str,sizeof(str),"Dein Account ist noch für %i Minuten gebannt!",minuten);
    SendClientMessage(playerid,ROT,str);
    Kick(playerid);
    }
    if(timestamp < bisgemuted)
    {
    new differenz = bisgebannt - timestamp;
    new minuten = differenz / 60;
    new str[64];
    format(str,sizeof(str),"Dein Account ist noch für %i Minuten gemuted!",minuten);
    SendClientMessage(playerid,ROT,str);
    Kick(playerid);
    }


    Der trägt in die Datebank irendeine lange Zahl ein z.b 5345151 aber wenn ich mich mit dem Account einlogge passiert nichts und in der Datenbank geht die Zahl auch nicht runter


    mfg

    was meine ich mit den zurücksetzen?
    Auf 0 setzen die werte
    wenn er connectet dann so mit den werten
    SpielerInfo[playerid][pLevel] = 0;


    So?


    public OnPlayerConnect(playerid)
    {
    new text[256];
    SetPlayerColor(playerid,0xFFFFFF00);
    if(IsPlayerNPC(playerid))return 1;
    ResetPlayer(playerid);
    if(SpielerInfo[playerid][LoggedIn] == 0)
    {
    if(mysql_CheckAccount(playerid) == 0)
    {
    format(text,sizeof(text),"{FFFFFF}Herzlich Willkommen auf Pure Gaming, {00B700}%s {FFFFFF}!\nEs wurde kein Account in der Datenbank mit deinem Namen gefunden.\nAccount legst du an, indem du ein Accountpasswort eingibst und auf Registrieren drückst.",SpielerName(playerid));
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register",text,"Register","Exit");
    }
    else if(mysql_CheckAccount(playerid) == 1)
    {
    format(text,sizeof(text),"{FFFFFF}Herzlich Willkommen zurück auf Pure Gaming, {00B700}%s {FFFFFF}!\nBitte gib unten in das Eingabefeld dein Accountpasswort ein,\num dich einzuloggen. Anschließend werden deine Accountdaten geladen.",SpielerName(playerid));
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login",text,"Login","Abbrechen");
    }
    SetTimerEx("Connect",1104,0,"d",playerid);
    }



    stock ResetPlayer(playerid)
    {
    SpielerInfo[playerid][LoggedIn] = 0;
    SpielerInfo[playerid][pLevel] = 0;
    SpielerInfo[playerid][Admin] = 0;
    SpielerInfo[playerid][pGeld] = 0;
    SpielerInfo[playerid][pKills] = 0;
    SpielerInfo[playerid][pDeaths] = 0;
    return 1;
    }

    Du solltest Enum werte auch beim Connect auf 0 setzen, da wenn ein neuer Spieler on kommt, übernimmt er die alten werde des Spielers daher kommt das


    Wie meinst du das? :D

    enum SpielerDaten
    {
    pName[MAX_PLAYER_NAME],
    pLevel,
    pGeld,
    pKills,
    pDeaths,
    Float:pHealth,
    Admin,
    ADuty,
    APrison,
    LoggedIn,
    Muted,
    BHopWarns,
    pBanned,
    pTot,
    pWarn,
    pSkin
    }
    new SpielerInfo[MAX_PLAYERS][SpielerDaten];

    Hey,
    Ich verstehe nicht was da los ist, in der Datenbank ist alles auf 0 Adminlevel unso Geld etc aber ingame /stats habe ich 1Warn 3500Geld Adminlevel 5 etc und kills death obwohl das garnicht stimmt?


    Screen:http://www.imagebanana.com/view/ep0tge11/Unbenannt.png
    http://www.imagebanana.com/view/78xc7gkw/samp313.png

    stock LoadPlayer(playerid)
    {
    new str5[128];
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    GetPlayerName(playerid, SpielerInfo[playerid][pName], MAX_PLAYER_NAME);
    SpielerInfo[playerid][pLevel] = mysql_GetInt("accounts", "Level", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pGeld] = mysql_GetInt("accounts", "Geld", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pBanned] = mysql_GetInt("accounts", "Bann", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pKills] = mysql_GetInt("accounts", "Kills", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pWarn] = mysql_GetInt("accounts", "Warn", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pDeaths] = mysql_GetInt("accounts", "Deaths", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][Admin] = mysql_GetInt("accounts", "AdmLevel", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][APrison] = mysql_GetInt("accounts", "APrison", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][Muted] = mysql_GetInt("accounts", "Muted", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pTot] = mysql_GetInt("accounts", "Tot", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pSkin] = mysql_GetInt("accounts", "Skin", "Name", SpielerInfo[playerid][pName]);
    GivePlayerMoney(playerid, SpielerInfo[playerid][pGeld]);
    SetPlayerSkin(playerid, SpielerInfo[playerid][pSkin]);
    SetPlayerScore(playerid,SpielerInfo[playerid][pLevel]);
    }
    if(SpielerInfo[playerid][pWarn] >4)
    {
    format(str5,128,"[SERVER] Dein Account %s wurde gebannt, Grund: 5/5 Verwarnungen",SpielerName(playerid));
    SendClientMessage(playerid,ROT,str5);
    Kick(playerid);
    }
    if(SpielerInfo[playerid][pBanned] == 1)
    {
    format(str5,128,"[SERVER] Dein Account %s wurde gebannt!");
    SendClientMessage(playerid,ROT,str5);
    Kick(playerid);
    }
    return 1;
    }


    stock SavePlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    if(SpielerInfo[playerid][LoggedIn] == 1)
    {
    mysql_SetInt("accounts", "Level", SpielerInfo[playerid][pLevel], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Geld", SpielerInfo[playerid][pGeld], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Bann", SpielerInfo[playerid][pBanned], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Warn", SpielerInfo[playerid][pWarn], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Kills", SpielerInfo[playerid][pKills], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Deaths", SpielerInfo[playerid][pDeaths], "Name", SpielerInfo[playerid][pName]);
    mysql_SetFloat("accounts", "Health", SpielerInfo[playerid][pHealth], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "AdmLevel", SpielerInfo[playerid][Admin], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "APrison", SpielerInfo[playerid][APrison], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Muted", SpielerInfo[playerid][Muted], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Tot", SpielerInfo[playerid][pTot], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Skin", SpielerInfo[playerid][pSkin], "Name", SpielerInfo[playerid][pName]);
    // pSkin & pTod
    SpielerInfo[playerid][ADuty] = 0;
    SpielerInfo[playerid][LoggedIn] = 0;
    SpielerInfo[playerid][BHopWarns] = 0;
    }
    }
    return 1;
    }

    Ich habe ein Problem undzwar, wenn sich einer registriert zum erstenmal


    und dann z.b paar kills oder so macht, bekommt er kein Score


    dazugeschrieben oder ich kann dem auch kein Adminevel etc geben, aber


    wenn er einmal reloggt klappt alles wie gewohnt?


    An was könnte das liegen, ich habe das Tutorial von Maddin nach gemacht.


    Benutze Mysql Plugin R5 - Tutorial von Maddin


    Code:


    stock LoadPlayer(playerid)
    {
    new str5[128];
    new timestamp = gettime();
    new bisgebannt = mysql_GetInt("accounts", "TBan", "Name", SpielerName(playerid));
    new bisgemuted = mysql_GetInt("accounts", "Mute", "Name", SpielerName(playerid));
    new bispremium = mysql_GetInt("accounts", "Premium", "Name", SpielerName(playerid));
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    GetPlayerName(playerid, SpielerInfo[playerid][pNamee], MAX_PLAYER_NAME);
    SpielerInfo[playerid][pLevel] = mysql_GetInt("accounts", "Level", "Name", SpielerInfo[playerid][pNamee]);
    SpielerInfo[playerid][pGeld] = mysql_GetInt("accounts", "Geld", "Name", SpielerInfo[playerid][pNamee]);
    SpielerInfo[playerid][pCoins] = mysql_GetInt("accounts", "Coins", "Name", SpielerInfo[playerid][pNamee]);
    SpielerInfo[playerid][pKills] = mysql_GetInt("accounts", "Kills", "Name", SpielerInfo[playerid][pNamee]);
    SpielerInfo[playerid][pTode] = mysql_GetInt("accounts", "Tode", "Name", SpielerInfo[playerid][pNamee]);
    SpielerInfo[playerid][pBanned] = mysql_GetInt("accounts", "Banned", "Name", SpielerInfo[playerid][pNamee]);
    SpielerInfo[playerid][pWarn] = mysql_GetInt("accounts", "Verwarnung", "Name", SpielerInfo[playerid][pNamee]);
    SpielerInfo[playerid][pAdminlevel] = mysql_GetInt("accounts", "Adminlevel", "Name", SpielerInfo[playerid][pNamee]);
    GivePlayerMoney(playerid,SpielerInfo[playerid][pGeld]);
    SetPlayerScore(playerid,SpielerInfo[playerid][pLevel]);
    }
    if(SpielerInfo[playerid][pWarn] >4)
    {
    format(str5,128,"[SERVER] Dein Account %s wurde gebannt, Grund: 5/5 Verwarnungen",SpielerName(playerid));
    SendClientMessage(playerid,ROT,str5);
    Kick(playerid);
    }
    if(SpielerInfo[playerid][pBanned] == 1)
    {
    format(SpielerInfo[playerid][pBanngrund],128,"Dieser Account wurde gebannt! Grund: %s Admin: %s.", mysql_GetString("accounts", "Banngrund", "Name", SpielerInfo[playerid][pNamee]),mysql_GetString("accounts","Banner","Name",SpielerInfo[playerid][pNamee]));
    SendClientMessage(playerid,ROT,SpielerInfo[playerid][pBanngrund]);
    Kick(playerid);
    }
    if(timestamp < bisgebannt)
    {
    new differenz = bisgebannt - timestamp;
    new minuten = differenz / 60;
    new str[64];
    format(str,sizeof(str),"Dein Account ist noch für %i Minuten gebannt!",minuten);
    SendClientMessage(playerid,ROT,str);
    Kick(playerid);
    }
    if(timestamp < bispremium)
    {
    new differenz = bispremium - timestamp;
    new minuten = differenz / 60;
    new str[64];
    format(str,sizeof(str),"Dein Account hat noch für %i Tage Premium!",minuten);
    SendClientMessage(playerid,ROT,str);
    Kick(playerid);
    }
    if(timestamp < bisgemuted)
    {
    new differenz = bisgebannt - timestamp;
    new minuten = differenz / 60;
    new str[64];
    format(str,sizeof(str),"Dein Account ist noch für %i Minuten gemuted!",minuten);
    SendClientMessage(playerid,ROT,str);
    Kick(playerid);
    }
    return 1;
    }


    stock SavePlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    if(GetPVarInt(playerid,"Eingeloggt") == 1)
    {
    mysql_SetInt("accounts", "Level", SpielerInfo[playerid][pLevel], "Name", SpielerInfo[playerid][pNamee]);
    mysql_SetInt("accounts", "Geld", SpielerInfo[playerid][pGeld], "Name", SpielerInfo[playerid][pNamee]);
    mysql_SetInt("accounts", "Coins", SpielerInfo[playerid][pCoins], "Name", SpielerInfo[playerid][pNamee]);
    mysql_SetInt("accounts", "Banned", SpielerInfo[playerid][pBanned], "Name", SpielerInfo[playerid][pNamee]);
    mysql_SetInt("accounts", "Verwarnung", SpielerInfo[playerid][pWarn], "Name", SpielerInfo[playerid][pNamee]);
    mysql_SetInt("accounts", "Kills", SpielerInfo[playerid][pKills], "Name", SpielerInfo[playerid][pNamee]);
    mysql_SetInt("accounts", "Adminlevel", SpielerInfo[playerid][pAdminlevel], "Name", SpielerInfo[playerid][pNamee]);
    mysql_SetInt("accounts", "Tode", SpielerInfo[playerid][pTode], "Name", SpielerInfo[playerid][pNamee]);
    mysql_SetInt("accounts", "Mute", SpielerInfo[playerid][pMute], "Name", SpielerInfo[playerid][pNamee]);
    mysql_SetFloat("accounts", "Health", SpielerInfo[playerid][pHealth], "Name", SpielerInfo[playerid][pNamee]);
    }
    }
    return 1;
    }

    switch(dialogid)
    {
    case DIALOG_REGISTER:
    {
    if(response)
    {
    if(strlen(inputtext) == 0)
    {
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register","Das angegebene Passwort war zu Kurz...\nBitte Registrier dich jetzt mit einem Passwort:","Register","Abbrechen");
    return 1;
    }
    else
    {
    CreateAccount(playerid, inputtext);
    SetPVarInt(playerid,"Eingeloggt",1);
    return 1;
    }
    }
    else
    {
    Kick(playerid);
    }
    }