Hallo liebe Community ...
ich habe mit dem scripten vor 3 Tagen angefangen ....
es macht spaß , aber es stellen sich oft probleme in den weg..
Ich habe bereits das speichern und laden des spielers sowie ein vernünftiges reg und log script ... einen adminscrip hab ich auch schon..
nun ja wo ist nun das problem ..
und zwar will ich mit erstellen der Fraktionen anfangen ...
das hat ja auch bislang gut geklappt nur ..
wie vereinfache ich mir das .. wenn ihr unten in den script schaut .. ist das normal?? es muss doch bestimmt leichter gehen..
denn wie mache ich jetzt dass falls man mafia leader ist ...die rangzuteilung??
dieses gTeam habe ich nicht so genau verstanden? was ist sinnvoller bzw einfacher?
brauche dringend hilfe ..
danke
gruß Kamel
//Fraktionsnamen
#define fraktname1 "LSPD"
#define fraktname2 "Mafia"
#define fraktname3 "Medic"
#define fraktname4 "STAAT"
//Fraktionsränge
#define PDRang1 "Praktikant"
#define PDRang2 "Polizeimeisteranwärter"
#define PDRang3 "Polizeikommissar "
#define PDRang4 "Polizeioberkommissar "
#define PDRang5 "Polizeihauptkommissar "
#define PDRang6 "Polizeidirektor "
//Fraktionsleadernamen
#define PDLeader "Leitender Polizeidirektor"
#define MAFLeader "Mafiaboss"
ocmd:setleader(playerid,params[])
{
if(!isPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,ROT,"Rang zu Niedrig.");
new pID,fID;
if(sscanf(params,"ui",pID,fID))return SendClientMessage(playerid,BLAU,"/makeleader [playerid] [fraktionsid]");
SetPVarInt(pID,"Fraktion",fID);
SetPVarInt(pID,"Leader",fID);
SpielerSpeichern(pID);
SendClientMessage(playerid,BLAU,"Erfolgreich.");
return 1;
}
ocmd:unsetleader(playerid,params[])
{
if(!isPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,ROT,"Rang zu Niedrig.");
new pID;
if(sscanf(params,"u",pID))return SendClientMessage(playerid,BLAU,"/unsetleader [playerid]");
SetPVarInt(pID,"Fraktion",0);
SetPVarInt(pID,"Leader",0);
SetPVarInt(pID,"Fraktionsrang",0);
SpielerSpeichern(pID);
ocmd:invitemember(playerid,params[])
{
if(!isPlayerInFrakt(playerid,1))return SendClientMessage(playerid,ROT,"Du bist nicht dafür authorisiert.");
if(!isPlayerFraktLeader(playerid,1))return SendClientMessage(playerid,ROT,"Du bist nicht Leitender Polizeidirektor.");
new pID,fID;
if(sscanf(params,"ui",pID,fID))return SendClientMessage(playerid,BLAU,"/invitemember [playerid] [fraktionsid]");
SetPVarInt(pID,"Fraktion",fID);
SendClientMessage(playerid,BLAU,"Erfolgreich.");
return 1;
}
ocmd:giverang(playerid,params[])
{
if(!isPlayerInFrakt(playerid,1))return SendClientMessage(playerid,ROT,"Du bist nicht dafür authorisiert.");
if(!isPlayerFraktLeader(playerid,1))return SendClientMessage(playerid,ROT,"Du bist Fett.");
new pID,rank;
if(sscanf(params,"ui",pID,rank))return SendClientMessage(playerid,BLAU,"/giverank [playerid] [rank]");
SetPVarInt(pID,"Fraktion",1);
SetPVarInt(pID,"Fraktionsrang",rank);
SpielerSpeichern(pID);
SendClientMessage(playerid,BLAU,"Erfolgreich.");
return 1;
}
if(strcmp(cmdtext,"/stats",true)==0)
{
new string[128];
new fraktname[64];
switch(GetPVarInt(playerid,"Fraktion"))
{
case 0:{fraktname="Keine";}
case 1:{fraktname=fraktname1;}
case 2:{fraktname=fraktname2;}
case 3:{fraktname=fraktname3;}
case 4:{fraktname=fraktname4;}
}
new fraktrang[64];
switch(GetPVarInt(playerid,"Fraktionsrang"))
{
case 0:{fraktrang="Delo";}
case 1:{fraktrang=PDRang1;}
case 2:{fraktrang=PDRang2;}
case 3:{fraktrang=PDRang3;}
case 4:{fraktrang=PDRang4;}
case 5:{fraktrang=PDRang5;}
case 6:{fraktrang=PDRang6;}
case 7:{fraktrang=PDLeader;}
}
new pleader[64];
switch(GetPVarInt(playerid,"Leader"))
{
case 0:{pleader="Kein";}
case 1:{pleader=PDLeader;}
case 2:{pleader=MAFLeader;}
}
//1 reihe
format(string,sizeof(string),"[Name: %s] [Level: %i] [Adminlevel: %i] [Fraktion: %s] [Fraktionsrang: %s] [Zeit seit Payday: %iMinuten] ",SpielerName(playerid),GetPlayerScore(playerid),GetPVarInt(playerid,"Adminlevel"),fraktname,fraktrang,GetPVarInt(playerid,"Paytime"));
SendClientMessage(playerid,BLAU,string);
return 1;
SendClientMessage(playerid,BLAU,"Erfolgreich.");
return 1;
}
stock isPlayerInFrakt(playerid,fraktid)
{
if(GetPVarInt(playerid,"Fraktion")==fraktid)return 1;
return 0;
}
stock isPlayerRang(playerid,rang)
{
if(GetPVarInt(playerid,"Fraktionsrang")>=rang)return 1;
return 0;
}
stock isPlayerFraktLeader(playerid,pleader)
{
if(GetPVarInt(playerid,"Leader")==pleader)return 1;
return 0;
}