Hali! Van egy hirdetés szkriptem amit kipótoltam egy tiltott szavas listával. De az a problémám hogy bárki aki csak beírja a parancsot azt kirúgja. Esetleg valaki tudja hol lehet a hiba?
Tiltott szavak:
new antihirdetes[] = {
\"fasz\",
\"ribanc\",
\"fos \",
\"buzi\",
\"szar \",
\"béna \",
\"bena \",
\"kaki\",
\"kúrva\",
\"kurva\",
\"geci\",
\"lopott\",
\"letöltött\",
\"szerver\",
\"mod \",
\"mód \",
};
new antihirdetes2[] = {
\"fu.ck\",
\"www.\",
\".com\",
\".tk\",
\".hu\",
\".net\",
\".org\",
\".eu\",
\":77\",
\".1\",
\"ip:\",
\".2\",
\".3\",
\".4\",
\".5\",
\".6\",
\".7\",
\".8\",
\".9\",
\"1:\",
\"2:\",
\"3:\",
\"4:\",
\"5:\",
\"6:\",
\"7:\",
\"8:\",
\"9:\",
\"0:\",
};
Hirdetés rendszer:
if(strcmp(cmd, \"/hirdetés\", true) == 0 || strcmp(cmd, \"/hirdetés\", true) == 0 || strcmp(cmd, \"/hirdetes\", true) == 0 || strcmp(cmd, \"/ad\", true) == 0 || strcmp(cmd, \"/hirdet\", true) == 0)
{
if(IsPlayerConnected(playerid))
{
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= \' \'))
{
idx++;
}
new offset = idx;
new result[128];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid,COLOR_LIGHTBLUE,\"SunLife RPG: /hirdetés [szöveg]\");
return 1;
}
new hosszusag = strlen(result);
if(strfind(result,\"Đ\", true,0) != -1)
{
if(strfind(result,\"Đ\",true,0) !=-1)
{
SendClientMessage(playerid, COLOR_GRAD2, \"Ezt a hirdetést nem adhatod fel!\");
return 1;
}
}
else if(strfind(result,\"admin\") != -1)
{
SendClientMessage(playerid, COLOR_GRAD2, \"Ha Adminra van szükséged akkor írj nekik /report-ban vagy /adminok és /pm!\");
return 1;
}
for(new i; i < sizeof(antihirdetes); i++)
{
if(strfind(result, antihirdetes, true) != -1)
{
format(string, sizeof(string), \"%s ki lett rúgva a rendszer által | Oka: Moderáld magadat!\",sendername);
SendClientMessageToAll(0xFF0606FF, string);
Kick(playerid);
}
}
for(new i; i < sizeof(antihirdetes2); i++)
{
if(strfind(result, antihirdetes2, true) != -1)
{
format(string, sizeof(string), \"%s ki lett rúgva a rendszer által | Oka: Hírdess máshol!\",sendername);
SendClientMessageToAll(0xFF0606FF, string);
Kick(playerid);
}
}
if(PlayerInfo[playerid][Penz] >= hosszusag*350)
{
format(stringx,256,\"HIRDETÉS: %s | Feladó: %s, | Telefonszám: %d\",result,sendername,PlayerInfo[playerid][pPnumber]);
OOCNews(COLOR_GREEN,stringx);
PlayerInfo[playerid][Penz] -= hosszusag*350;
varoskassza += hosszusag*350;
Savevaroskassza();
format(stringx,sizeof(stringx), \"A hírdetésben %d karaktert használtál fel ami %dFt!\",hosszusag,hosszusag*350);
SendClientMessage(playerid, COLOR_WHITE, stringx);
SafeGivePlayerMoney(playerid, -hosszusag*350);
new nev[32];
GetPlayerName(playerid, nev, sizeof(nev));
new h,mi,s,y,m,d;
getdate(y,m,d);
gettime(h,mi,s);
format(stringx,sizeof(stringx), \"[%d/%d/%d][%d:%d:%d][Hirdetés] HIRDETÉS: %s | Feladó: %s, | Telefonszám: %d\",y,m,d,h,mi,s,result,nev,PlayerInfo[playerid][pPnumber]);
LoOoG(stringx);
}
else SendClientMessage(playerid, COLOR_GRAD1, \"A hírdetés ára 350Ft*karakter!\");
}
return 1;
}
Előre is köszönöm!