Erstmal vorweg: NON GF
Ich habe mit 4 andren freunden einen privat server...
Es ist ein Funserver , ich arbeite seit neuem auch mit dcmd.
Nun, mein Problem ist, ich versteh einfach nicht, wie ein cmd funktionieren soll,
bei denen ein Hausbesitzer bestimmten Leuten die Erlaubnis geben kann, sein
haus zu betreten..
ich habe zwar so ein cmd, doch ist dieser nicht das wahre..
Er funzt zwar einwandfrei(ausser bei mir , aber das spielt JETZ keine rolle, da ich weiss wo das prob. liegt),
aber ich möchte das man einfach nur /villa [id] eingeben muss, damit die angegebene id die erlaubnis bekommt..
bei mir wird immer abgefragt ob er SEINE rechte hat xDD
sprich in der enum steht das:
enum pInfo
{
pPassword[128],
pKills,
pDeaths,
pCash,
pVV,//Vito Villa erlaubnis
pWLS,//LS waffen erlaubnis
pVVR,//Vitos Vergabe Rechte
pLV,//Leart Villa erlaubnis
pLVR,//Leart Vergabe Rechte
pWLV,//LV Waffen erlaubnis
pMVR,//Michi Vergabe Rechte
pMV,//Michi Villa erlaubnis
pAV,//Alwin Villa erlaubnis
pAVR,//Alwin Vergabe Rechte
}
Zur erklärung : "Villa Erlaubnis" - bedeutet ob die person, die erlaubnis für die Villa des besitzers hat, umständlich wie nochwas,
doch ich kanns nich anders...
"Vergabe Rechte" - ist das recht des besitzers der villa. also zb. AVR - meine rechte, jemanden die erlaubnis für meine Villa zu geben....
das sind meine cmds:
public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(Villa,5,cmdtext);
/* der rest ist unwichtig*/
dcmd_Villa(playerid,params[])
{
new player;
if(sscanf(params, "u",player))
{
return SendClientMessage(playerid,Rot,"Benutzung: /Villa [ID]");
}
if (!IsPlayerConnected(player))
{
return SendClientMessage(playerid,Rot,"Kein Spieler mit dieser ID gefunden ");
}
if (PlayerInfo [playerid] [pVVR] ==0 )
{
return SendClientMessage(playerid,Rot,"Du hast keine Rechte dazu!");
}
if (PlayerInfo [playerid] [pVVR] ==1)
{
new
name[MAX_PLAYER_NAME],
string[128];
GetPlayerName(playerid,name,sizeof(name));
format(string, sizeof(string),"%s hat dir die Erlaubnis für Vitos Villa gegeben ",name);
SendClientMessage(player,Grün,string);
PlayerInfo[player][pVV] =1;
}
if (PlayerInfo [playerid] [pLVR] ==0)
{
return SendClientMessage(playerid,Rot,"Du hast keine Rechte dazu!");
}
if (PlayerInfo [playerid] [pLVR] ==1)
{
new
name[MAX_PLAYER_NAME],
string[128];
GetPlayerName(playerid,name,sizeof(name));
format(string, sizeof(string),"%s hat dir die Erlaubnis für Learts Villa gegeben ",name);
SendClientMessage(player,Grün,string);
PlayerInfo[player][pLV] =1;
}
if (PlayerInfo [playerid] [pMVR] ==0)
{
return SendClientMessage(playerid,Rot,"Du hast keine Rechte dazu!");
}
if (PlayerInfo [playerid] [pMVR] ==1)
{
new
name[MAX_PLAYER_NAME],
string[128];
GetPlayerName(playerid,name,sizeof(name));
format(string, sizeof(string),"%s hat dir die Erlaubnis für Michis Villa gegeben ",name);
SendClientMessage(player,Grün,string);
PlayerInfo[player][pMV] =1;
}
if (PlayerInfo [playerid] [pAVR] ==0)
{
return SendClientMessage(playerid,Rot,"Du hast keine Rechte dazu!");
}
if (PlayerInfo [playerid] [pAVR] ==1)
{
new
name[MAX_PLAYER_NAME],
string[128];
GetPlayerName(playerid,name,sizeof(name));
format(string, sizeof(string),"%s hat dir die Erlaubnis für Alwins Villa gegeben ",name);
SendClientMessage(player,Grün,string);
PlayerInfo[player][pAV] =1;
}
return 1;
}
Wie man sieht, zu groß, ich will es kleiner und einfacher...
doch genau das ist mein problem...
ich hab keine ahnung wie es funktioniert, ohne das ich für jeden einzelnen hausbesitzer eigene enum einträge und cmds machen muss..
Es geht 100% anders , aber wie?