Beiträge von robbi2304

    Kannst du mir mal die Funktion "PlayerWantedBarUpdate" zeigen? ;)


    PS: Du nervst nicht, dafür ist das Forum ja da. ^^

    Naja ich bin heute ja schon Recht oft mit kleinen Dingen dran gewesen.


    Gerne gebe ich auch die UpdateBar Frei



    stock PlayerWantedBarUpdate(playerid)
    {
    if(PlayerWantedBar[playerid] == true)
    {
    if(PlayerInfo[playerid][pWanted] >= 1)
    {
    new string[64];
    format(string, sizeof(string), "W%d", PlayerInfo[playerid][pWanted]);
    PlayerTextDrawSetString(playerid, p_Wanteds[playerid], string);
    }
    else
    {
    PlayerTextDrawHide(playerid, p_Wanteds[playerid]);
    PlayerTextDrawDestroy(playerid, p_Wanteds[playerid]);
    }
    }
    else
    {
    PlayerWantedBarCreate(playerid);
    }
    return 1;
    }


    Wiegesagt er updatet nicht wenn er erst auf den wert 0 gecleart wurde

    Ich weiß das ich gerade vllt etwas am nerven bin xD. Aber ich habe nun noch wirklich 1 ding.


    Sobald ich Wanteds hinzufüge und danach wieder lösche, Updatet er mir nicht den


    PlayerWantedBarUpdate(pID);




    {
    if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)
    {
    new pID, Wanteds, reason[128], string[128];
    if(sscanf(params, "uds",pID,Wanteds,reason)) return SendClientMessage(playerid,COLOR_RED,"Benutzung: /su [ID] [Anzahl] [Grund] ");
    {
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid, COLOR_RED, "Dieser Spieler ist offline");
    PlayerInfo[pID][pWanted] += Wanteds;
    new name[MAX_PLAYER_NAME], name2[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    GetPlayerName(pID, name2, sizeof(name2));
    format(string, sizeof(string), "Info: Officer %s hat dir %d Wanted Punkte gegeben( Grund: %s )", name, Wanteds, reason);
    SendClientMessage(pID, COLOR_RED, string);
    format(string, sizeof(string), "Info: Du hast %s %d Wanted Punkte gegeben.", name2, Wanteds);
    SendClientMessage(playerid, COLOR_RED, string);
    PlayerWantedBarUpdate(pID);
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Du bist kein Polizist.");
    return 1;
    }
    }



    ocmd:suclear(playerid, params[])
    {
    if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)
    {



    new pID, Wanteds, reason[128], string[128];
    if(sscanf(params, "uds",pID,Wanteds,reason)) return SendClientMessage(playerid,COLOR_RED,"Benutzung: /su [ID] [Anzahl] [Grund] ");
    {
    PlayerWantedBarUpdate(pID);
    if(PlayerInfo[pID][pWanted]<Wanteds)return SendClientMessage(playerid,-1,"Die eingegebene Zahl ist höher als die Wantedanzahl des Spielers!");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid, COLOR_RED, "Dieser Spieler ist offline");
    PlayerInfo[pID][pWanted] -= Wanteds;
    new name[MAX_PLAYER_NAME], name2[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    GetPlayerName(pID, name2, sizeof(name2));
    format(string, sizeof(string), "Info: Officer %s hat dir %d Wanted Punkte gegeben( Grund: %s )", name, Wanteds, reason);
    SendClientMessage(pID, COLOR_RED, string);
    format(string, sizeof(string), "Info: Du hast %s %d Wanted Punkte gegeben.", name2, Wanteds);
    SendClientMessage(playerid, COLOR_RED, string);
    PlayerWantedBarUpdate(pID);
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Du bist kein Polizist.");
    return 1;
    }



    }


    Bzw immer wenn ich die Wanteds auf 0 Cleare ruft er die Funktion nicht mehr auf

    Das klappt. Nun nochmal eine Frage. Wie kann ich Abfragen wieviele Wanteds der Spieler derzeit besitzt damit ich auch nicht mehr als diese Clearen kann




    ocmd:clear(playerid, params[])
    {
    if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)
    {
    new pID, string[128],Wanteds;
    if(sscanf(params, "u", pID,Wanteds))
    {
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid, COLOR_RED, "Dieser Spieler ist offline");
    PlayerInfo[pID][pWanted]-=Wanteds;
    PlayerWantedBarUpdate(pID);
    new name[MAX_PLAYER_NAME], name2[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    GetPlayerName(pID, name2, sizeof(name2));
    format(string, sizeof(string), "Info: Officer %s hat deine Wantds gelöscht", name);
    SendClientMessage(pID, COLOR_RED, string);
    format(string, sizeof(string), "Info: Du hast %s seine Wanteds gelöscht.", name2);
    SendClientMessage(playerid, COLOR_RED, string);
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Du bist kein Polizist.");
    return 1;
    }
    return 1;
    }

    Guten Tag mein Suspect Befehl weißt scheinbar einen Fehler auf.


    Der Befehl vergibt leider keine Wanteds und zeigt imnmer nur an das man 0 wanteds erhalten hat obwohl eine höhere zahl eingetragen ist.



    @Jeffry vllt



    ocmd:su(playerid, params[])
    {
    if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)
    {
    new pID, Wanteds, reason, string[128];
    if(sscanf(params, "uds", pID, reason))
    {
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid, COLOR_RED, "Dieser Spieler ist offline");
    PlayerInfo[pID][pWanted] += Wanteds;
    PlayerWantedBarUpdate(pID);
    new name[MAX_PLAYER_NAME], name2[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    GetPlayerName(pID, name2, sizeof(name2));
    format(string, sizeof(string), "Info: Officer %s hat dir %d Wanted Punkte gegeben( Grund: %s )", name, Wanteds, reason);
    SendClientMessage(pID, COLOR_RED, string);
    format(string, sizeof(string), "Info: Du hast %s %d Wanted Punkte gegeben.", name2, Wanteds);
    SendClientMessage(playerid, COLOR_RED, string);
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Du bist kein Polizist.");
    return 1;
    }
    return 1;
    }

    Guten Tag, mein Dialog spielt derzeit sehr verrückt.


    Sobald ich den listitem aufrufe, zeigt er mir den Text an allerdings nimmt führt er die Aktion von listitem 0 aus. Was habe ich falsch gemacht ?




    if(dialogid == DIALOG_LSPD)
    {
    if(listitem == 0)
    {
    if(OnDuty[playerid] == 1)
    {
    ResetPlayerWeapons(playerid);
    SetPlayerSkin(playerid,0);
    OnDuty[playerid] = 0;
    SetPlayerArmour(playerid,0);
    SendClientMessage(playerid,COLOR_BUSBLUE,"Sie sind nun nicht mehr im Dienst.");
    return 1;
    }
    if(OnDuty[playerid] == 0)
    {
    SetPlayerSkin(playerid,286);
    OnDuty[playerid] = 1;
    SetPlayerArmour(playerid,100);
    SendClientMessage(playerid,COLOR_BUSBLUE,"Sie sind ab Sofort im Dienst!");
    return 1;
    }
    }
    if(listitem == 1)
    {
    ShowPlayerDialog(playerid, DIALOG_LSPDA, DIALOG_STYLE_LIST, "Registration", "Police Officer LSPD 1\n""Police Officer MBIKE LSPD", "Ok", "Abbrechen");
    return 1;
    }
    }
    if(dialogid == DIALOG_LSPDA)
    {



    if(!response) return Kick(playerid);
    if(listitem == 0)
    {
    SetPlayerSkin(playerid,280);
    return 1;
    }
    if(listitem == 1)
    {
    SetPlayerSkin(playerid,2);
    return 1;
    }
    }



    #define DIALOG_LSPD 10
    #define DIALOG_LSPDA 10



    ocmd:duty(playerid)
    {
    if(PlayerInfo[playerid][pLeader] < 1) return SendClientMessage(playerid,COLOR_RED,"Du bist kein Leader einer Fraktion");
    {
    ShowPlayerDialog(playerid,DIALOG_LSPD,DIALOG_STYLE_LIST,"CopDuty","Anmelden\t&\tAbmelden\n""Skins","Wählen","");
    return 1;
    }
    }

    Ich scheine manchmal echt Blöd zusein. Ist ja klar das er bei Joinen die 30 lädt und behält. Sobald ich banne meine Funktion in die DB geschrieben wird, dann aber das vom Connecten wieder gespeichert wird. Daher danke für den Tipp da nochmal rein zu schauen.


    Jetzt geht das ganze :D

    Bei tbantime steht doch jetzt eine 30 drin. ;) Was möchtest du denn dadrin stehen haben? Die Minuten, wie lange der Spieler gebannt ist, oder den timestamp? ;)

    Die Minuten. Wiegesagt hatte ich eben zum Test Folgendes drin


    PlayerInfo[playerid][pTBanned]=30; dieser setzte die 30 ein egal was man als Grund angegeben hat weil es ja keinen anderen speicherbefehl richtig gab. Daher Ignoriere die 30 und stelle dir eine null darin vor

    Ich habe zuvor mit


    PlayerInfo[playerid][TBanned]=dauer; gearbeitet.
    Aber soweit ich weiß kann es z.b dann bei einem Timebug o.ä nicht übernommen werden.
    Daher möchte ich das er es direkt in die Datenbank speichert. Natürlich kann ich dir eben eine Übersicht der Datenbank zeigen.



    Passwort hashen ist denke ich mal das wichtigste xD

    Code
    [18:24:29] UPDATE users SET tbantime = '2' WHERE id = '1'

    eigentlich alles so wie es sein soll. Wird also nicht Richtig in der Datenbank eingetragen

    Du kannst mit %s jedoch keine INT's speichern.

    Okay. Ich habe nun im Code das ganze abgeändert in %i allerdings gibt es noch immer Probleme beim speichern.


    Weder in der MySQL Log noch in der Server Log wird etwas angezeigt was ich sehr komisch finde

    Nein das ist es leider nicht. Hatte das zuerst probiert und dann mal mit %s. So habe ich das dann wohl hier mit rein kopiert.


    Hier einmal ein Screen des tables

    Eine Frage habe ich noch zu etwas anderem. Nun geht es um ein Timeban System. Leider speichert er nicht in die Datenbank.


    Hiermit wollte ich gerne den Wert in die Datenbank speichern



    new query[256];
    mysql_format(handle, query, sizeof(query), "UPDATE users SET tbantime = '%s' WHERE id = '%d'",dauer,PlayerInfo[playerid]);
    mysql_pquery(handle, query);


    Gesamt Code:



    stock TBan(playerid,const string[],dauer,bannerid)
    {
    new timestamp;
    timestamp = gettime();
    new sekunden = dauer * 60;
    timestamp += sekunden;
    new str[128];
    new name[MAX_PLAYER_NAME],bannername[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    GetPlayerName(bannerid,bannername,sizeof(bannername));
    format(str,sizeof(str),"[SERVER] %s wurde von %s für %d Minuten gebannt. Grund: %s",name,bannername,dauer,string);
    new query[256];
    mysql_format(handle, query, sizeof(query), "UPDATE users SET tbantime = '%s' WHERE id = '%d'",dauer,PlayerInfo[playerid]);
    mysql_pquery(handle, query);
    SendClientMessageToAll(COLOR_RED,str);
    SendClientMessage(p_id,COLOR_RED,"Du wurdest gebannt & gekickt");
    SetTimerEx("DelayedKick", 100, false, "i", p_id);



    return 1;
    }

    Zeig mir mal bitte pBannedGrund in deiner MySQL Tabelle, als was hast du das deklariert?


    Ah gefunden xD. Wo du es sagst, ich rufe es garnicht ab beim PlayerLaden xD.


    // Edit


    Oder auch nicht.


    mit folgender Funktion lade ich den user deren BannedGrund


    Code
    PlayerInfo[playerid][pBannedGrund]    = cache_get_field_content_int(0, "BanGrund", handle);


    Die MySQL Log gibt dabei einen Fehler aus.


    Code
    [12:23:36] [ERROR] cache_get_field_content_int - invalid datatype

    frage ist was das fürn ungültiger Datentyp ist. Denn bei den anderen Funktioniert es super

    Danke erstmal für deine Antwort. Die länge habe ich nun definiert. Allerdings zeigt er mir immernoch nichts als Grund an. Siehe Foto.



    Hier mal der ganze Code für die Abfrage ob der Spieler gebannt ist.



    if(PlayerInfo[playerid][pBanned]==1)
    {
    SetPlayerPos(playerid,1552.2690,-1675.3098,16.1953);
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    new string[1300],string1[1300],name1[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name1,sizeof(name1));
    format(string,sizeof(string),"Da du dich nicht an unser Regelwerk halten konntest, wurde dein Account gebannt !\nSolltest du der Meinung sein das es sich hierbei um eine Verwechslung handelt, schreibe einen Entbann Antrag im Forum.\nLiebe Grüße das Server Team\n\n\t\t Grund: %s",PlayerInfo[playerid][pBannedGrund]);
    strcat(string1,string);
    ShowPlayerDialog(playerid, DIALOG_BAN, DIALOG_STYLE_MSGBOX,PlayerInfo[playerid][pName],string1,"Ok","");
    SendClientMessage(playerid,-1,"Banned");
    SetTimerEx("DelayedKick", 1, false, "i", playerid);
    return 1;
    }
    return 1;
    }

    Guten Tag liebe Mitglieder ich habe ein sehr sehr kleines Problem.
    Ich würde gerne auslesen warum der User gebannt wurde und komme mit i% und s% nicht weit.


    Gibt es was anderes zum auslessen von Texten ?


    Code
    format(string,sizeof(string),"Da du dich nicht an unser Regelwerk halten konntest, wurde dein Account gebannt !\nSolltest du der Meinung sein das es sich hierbei um eine Verwechslung handelt, schreibe einen Entbann Antrag im Forum.\nLiebe Grüße das Server Team\n\n\t\t Grund: %i",PlayerInfo[playerid][pBannedGrund]);

    Was sagt der pc wenn du das iPhone anschließen tust.


    Handys sollte man bis ca 80% Laden und dann abnehmen so kann sicher gestellt werden das der Akku nicht überladen wird.


    Zwar hat man weniger Zeit am handy kann es aber auf labge zeit länger nutzen und spart gelf