Skripta koju koristim: FG
Detaljan opis problema: ovako kako da napravim kada igrac napise neku odredjenu rjec da to se pojavi adminima kao npr: bug,itd..da se pojavi id od tog igraca i ime i sta je napisao.
Dio skripte: 8)
edit:jel ovako to nesto ide.
if(IsInputForbiddenWord(playerid,text))
{
format(string, 256, "Sd anticheat:Igrac [%d][%s] >%s< PS,VR, ili AD!", giveplayerid, sendername, text);
ABroadCast(COLOR_GREEN,string,1);
return 1;
}
Kod: [Odaberi]
new Forbidden[][] =
{
"admin",
"server",
"admine",
"osc",
"srv",
"srvu",
"adminu",
"oscu",
"osca",
"/w",
"/ajail"
};
stock IsInputForbiddenWord(playerid,input[])
{
#pragma unused playerid
for(new c;c<sizeof(Forbidden);c++)
{
if(strfind(input,Forbidden[c])!=-1){}
}
return true;
}
Jeli zna neko ovo i meni treba :D :D :D
Evo ti osnovno:
#include <a_samp>
#define KOLICINA_TEKSTA 14
#define RIJECI 14
new zabrana[][KOLICINA_TEKSTA] =
{
{"@gmail"},
{"@live"},
{"@msn"},
{"@hotmail"},
{"de"},
{"cc"},
{"www"},
{"com"},
{"co"},
{"uk"},
{"org"},
{"net"},
{"info"},
{"tk"},
{"bug"}
};
public OnPlayerDisconnect(playerid, reason)
{
return 1;
}
public OnPlayerText(playerid, text[])
{
if((strlen(text) < 3) || (text[0] == '/') || (text[0] == '#') || (text[0] == '!')) return 1;
new offset;
new len;
for(new i=0; i<RIJECI; i++)
{
offset = strfind(text, zabrana[i], true);
if(offset > -1)
{
len = strlen(zabrana[i]);
if(len < 3) break;
for(new y=0; y<len; y++)
{
text[offset+y] = '*';
}
}
}
return 1;
}
Aa hoc li se to pojaviti adminima id od igraca i njegovo ime kad to igrac upise.
Citat: zglj poslato Februar 28, 2012, 00:09:30 PRE PODNE
Aa hoc li se to pojaviti adminima id od igraca i njegovo ime kad to igrac upise.
Ne vidim u snichovom code-u to nigdje..On ti je dao osnovu,nije cijeli code.
Citat: zglj poslato Februar 28, 2012, 00:09:30 PRE PODNE
Aa hoc li se to pojaviti adminima id od igraca i njegovo ime kad to igrac upise.
Care dao sam ti osnovu, eh sad ti po osnovi kroji sam sebi dalje, ne mislis valjda da cu ti komplet system stavit!
:/ ...evo na sabahu malo jutarnje gimnastike ..
ovo dodajes u
public OnPlayerText(playerid, text[])
foreach (Player, i)
{
if(strfind(text, "ZABRANJENA 1", true) ||strfind(text, "ZABRANJENA 2", true) || strfind(text, "ZABRANJENA 3", true) != -1)
{
if(PlayerInfo[i][pAdmin]!= 0)
{
new pname[MAX_PLAYER_NAME], astring[256];
GetPlayerName(playerid, pname , sizeof(pname));
format(astring, sizeof(astring),"[Upozorenje] %s kaze: %s ",pname ,text);
SendClientMessage(i,COLOR_RED,astring);
return 1; // ovo izbrisi ako igracu dopustas da pise rijeci a da ti ipak upozorenje dolazi
}
}
}
ako obrises return stavi ispod
if(PlayerInfo[playerid][pMute] == 1)...
na FG je pMute ili pMuted nezz .. ugl u OnPlayerText je ..
sev naj :P
Edit : zaboravih rec..moras imat foreach inc
A gdje rjeci da stavim kad neku napise da se to pojavi adminima.
if(strfind(text, "ZABRANJENA 1", true) ||strfind(text, "ZABRANJENA 2", true) || strfind(text, "ZABRANJENA 3", true) != -1)
strfind - string find , trazi zadanu rijecu u stringu u ovom slucaju text je string a "ZABRANJENA 1" zadana rijec.. samo zamjeni svojim rijecima , znaci dodajes
strfind(text, "zabranjena rijec", true)
i odvajaj ih sa || (kao sto sam ja uradio) ili sa && :)
Problem je kada bilo sta napisem pojavi se adminima a ja bih htjeo kada samo ove rjeci napise da se to pojavljuje.