Command blocken

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
  • Hi,
    wie kann ich machen das wenn z.b einer /dm eingibt keinen Command eingeben kann bis er wieder aus der DM rausgeht?
    Das sozusagen alle Commands geblockt werden auser /dm um die DM zu verlassen!
    Hier der /dm Command:



    if(strcmp(cmdtext,"/dm",true)==0)
    {
    if(IsSpielerInDM[playerid] == 0)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    format(string, sizeof(string), "%s has entered DM (/dm)", name);
    SendClientMessageToAll(0xAA3333AA, string);
    SetPlayerPos(playerid,2208.0815,2189.2583,103.8786);
    ResetPlayerWeapons(playerid);
    GameTextForPlayer(playerid,"Welcome to /DM",4000,6);
    GivePlayerWeapon(playerid, 26, 8000);
    GivePlayerWeapon(playerid, 32, 8000);
    SetPlayerHealth(playerid, 100.0);
    SetPlayerArmour(playerid, 100.0);
    sstats[2]++;
    new s[100];
    format(s,sizeof(s),"Deaths: %d | Kills: %d | DM: %d | BF: %d | AFK: %d",sstats[0], sstats[1], sstats[2], sstats[3], sstats[4]);
    TextDrawSetString(stats,s);
    IsSpielerInDM[playerid] = 1;
    }
    else {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    format(string, sizeof(string), "%s has left DM (/dm)", name);
    SendClientMessageToAll(0xAA3333AA, string);
    IsSpielerInDM[playerid] = 0;
    GivePlayerWeapon(playerid, 26, 1000);
    GivePlayerWeapon(playerid, 32, 1000);
    SetPlayerHealth(playerid, 100.0);
    SetPlayerArmour(playerid, 100.0);
    SetPlayerPos(playerid,2000.5702,1538.4266,13.5859);
    sstats[2]--;
    new s[100];
    format(s,sizeof(s),"Deaths: %d | Kills: %d | DM: %d | BF: %d | AFK: %d",sstats[0], sstats[1], sstats[2], sstats[3], sstats[4]);
    TextDrawSetString(stats,s);
    }
    return 1;
    }


    MfG ~Luka~ :thumbup:

  • Du tust den /dm-Command ganz nach oben unter die "new ..." und schreibst dann das darunter:


    if(IsSpielerInDM[playerid]) return SendClientMessage(playerid,COLOR_RED," Das geht im DM nicht!");


    Ich scripte NICHT mehr, ich möchte mit NIEMANDEM einen Server aufmachen habe auch NICHTS mehr mit LoH zu tun, also lasst es mit den PNs!

  • es geht nicht wäre gut wenn du mal ein bisschen besser erklären könntest!!!
    So wie ich es verstanden habe habe ich unter den ganzen new das gemacht:



    if(strcmp(cmdtext,"/dm",true)==0)
    {
    if(IsSpielerInDM[playerid] == 0)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    format(string, sizeof(string), "%s has entered DM (/dm)", name);
    SendClientMessageToAll(0xAA3333AA, string);
    SetPlayerPos(playerid,2208.0815,2189.2583,103.8786);
    ResetPlayerWeapons(playerid);
    GameTextForPlayer(playerid,"Welcome to /DM",4000,6);
    GivePlayerWeapon(playerid, 26, 8000);
    GivePlayerWeapon(playerid, 32, 8000);
    SetPlayerHealth(playerid, 100.0);
    SetPlayerArmour(playerid, 100.0);
    sstats[2]++;
    new s[100];
    format(s,sizeof(s),"Deaths: %d | Kills: %d | DM: %d | BF: %d | AFK: %d",sstats[0], sstats[1], sstats[2], sstats[3], sstats[4]);
    TextDrawSetString(stats,s);
    IsSpielerInDM[playerid] = 1;
    }
    else {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    format(string, sizeof(string), "%s has left DM (/dm)", name);
    SendClientMessageToAll(0xAA3333AA, string);
    IsSpielerInDM[playerid] = 0;
    GivePlayerWeapon(playerid, 26, 1000);
    GivePlayerWeapon(playerid, 32, 1000);
    SetPlayerHealth(playerid, 100.0);
    SetPlayerArmour(playerid, 100.0);
    SetPlayerPos(playerid,2000.5702,1538.4266,13.5859);
    sstats[2]--;
    new s[100];
    format(s,sizeof(s),"Deaths: %d | Kills: %d | DM: %d | BF: %d | AFK: %d",sstats[0], sstats[1], sstats[2], sstats[3], sstats[4]);
    TextDrawSetString(stats,s);
    }
    return 1;
    }


    if(IsSpielerInDM[playerid]) return SendClientMessage(playerid,COLOR_RED," Das geht im DM nicht!");


    Ich bekomme dann 9 Errors:



    (177) : error 010: invalid function or declaration
    (179) : error 010: invalid function or declaration
    (182) : error 021: symbol already defined: "GetPlayerName"
    (194) : error 021: symbol already defined: "format"
    (198) : error 010: invalid function or declaration
    (199) : error 021: symbol already defined: "name"
    (210) : error 021: symbol already defined: "s"
    (214) : error 010: invalid function or declaration
    (216) : error 010: invalid function or declaration


    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    9 Errors.



    MfG ~Luka~

    Einmal editiert, zuletzt von Markus ()

  • versuchs mal so:
    if(strcmp(cmdtext,"/dm",true)==0)
    {
    if(IsSpielerInDM[playerid] == 0)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    format(string, sizeof(string), "%s has entered DM (/dm)", name);
    SendClientMessageToAll(0xAA3333AA, string);
    SetPlayerPos(playerid,2208.0815,2189.2583,103.8786);
    ResetPlayerWeapons(playerid);
    GameTextForPlayer(playerid,"Welcome to /DM",4000,6);
    GivePlayerWeapon(playerid, 26, 8000);
    GivePlayerWeapon(playerid, 32, 8000);
    SetPlayerHealth(playerid, 100.0);
    SetPlayerArmour(playerid, 100.0);
    sstats[2]++;
    new s[100];
    format(s,sizeof(s),"Deaths: %d | Kills: %d | DM: %d | BF: %d | AFK: %d",sstats[0], sstats[1], sstats[2], sstats[3], sstats[4]);
    TextDrawSetString(stats,s);
    IsSpielerInDM[playerid] = 1;
    }
    else {
    SendClientMessage(playerid, 0xAA3333AA, "Du bist schon im /dm");
    }
    return 1;
    if(strcmp(cmdtext,"/leave",true)==0)
    {
    if(IsSpielerInDM[playerid] == 1)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    format(string, sizeof(string), "%s has left DM (/leave)", name);
    SendClientMessageToAll(0xAA3333AA, string);
    sstats[2]--;
    new s[100];
    format(s,sizeof(s),"Deaths: %d | Kills: %d | DM: %d | BF: %d | AFK: %d",sstats[0], sstats[1], sstats[2], sstats[3], sstats[4]);
    TextDrawSetString(stats,s);
    }
    else {
    SendClientMessage(playerid, 0xAA3333AA, "Du bist nicht im /dm");
    }
    return 1;
    }


    habe es net getestet sollte aber gehen.

    Der verlauf des Lebens ist auch nur ein Script. Aber es kann nicht im Editor geöffnet werden :D .

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • nach keiner klammer -.-



    public OnPlayerCommandText(playerid, cmdtext[])
    {
    new string[256];
    new playermoney;
    new sendername[MAX_PLAYER_NAME];
    new giveplayer[MAX_PLAYER_NAME];
    new playername[MAX_PLAYER_NAME];
    new cmd[256];
    new tmp[256];
    new dancestyle;
    new idcar = GetPlayerVehicleID(playerid);
    new giveplayerid, moneys, idx;
    cmd = strtok(cmdtext,idx);
    if(IsSpielerInDM[playerid])
    {
    SendClientMessage(playerid,COLOR_RED," Das geht im DM nicht!");
    return 1;
    }
    #



    oder so

  • Hi,
    also ich habe das jetzt bei OnPlayerCommandText eingefügt:



    if(IsSpielerInDM[playerid])
    {
    SendClientMessage(playerid,COLOR_RED," Das geht im DM nicht!");
    return 1;
    }


    Es funzt halb! Wenn man /dm gemacht hat geht kein Command mehr! So soll es ja auh sein!
    Aber der Command um die DM zu verlassen geht auch nicht der muss funzen! Sonst kann man die DM nicht verlassen!


    Wie macht man das???


    MfG ~Luka~

  • Moment, ich erkläre dir nochmal die richtige Reihenfolge:
    public OnPlayerCommandText(playerid,cmdtext[])
    {
    // new idx, tmp etc..


    // /dm Command


    if(IsSpielerInDM[playerid]) return SendClientMessage(playerid,COLOR_RED," Das geht im DM nicht!");


    // Rest von OnPlayerCommandText
    }


    Ich scripte NICHT mehr, ich möchte mit NIEMANDEM einen Server aufmachen habe auch NICHTS mehr mit LoH zu tun, also lasst es mit den PNs!

  • public OnPlayerCommandText(playerid,cmdtext[])
    {
    // new idx, tmp etc..


    // /dm Command


    if(IsSpielerInDM[playerid] == 1) return SendClientMessage(playerid,COLOR_RED," Das geht im DM nicht!");


    // Rest von OnPlayerCommandText
    }


    das geht

  • ah okay jetzt geht es und wie kann man machen das alle commands nicht gehen auser /dm???
    Weil ich muss ja irgendwie die DM verlassen können dazu muss ja /dm funzen


    MfG

    Einmal editiert, zuletzt von Markus ()

  • hi,
    nene ich mein was anderes!!!
    Wenn ihc ja in die DM gehe mit /dm geht kein CCommand mehr ich will aber das 1 Command geht un der rest net! Man muss die DM ja verlassen können!


    MfG ~Luka~ ^^

  • hat flo doch schon geschrieben und das mehr fach du seltzt das /dm command vor dem
    if(IsSpielerInDM[playerid] == 1) return SendClientMessage(playerid,COLOR_RED," Das geht im DM nicht!");

  • if(strcmp(cmdtext,"/command",true)==0)
    {
    if(IsSpielerInDM[playerid] == 1) return SendClientMessage(playerid,COLOR_RED," Das geht im DM nicht!");
    // Rest des Commands


    machs so. Und dein /dm befehl lässte so, wie er is, dann sollte es klappen

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen