Hallo zämme ...
Habe einen ChatBot geschriben, der auf dumme Komentare antwortet oder auf bestimmte Befehle antwortet ...
Problem ist, wenn aich NICHTS angegeben ist, macht er das was als erstes in der if Anweisung steht ...
Was mache ich falsch?
public OnPlayerText(playerid, text[])
{
if(!strcmp(text, "bot", true, 3))
{
if(!strlen(text[4]))
{
SetTimerEx("Bot", BOT_DELAY, false, "is", 1, playerid, "Bot");
}
if(!strcmp(text[4], "spruch", true))
{
SetTimerEx("Bot", BOT_DELAY, false, "is", 2, playerid, "Bot");
}
else if(!strcmp(text[4], "datum", true))
{
SetTimerEx("Bot", BOT_DELAY, false, "is", 3, playerid, "Bot");
}
else if(!strcmp(text[4], "version", true))
{
SetTimerEx("Bot", BOT_DELAY, false, "is", 4, playerid, "Bot");
}
else if(!strcmp(text[4], "serverinfo", true))
{
SetTimerEx("Bot", BOT_DELAY, false, "is", 5, playerid, "Bot");
}
else
{
SetTimerEx("Bot", BOT_DELAY, false, "is", 1, playerid, "Bot");
}
}
return 1;
}
public Bot(mode, playerid, text[])
{
if(mode == 1)
{
SendClientMessage(playerid, BOTCOLOR, "Bot: Möglichkeiten: spruch, version, datum, serverinfo");
}
else if(mode == 2)
{
switch(random(4))
{
case 0: SendClientMessageToAll(BOTCOLOR, "Bot: Scheiße in der Lampenschale gibt gedämpftes Licht im Saale.");
case 1: SendClientMessageToAll(BOTCOLOR, "Bot: Nervengas ist kein Spielzeug.");
case 2: SendClientMessageToAll(BOTCOLOR, "Bot: Lieber einen wackeligen Stammtisch, als einen festen Arbeitsplatz.");
}
}
else if(mode == 3)
{
new year, month, day, hour, minute, str[128];
getdate(year, month, day);
gettime(hour, minute);
format(str,sizeof(str), "Bot: Heute ist der %02d,%02d,%d und es ist %02d:%02d Uhr.", day, month, year, hour, minute);
SendClientMessageToAll(BOTCOLOR, str);
}
else if(mode == 4)
{
SendClientMessageToAll(BOTCOLOR, "Bot: Chatbot V0.1 by Projumper.");
}
else if(mode == 5)
{
SendClientMessageToAll(BOTCOLOR, "Bot: Server - GermanCityOfDreams");
SendClientMessageToAll(BOTCOLOR, "Bot: IP - No IP set.");
SendClientMessageToAll(BOTCOLOR, "Bot: Besitzer - Projumper & Alex");
}
}