Unknown command
#1

Hey, ik heb een (noob) vraag,

Ik heb mn DM gamemode hervat, en ik maakte een paar commands.

De compiler geeft geen errors aan, maar als ik in game ga en een van de commands typ, staat er unknown command.

Ik heb hier de code:

pawn Code:
public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/help", cmdtext, true, 10) == 0)
    {
        SendClientMessage(playerid, COLOR_ORANGE, "This is a deathmatch server, this means you have to kill everybody who is in your way!");
        SendClientMessage(playerid, COLOR_ORANGE, "Typ /commands if you want to know all the commands!");
        SendClientMessage(playerid, COLOR_ORANGE, "Read the /rules before you start playing!");
        return 1;
    }
    if (strcmp("/rules", cmdtext, true, 10) == 0)
    {
        SendClientMessage(playerid, COLOR_ORANGE, "|=======================================RULES==============================|");
        SendClientMessage(playerid, COLOR_ORANGE, "This is a deathmatch server, its means you have to kill everyone in your way!");
        SendClientMessage(playerid, COLOR_ORANGE, "Do not hack, it is strictly forbidden and result in a permanent ban!");
        SendClientMessage(playerid, COLOR_ORANGE, "Do not insult other players, it is forbidden and result in a punishment!");
        SendClientMessage(playerid, COLOR_ORANGE, "Do not car/heli kill eachother, it is forbidden and will result in a punishment!");
        SendClientMessage(playerid, COLOR_ORANGE, "Do not spawnkill! It is strictly forbidden and will result in a punishment!");
        return 1;
    }
    if (strcmp("/kill", cmdtext, true, 10) == 0)
    {
        SetPlayerHealth(playerid, 0);
        SendClientMessage(playerid, COLOR_GREY, "You have succesfully killed yourself!");
        return 1;
    }
    if (strcmp("/info", cmdtext, true, 10) == 0)
    {
        SendClientMessage(playerid, COLOR_ORANGE, "This is a Deathmatch Server, you have to kill everybody who is in your way!");
        SendClientMessage(playerid, COLOR_ORANGE, "You can team up with other players, or be a lonewolf!");
        SendClientMessage(playerid, COLOR_ORANGE, "Tired of the current skin? Press F4 or contact an admin!");
        SendClientMessage(playerid, COLOR_ORANGE, "It is not that hard, just enjoy playing!");
        return 1;
    }
    if (strcmp("/commands", cmdtext, true, 10) == 0)
    {
        SendClientMessage(playerid, COLOR_ORANGE, "/rules - /help - /info");
        return 1;
    }
    return 1;
    }
Weet iemand het probleem? Alvast bedankt!
Reply
#2

Volgens mij ligt het aan het einde van je script:
In plaats van dit:
Code:
    if (strcmp("/commands", cmdtext, true, 10) == 0)
    {
        SendClientMessage(playerid, COLOR_ORANGE, "/rules - /help - /info");
        return 1;
    }
    return 1;
    }
Probeer eens dit:
Code:
    if (strcmp("/commands", cmdtext, true, 10) == 0)
    {
        SendClientMessage(playerid, COLOR_ORANGE, "/rules - /help - /info");
        return 1;
    }
  return 1;
}
Volgens mij zou dat werken.
Reply
#3

Het werkt niet, ik heb wel een admin filterscript. Het is zcmd en hij staat niet onder OnPlayerCommand, misschien is dat het?
Reply
#4

Moet het niet return 0; zijn?
Reply
#5

Zorg inderdaad dat de laatste return in OnPlayerCommandText altijd "return 0;" is. Anders zal de server niet in alle scripts checken voor het juiste command. Bij "return 1;" stopt het immers met zoeken door alle scripts, terwijl "return 0;" de server verder laat zoeken in de andere filterscripts naar het command.
Reply
#6

Quote:
Originally Posted by Basssiiie
View Post
Zorg inderdaad dat de laatste return in OnPlayerCommandText altijd "return 0;" is. Anders zal de server niet in alle scripts checken voor het juiste command. Bij "return 1;" stopt het immers met zoeken door alle scripts, terwijl "return 0;" de server verder laat zoeken in de andere filterscripts naar het command.
Yeee, ik had het goed :P xD

Quote:
Originally Posted by Jason_Dealley
View Post
Volgens mij ligt het aan het einde van je script:
In plaats van dit:
Code:
    if (strcmp("/commands", cmdtext, true, 10) == 0)
    {
        SendClientMessage(playerid, COLOR_ORANGE, "/rules - /help - /info");
        return 1;
    }
    return 1;
    }
Probeer eens dit:
Code:
    if (strcmp("/commands", cmdtext, true, 10) == 0)
    {
        SendClientMessage(playerid, COLOR_ORANGE, "/rules - /help - /info");
        return 1;
    }
  return 1;
}
Volgens mij zou dat werken.
Het enigste wat je heb verandert is de Tab...
Volgend mij is dit niet noodzakelijk
Kan het fout hebben maar zoals ik al eerder zei en iemand anders ook.
Het moet return 0; zijn
Reply
#7

pawn Code:
if (strcmp("/commands", cmdtext, true, 10) == 0)
    {
        SendClientMessage(playerid, COLOR_ORANGE, "/rules - /help - /info");
        return 1;
      }
    return 0;
    }
En het werkt nog steeds niet..
Reply
#8

Quote:
Originally Posted by zClaw
View Post
pawn Code:
if (strcmp("/commands", cmdtext, true, 10) == 0)
    {
        SendClientMessage(playerid, COLOR_ORANGE, "/rules - /help - /info");
        return 1;
      }
    return 0;
    }
En het werkt nog steeds niet..
Staan er verder nog commands in je script?
Krijg je warnings?
Reply
#9

Je kan ZCMD niet samen met strcmp gebruiken. Je zal zelf ook ZCMD moeten gebruiken.
Reply
#10

Quote:
Originally Posted by Jochemd
View Post
Je kan ZCMD niet samen met strcmp gebruiken. Je zal zelf ook ZCMD moeten gebruiken.
Ik zag 'm al. Aangezien ik geen idee heb hoe ZCMD in elkaar zit. Is er een mogelijke oplossing hiervoor?
Reply
#11

Zcmd is heel simpel. Kan van harte aanbevelen je er even in te verdiepen. PM me anders voor mijn skype. Dan leg ik je van de week wel uit hoe het werkt.
Reply
#12

pawn Code:
CMD:commandname(playerid, params[]) {
    // hier je command.. ipv strtok gebruik je dan sscanf. In params staat alles wat men achter /commandname typt. bijv /kill 5 (5 = params) maar ook /givecash 5 20 omg cash (playerid, amount, reason) staat in params
    return 1;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)