Sperre nur für einen Spieler

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo ich habe ein /equip Befehl hinzugefügt und will das man sich nur alle 2 Minuten ausrüsten kann.
    Ich will das es nur für den einzelnen Spieler ist.. wenn ich mich einmal ausrüste können sich die anderen nichtmehr ausrüsten..


    new equipusen;


    if(strcmp(cmd,"/equip", true) == 0)
    {
    if(PlayerToPoint(5,playerid, -1869.5820,-1624.6660,21.8426))
    {
    if(equipusen == 1)
    {
    SendClientMessage(playerid,COLOR_GREY,"Du kannst dich noch nicht Ausrüsten.");
    return 1;
    }
    if(PlayerInfo[playerid][pFriedhof] == 1)
    {
    SendClientMessage(playerid, COLOR_GREY, "Du kannst auf dem Friedhof keine Befehle benutzen.");
    return 1;
    }
    if(PlayerInfo[playerid][pMember] == 20 || PlayerInfo[playerid][pLeader] == 20)
    {
    GivePlayerWeapon(playerid,24,200);
    equipusen = 1;
    SetTimerEx("EquipTimer",120000,0,"i",playerid);
    }
    }
    }


    ich war mir nicht sicher ob ich MAX_PLAYER_NAME hinter dem new schreiben soll deswegen frag ich hier :D

    Mit freundlichen Grüßen,
    rndy

  • new equipusen[MAX_PLAYERS];


    if(strcmp(cmd,"/equip", true) == 0)
    {
    if(PlayerToPoint(5,playerid, -1869.5820,-1624.6660,21.8426))
    {
    if(equipusen[playerid] == 1)
    {
    SendClientMessage(playerid,COLOR_GREY,"Du kannst dich noch nicht Ausrüsten.");
    return 1;
    }
    if(PlayerInfo[playerid][pFriedhof] == 1)
    {
    SendClientMessage(playerid, COLOR_GREY, "Du kannst auf dem Friedhof keine Befehle benutzen.");
    return 1;
    }
    if(PlayerInfo[playerid][pMember] == 20 || PlayerInfo[playerid][pLeader] == 20)
    {
    GivePlayerWeapon(playerid,24,200);
    equipusen[playerid] = 1;
    SetTimerEx("EquipTimer",120000,0,"i",playerid);
    }
    }
    }


    Einfach über ein Array. ;)

  • Hallo, versuche es einfach mal so, dann sparst du dir den ollen Public
    und er zeigt dir sogar an, wann du dich wieder Ausrüsten kannst, jedoch musst du, was Jeffry schon sagte es Oben definieren.
    Als Array, ich würde mich über eine Rückmeldung freuen.


    if(strcmp(cmd,"/equip",true)==0)
    {
    if(PlayerInfo[playerid][pMember]!=20&&PlayerInfo[playerid][pLeader]!=20)return SendClientMessage(playerid,COLOR_GREY,"Du bist nicht in der jewaligen Fraktion.");
    if(PlayerInfo[playerid][pFriedhof]==1)return SendClientMessage(playerid,COLOR_GREY,"Du kannst dich nicht ausrüsten, solange du auf den Friedhof bist.");
    if(!PlayerToPoint(5,playerid,-1869.5820,-1624.6660,21.8426))return SendClientMessage(playerid,COLOR_GREY,"Du kannst dich hier nicht ausrüsten.");
    if(gettime()<equipusen[playerid])
    {
    new equipzeit=equipusen[playerid]-gettime();
    format(string,sizeof(string),"Du kannst dich erst wieder in %i:d Minuten wieder ausrüsten.",equipzeit/60,equipzeit`);
    SendClientMessage(playerid,COLOR_GREY,string);
    }
    GivePlayerWeapon(playerid,24,200);
    equipusen[playerid]=gettime()+(60*2);
    SendClientMessage(playerid,COLOR_GREY,"Du hast dich erfolgreich ausgerüstet.");
    return 1;
    }


    So ist es doch viel schöne, Oben halt einfach:
    new equipusen[MAX_PLAYERS]=0;


    Edit: Bei den string mit der Minuten übernimmt der Code es nicht Ordnungsgemäß, bitte ersetze noch


    %i:d


    mit


    % i : % 0 2 d


    Musst du aber zusammenrücken, er nimmt das sonst nciht an


    Liebe Grüße iMontreal

    Ich suche (Beta) Server-Tester für meinen Server.
    Bei Intresse bitte bei mir per PN melden.

  • Hallo toniyo,
    Ich glaube ich habe das Problem gefunden, wir ist da wie ich sehe ein kleiner Strich unterlaufen.
    Hier nochmal den richtigen Codex.
    Einfach ausprobieren :)


    if(strcmp(cmd,"/equip",true)==0)
    {
    if(PlayerInfo[playerid][pMember]!=20&&PlayerInfo[playerid][pLeader]!=20)return SendClientMessage(playerid,COLOR_GREY,"Du bist nicht in der jewaligen Fraktion.");
    if(PlayerInfo[playerid][pFriedhof]==1)return SendClientMessage(playerid,COLOR_GREY,"Du kannst dich nicht ausrüsten, solange du auf den Friedhof bist.");
    if(!PlayerToPoint(5,playerid,-1869.5820,-1624.6660,21.8426))return SendClientMessage(playerid,COLOR_GREY,"Du kannst dich hier nicht ausrüsten.");
    if(gettime()<equipusen[playerid])
    {
    new equipzeit=equipusen[playerid]-gettime();
    format(string,sizeof(string),"Du kannst dich erst wieder in % i : % 0 2 d Minuten wieder ausrüsten.",equipzeit/60,equipzeit);
    return SendClientMessage(playerid,COLOR_GREY,string);
    }
    GivePlayerWeapon(playerid,24,200);
    equipusen[playerid]=gettime()+(60*2);
    SendClientMessage(playerid,COLOR_GREY,"Du hast dich erfolgreich ausgerüstet.");
    return 1;
    }

    Ich suche (Beta) Server-Tester für meinen Server.
    Bei Intresse bitte bei mir per PN melden.

  • Der Fehler liegt in der Berechnung, wenn du es so ohne Timer machen willst.


    if(strcmp(cmd,"/equip",true)==0)
    {
    if(PlayerInfo[playerid][pMember]!=20&&PlayerInfo[playerid][pLeader]!=20)return SendClientMessage(playerid,COLOR_GREY,"Du bist nicht in der jewaligen Fraktion.");
    if(PlayerInfo[playerid][pFriedhof]==1)return SendClientMessage(playerid,COLOR_GREY,"Du kannst dich nicht ausrüsten, solange du auf den Friedhof bist.");
    if(!PlayerToPoint(5,playerid,-1869.5820,-1624.6660,21.8426))return SendClientMessage(playerid,COLOR_GREY,"Du kannst dich hier nicht ausrüsten.");
    if(gettime()<equipusen[playerid])
    {
    new equipzeit=equipusen[playerid]-gettime();
    format(string,sizeof(string),"Du kannst dich erst wieder in %d:%02d Minuten wieder ausrüsten.",equipzeit / 60, equipzeit % 60);
    return SendClientMessage(playerid,COLOR_GREY,string);
    }
    GivePlayerWeapon(playerid,24,200);
    equipusen[playerid]=gettime()+(60*2);
    SendClientMessage(playerid,COLOR_GREY,"Du hast dich erfolgreich ausgerüstet.");
    return 1;
    }


    Dann passt es.

  • Hallo Jeffry,
    Danke das du es Editiert hast, da hatte ich einen kleinen Fehler drinne, jetzt sollte es aber funktionieren.
    Das war nur ein kleiner flüchtigkeitsfehler, das kommt vor.
    Liebe Grüße iMontreal.


    ps. toniyo: Würde mich über Rückmeldung freuen.

    Ich suche (Beta) Server-Tester für meinen Server.
    Bei Intresse bitte bei mir per PN melden.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Einfach so:
    if(strcmp(cmd,"/equip",true)==0)
    {
    if(PlayerInfo[playerid][pMember]!=20&&PlayerInfo[playerid][pLeader]!=20)return SendClientMessage(playerid,COLOR_GREY,"Du bist nicht in der jeweiligen Fraktion.");
    if(PlayerInfo[playerid][pFriedhof]==1)return SendClientMessage(playerid,COLOR_GREY,"Du kannst dich nicht ausrüsten, solange du auf den Friedhof bist.");
    if(!PlayerToPoint(5,playerid,-1869.5820,-1624.6660,21.8426))return SendClientMessage(playerid,COLOR_GREY,"Du kannst dich hier nicht ausrüsten.");
    if(gettime()<equipusen[playerid])
    {
    new equipzeit=equipusen[playerid]-gettime();
    format(string,sizeof(string),"Du kannst dich erst wieder in %d Sekunden wieder ausrüsten.",equipzeit);
    return SendClientMessage(playerid,COLOR_GREY,string);
    }
    GivePlayerWeapon(playerid,24,200);
    equipusen[playerid]=gettime()+(60*2);
    SendClientMessage(playerid,COLOR_GREY,"Du hast dich erfolgreich ausgerüstet.");
    return 1;
    }