Régen szükségem volt rá mind kezdo Godfather mód usernek.
Lehet hogy másoknak is gondja akadt az elkészítésével mint nekem anno, ezért gondoltam kicsit segítek.
A parancs lényege az mint a /me-nek cselekvést írhatunk ki vele.
Itt két lehetoség van: sikerül-nemsikerül.
A szkriptet berakom Ismeretlen változatba is.
UPDATE: Nincs alsó csík a névnél!
Sima változat, nevet is kiirja:
if(strcmp(cmd, \"/try\", true) == 0)
{
new message[256];
strmid(message, cmdtext, 4, strlen(cmdtext));
GetPlayerName(playerid, playername, sizeof(playername));
if(!strlen(message))
{
SendClientMessage(playerid,COLOR_GRAD1, \" Használat: /try [Akció]\");
}
else
{
switch(random(2))
{
case 1:
{
format(string, sizeof(string), \"** %s megpróbál(ja) %s és sikerül neki.\", GetPlayerNameEx(playerid),message);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
printf(\"%s\", string);
}
default:
{
format(string, sizeof(string), \"** %s megpróbál(ja) %s de nem sikerül neki.\", GetPlayerNameEx(playerid),message);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
printf(\"%s\", string);
}
}
}
return 1;
}
Név nélkül ismeretlenül:
if(strcmp(cmd, \"/try\", true) == 0)
{
new message[256];
strmid(message, cmdtext, 4, strlen(cmdtext));
if(!strlen(message))
{
SendClientMessage(playerid,COLOR_GRAD1, \" Használat: /try [Akció]\");
}
else
{
switch(random(2))
{
case 1:
{
format(string, sizeof(string), \"** Valaki megpróbál(ja) %s, és sikerül neki.\", message);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
printf(\"%s\", string);
}
default:
{
format(string, sizeof(string), \"** Valaki megpróbál(ja) %s, de nem sikerül neki.\", message);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
printf(\"%s\", string);
}
}
}
return 1;
}
Tudom hogy nem nagy munka, de a tapasztaltabbak kérlek ne szidjanak le, én csak segíteni akarok azoknak akik rászorulnak.
Illetve szükséged van erre a kódra ahhoz hogy ne legyen alsócsík a névben:
stock GetPlayerNameEx(playerid)
{
new string[24];
GetPlayerName(playerid,string,24);
new str[24];
strmid(str,string,0,strlen(string),24);
for(new i = 0; i < MAX_PLAYER_NAME; i++)
{
if (str == \'_\') str = \' \';
}
return str;
}
Ahhoz hogy csak egy bizonyos területen belül lássák kell ez:
forward ProxDetector(Float:radi, playerid, str[], col1, col2, col3, col4, col5);
public ProxDetector(Float:radi, playerid, str[],col1,col2,col3,col4,col5)
{
if(IsPlayerConnected(playerid))
{
new Float:posx, Float:posy, Float:posz;
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
GetPlayerPos(i, posx, posy, posz);
tempposx = (oldposx -posx);
tempposy = (oldposy -posy);
tempposz = (oldposz -posz);
if (((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16)))
{
SendClientMessage(i, col1, str);
}
else if (((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8)))
{
SendClientMessage(i, col2, str);
}
else if (((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4)))
{
SendClientMessage(i, col3, str);
}
else if (((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2)))
{
SendClientMessage(i, col4, str);
}
else if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
{
SendClientMessage(i, col5, str);
}
}
}
}
return 1;
}