| RP Tutorialok
__________________________________________________________________________________________________________
RP Név ellenőrző
Ezt tegyük be a modba (Érdemes a legaljára)
stock CheckRpName(const name[]){
new length=strlen(name),ch;
for(ch=0; ch<length; ch++) if(name[ch]) break;
if(ch==(length+1)) return false;
for(ch=0; ch<length; ch++) {
if((ch>=2) && (ch<=(length-2))) {
if((name[ch]>='a')&&(name[ch]<='z')||(name[ch]>='A')&&(name[ch]<='Z')||name[ch]=='_') {}
else return false;
}
else {
if(name[ch]=='_') return false;
}
}
return true;
}
Aztán az OnPlayerConnect(playerid)-hez
new player_name[MAX_PLAYER_NAME];
GetPlayerName(playerid,player_name,sizeof player_name);
if(CheckRpName(player_name)) { }
else {
SendClientMessage(playerid,0xAA3333AA,"A neved nem felel meg az RP szabványnak.");
SendClientMessage(playerid,0xAA3333AA,"Plélda a megfelelő névre: Vezetékneved_Keresztneved");
Kick(playerid);
}
És akkor így fog kinézni
-
#include <a_samp>
-
public OnPlayerConnect(playerid)
-
{
-
new player_name[MAX_PLAYER_NAME];
-
GetPlayerName(playerid,player_name,sizeof player_name);
-
if(CheckRpName(player_name)) { }
-
else {
-
SendClientMessage(playerid,0xAA3333AA,"A neved nem felel meg az RP szabványnak");
-
SendClientMessage(playerid,0xAA3333AA,"Vezetékneved_Keresztneved");
-
Kick(playerid);
-
}
-
-
return 1;
-
}
-
stock CheckRpName(const name[]){
-
new length=strlen(name),ch;
-
for(ch=0; ch<length; ch++) if(name[ch]) break;
-
if(ch==(length+1)) return false;
-
for(ch=0; ch<length; ch++) {
-
if((ch>=2) && (ch<=(length-2))) {
-
if((name[ch]>='a')&&(name[ch]<='z')||(name[ch]>='A')&&(name[ch]<='Z')||name[ch]=='_') {}
-
else return false;
-
}
-
else {
-
if(name[ch]=='_') return false;
-
}
-
}
-
return true;
-
}
__________________________________________________________________________________________________________
Beszélgetés a közelben lévő játékosokkal
A fenti képen látható a MAX távolság a játékosok közt. Az ennél távolabbi játékosoknak nem küldi el az üzenetet.
A mododban található OnPlayerText-et töröld ki és ezt rakd be a helyére:
-
public OnPlayerText(playerid, text[])
-
{
-
new Float:x, Float:y, Float:z, str[200], name[MAX_PLAYERS];//tárolók
-
for(new i=0;i<MAX_PLAYERS;i++)//összes játékosra vonatkozik
-
{
-
if(IsPlayerConnected(i)==1)//csatlakozás
-
{
-
GetPlayerPos(playerid, x, y, z);//lekérjük a saját pozíciónkat
-
if(IsPlayerInRangeOfPoint(i, 7, x, y, z))//ha a többiek a mi pozíciónk közelébe vannak
-
{
-
GetPlayerName(playerid, name, sizeof(name));//lekérjük a nevünket
-
format(str, sizeof(str), "%s mondja: %s", name, text);//üzenet
-
SendClientMessage(i, 0xFFFF00AA,str);//elküldjük a játékosoknak
-
}
-
}
-
}
-
return 0;
-
}
_________________________________________________________________________________________________________
/me parancs
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(cmdtext, "/me", true, 3))//parancs
{
if(!cmdtext[3] || !cmdtext[4]) return SendClientMessage(playerid, 0xFF0000FF, "Használat: /me [cselekvés]");
new str[128], name[MAX_PLAYER_NAME];//változók
GetPlayerName(playerid, name, sizeof(name));//neved lekérése
format(str, 128, "%s éppen %s", name, cmdtext[3]);//üzenet amit átírhatsz (a két %s-t ne töröld le ) SendClientMessageToAll(0x1E84D7FF, str);//üzenet elküldése
return 1;
}
return 0;
}
N00boknak összeraktam:Letöltés
_________________________________________________________________________________________________
| |
Igazából ez a /me jó csak nem range-es mert mindenki látja ezt az üzenetet és így nem rps de ez legyen a legkevesebb.