Beiträge von Pr0x

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

    Habe noch ein Problem, habe ja abfrage wenn 100 hp (S0beit) aber wenn man zu Healautomaten läuft gibt es dann halt zb:


    if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DRINK_SPRUNK && Health<=100)return 1;


    wenn ja würde es so gehen?

    Funktioniert alles, danke an alle. Wollte noch kurz Fragen wie sollte man am besten gegen Geldcheat vorgehen wollte das
    Geld ausgeben und einnehmen mit einer Variable alles speichern oder gibt es eine leichtere Methode?

    Guten Tag,
    ich habe ein Anti-Cheat gescriptet, also jeder User hat 99 HP anstatt 100 und wenn einer 100HP hat wird er automatisch von system gebannt.
    Problem ist wenn ich 100 hp habe funktioniert die anfrage nicht und mann wird nicht gebannt sowohl ist es auch beim Armour so. Jet-Pack wird vom Script gebannt.


    Code:
    public OnPlayerUpdate(playerid)
    {
    if(GetPVarInt(playerid,"loggedin")==0)return 1;
    new string[125],Float:armour,Float:health,IP[25];
    GetPlayerIp(playerid,IP,sizeof(IP));
    if(GetPVarInt(playerid,"Adminlevel")==0)
    {
    if(GetPlayerHealth(playerid,health)==100)
    {
    format(string, sizeof(string), "[IPBAN] %s wurde gebannt. Grund: Health-Cheat", SpielerName(playerid));
    SendClientMessageToAll(COLOR_LIGHTRED, string);
    ShowTBox(playerid, "BAN" ,"~r~Du wurdest gebannt.",3);
    format(string, sizeof(string),"banip %s",IP);
    SendRconCommand(string);
    SetPVarInt(playerid,"Baned",1);
    TogglePlayerControllable(playerid,0);
    Kick(playerid);
    }
    if(GetPlayerArmour(playerid,armour)==100)
    {
    format(string, sizeof(string), "[IPBAN] %s wurde gebannt. Grund: Armour-Cheat", SpielerName(playerid));
    SendClientMessageToAll(COLOR_LIGHTRED, string);
    ShowTBox(playerid, "BAN" ,"~r~Du wurdest gebannt.",3);
    format(string, sizeof(string),"banip %s",IP);
    SendRconCommand(string);
    SetPVarInt(playerid,"Baned",1);
    TogglePlayerControllable(playerid,0);
    Kick(playerid);
    }
    }
    return 1;
    }


    Danke im Voraus.

    also so? würdest du mir das bitte etwas deutlicher erklären bzw. zeigen?
    ocmd:tban(playerid,params[])
    {
    new pID,grund[64],str[165],dauer;
    new timestamp;
    timestamp = gettime();
    if(!isPlayerAnAdmin(playerid,1))return SendClientMessage(playerid,ERROR,""#NOTADMIN"");
    if(sscanf(params, "uis", pID, dauer, grund))return SendClientMessage(playerid,ROT,"FEHLER: {FAFAFA}/tban [SpielerName] [Dauer(in Minuten)] [Grund]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,ROT,"FEHLER: {FAFAFA}Der Spieler ist nicht online.");
    format(str,sizeof(str),"[TIMEBAN] %s (ID:%i) wurde von %s (ID:%i) für %d Minuten gebannt. Grund: %s",SpielerName(pID),pID,SpielerName(playerid),playerid,dauer,grund);
    SendClientMessageToAll(COLOR_LIGHTRED,str);
    new sekunden = dauer * 60;
    timestamp += sekunden;
    ShowTBox(playerid, "TIMEBAN" ,"~g~Spieler wurde gebannt.",3);
    ShowTBox(pID, "TIMEBAN" ,"~r~Du wurdest gebannt.",3);
    SetPVarInt(playerid,"tban",timestamp);
    Kick(playerid);
    return 1;
    }

    zuerst der Befehl, dort habe ich mit SetPVarInt gearbeitet da mein Accountsystem damit verknüpft ist:


    ocmd:tban(playerid,params[])
    {
    new pID,grund[64],str[165],dauer;
    new timestamp;
    timestamp = gettime();
    new sekunden = dauer * 60;
    timestamp += sekunden;
    if(!isPlayerAnAdmin(playerid,1))return SendClientMessage(playerid,ERROR,""#NOTADMIN"");
    if(sscanf(params, "uis", pID, dauer, grund))return SendClientMessage(playerid,ROT,"FEHLER: {FAFAFA}/tban [SpielerName] [Dauer(in Minuten)] [Grund]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,ROT,"FEHLER: {FAFAFA}Der Spieler ist nicht online.");
    format(str,sizeof(str),"[TIMEBAN] %s (ID:%i) wurde von %s (ID:%i) für %d Minuten gebannt. Grund: %s",SpielerName(pID),pID,SpielerName(playerid),playerid,dauer,grund);
    SendClientMessageToAll(COLOR_LIGHTRED,str);
    ShowTBox(playerid, "TIMEBAN" ,"~g~Spieler wurde gebannt.",3);
    ShowTBox(pID, "TIMEBAN" ,"~r~Du wurdest gebannt.",3);
    SetPVarInt(playerid,"tban",timestamp);
    Kick(playerid);
    return 1;
    }


    und die Speicherung funktioniert zumindest kommen da viel stellige Zahlen und wenn mann sich connectet wird es so abgefragt:


    if(gettime() < GetPVarInt(playerid,"tban"))
    {
    new differenz = GetPVarInt(playerid,"tban") - gettime();
    new minuten = differenz / 60;
    new str[64];
    format(str,sizeof(str),"Du bist noch %i Minuten gebannt,du wirst nun Automatisch gekickt.",minuten);
    SendClientMessage(playerid,COLOR_LIGHTRED,str);
    ShowTBox(playerid, "KICK" ,"~r~Du wurdest gekickt.",3);
    Kick(playerid);
    }
    else
    {
    SetPVarInt(playerid,"tban",0);
    }


    Problem ist das ich mich normal einloggen kann und ich weiß nicht was ich da falsch gemacht habe, speichern tut es viele Zahlen.
    Danke im Voraus für weitere hilfe (ist mein Erstes mal mit Timeban).


    MFG

    Guten Tag,
    ich wollte mal einen Thread eröffnen, wo Serverip's mit 60+ Spielern gepostet werden.
    Hier könnt ihr jeden Reallife/Roleplay Selfmade/Godfather Server posten und dazu schreiben ob es einen Client hat oder nicht.


    bsp:
    Servername: XXX-Reallife/roleplay
    Serverip: XXX.XXX.XXX:XXX
    Anticheat-Client/Sonstiges: Ja|Nein
    Tägliche Spieleranzahl: 60+


    Freundliche Grüße

    Guten Tag,
    ich habe da von einem kumpel das Timebansystem bekommen und wollte wissen wie ich das abfragen kann (code):
    if(PlayerInfo[playerid][pTimeBan] > gettime())
    {
    SendClientMessage(playerid,0xFF4F6AFF, "-------------------Du wurdest temporär gebannt!---------------------");
    format(string2, sizeof(string2), "[BAN]: Du wurdest von %s gebannt, Grund: %s | Zeit: N.A.", PlayerInfo[playerid][pGebanntvon], PlayerInfo[playerid][pBangrund]); // die Zeit soll hier bei Zeit: abgefragt werden!
    SendClientMessage(playerid,0xFF4600FF, string2);
    SendClientMessage(playerid,0xFF4600FF, "Fühlst du dich ungerecht gebannt? Oder denkst du das war nur ein Fehlban?");
    format(string2, sizeof(string2), "Dann schreibe bitte einen Thread ins Forum(%s) unter Entbann Anträge", forumip);
    SendClientMessage(playerid,0xFF4600FF, string2);
    SendClientMessage(playerid,0xFF4600FF, "Im falle das du eindeutig Cheatest und wenn es auch nur ausversehen ist, hast du keine");
    SendClientMessage(playerid,0xFF4600FF, "Chance auf einen Entbann!");
    Kick(playerid);
    return 1;
    }


    vielen dank im Voraus!

    1
    format(string,sizeof(string),"Name: %s\nLevel: %d\nGeld: %d\nAdminlevel: %d\nKills: %d\nDeaths: %d\nKD-Rate: %.2f\n\nSollten Fehler vorliegen, melde dich bei einem Admin.",pname,Spieler[playerid][Level],GetPlayerMoney(playerid),Spieler[playerid][Admin],Spieler[playerid][Kills],Spieler[playerid][Deaths],kdrate);


    Jz wird es die schon vorgekaut.


    einfach oben
    #define DIALOG_STATS 1


    und bei dem Befehl:
    ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX,"Stats",string,"OK","");

    warum params[], wenn hierbei keine Parameter benutzt werden?


    wenn dann so:


    ocmd:stats(playerid,params[])
    {
    #pragma unused params
    new pname[MAX_PLAYER_NAME], string1[50], string[250];
    GetPlayerName(playerid, pname, sizeof(pname));
    new Float:kdrate = Spieler[playerid][Kills]/Spieler[playerid][Deaths];
    format(string1,sizeof(string1),"Stats von %s",pname);
    format(string,sizeof(string),"Name: %s\nLevel: %d\nGeld: %d\nAdminlevel: %d\nKills: %d\nDeaths: %d\nKD-Rate: %.2f\n\nSollten Fehler vorliegen, melde dich bei einem Admin.","Okay","Abbrechen",pname,Spieler[playerid][Level],GetPlayerMoney(playerid),Spieler[playerid][Admin],Spieler[playerid][Kills],Spieler[playerid][Deaths],kdrate);
    ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX,string1,string,"Okay","Abbrechen");
    return 1;
    }

    Guten Tag,
    wie die Überschrift schon sagt weiß ich leider nicht wie ich Abfragen soll ob er genau seinen Namen in das DIALOG_STYLE_INPUT schreibt.
    Es soll dazu dienen das er einen Arbeitslosengeldantrag mit seinem Spielernamen unterschreiben soll.


    if(dialogid==DIALOG_UNTERSCHREIBEN)
    {
    new string[250];
    if(response==0)
    {
    SendClientMessage(playerid,KICKFARBE,"Du hast den Arbeitslosengeldantrag abgebrochen.");
    return 1;
    }
    if(response==1)
    {
    if(!strlen(inputtext))
    {
    format(string,sizeof(string),"- Das ist nicht deine Unterschrift.\n\nBitte Unterschreibe mit deinem Spielernamen.");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Stadthalle / Arbeitslosengeld",string,"unterschreiben","Abbruch");
    return 1;
    }
    else
    if(inputtext==SpielerName(playerid)) // hier weiß ich nicht wie ich Abfragen soll ob er seinen Spielernamen 1zu1 in das Feld geschrieben hat
    {
    return 1;
    }
    }
    }


    ich habe so angefangen.
    Vielen Dank im Voraus für schnelle und hilfreiche Antworten.,
    Pr0x

    if(sscanf(params,"ui",pID,rank))return InfoText(playerid,FARBE,"Verwende: /setadmin [playerid] [Adminlevel].");


    oder so:
    if(sscanf(params,"ui",pID,rank))return SendClientMessage(playerid,FARBE,"Verwende: /setadmin [playerid] [Adminlevel].");