Script[Help]Fraktionen

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • 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;
    }

  • Deine Art zu scripten, also mithilfe von PVars ist in Ordnung. Man kann jedoch auch mit Enums arbeiten.
    Schau dir einfach ein paar Tutorials über PVars und Enums an.