Beiträge von y0sh1

    Ich will das ein Fraktionsleader jemandem eine Einladung schicken kann welche bei dem Eingeladenen einen Dialog aufruft den er bestätigen kann.


    /invitemember Befehl :



    ocmd:invitemember(playerid,params[])
    {
    new pID,fID;
    if(GetPVarInt(playerid,"Fraktion") == 0) return 1; //Wenn Zivilist soll nichts passieren.
    if(!IsPlayerLeader(playerid,fID)) return ERROR_LEADER
    if(sscanf(params,"u",pID)) return SCM(playerid,Rot,"Verwendung : /invitemember [ID]");
    new string[128];
    new LeaderFrak = GetPVarInt(playerid,"Fraktion");
    format(string,sizeof(string),"Du wurdest zur %s Fraktion eingeladen!",GetFracNameByID(LeaderFrak));
    ShowPlayerDialog(pID,DIALOG_FRAKJOIN,DIALOG_STYLE_MSGBOX,"Fraktionseinladung",string,"Beitreten","Ablehnen");
    return 1;
    }

    Guten Abend Forum.


    Ich melde mich mal wieder mit nem Problem welches sich auf meinen letzten Thread bezieht.


    Quelltext :

    if(dialogid==DIALOG_FRAKJOIN)
    {
    if(response==0)
    {
    SCM(playerid,Rot,"Du hast die Einladung abgelehnt!");
    return 1;
    }
    if(response==1)
    {
    //SetPVarInt(playerid,"Fraktion",fID);
    //#error
    SCM(playerid,Gelb,"Wilkommen in der Fraktion!");
    return 1;
    }
    }




    Die fID ist natürlich nicht definiert. Aber wie krieg ich es hin das die Fraktions ID eingesetzt wird?

    if(!IsPlayerLeader(playerid,fID)) return ERROR_LEADER


    So das LeaderAbfrage Ding ist geklärt.
    Nur das nächste Problem ist das er die Leader Rechte nicht richtig bzw. garnicht lädt.


    Spieler Speichern :

    stock SpielerSpeichern(playerid)
    {
    if(GetPVarInt(playerid,"eingeloggt")==1)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/BenutzerAccounts/%s.txt",name);
    //Was gespeichert werden soll//
    dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
    dini_IntSet(Spielerdatei,"Guthaben",GetPlayerMoney(playerid)); //Geld auf der Hand
    dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
    dini_IntSet(Spielerdatei,"Fraktion",GetPVarInt(playerid,"Fraktion")); //Fraktion
    dini_IntSet(Spielerdatei,"Leader",GetPVarInt(playerid,"Leader")); //Leader einer Fraktion
    dini_IntSet(Spielerdatei,"Kontostand",GetPVarInt(playerid,"Kontostand")); //Kontostand
    }
    return 1;
    }


    Spieler Laden :

    stock SpielerLaden(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/BenutzerAccounts/%s.txt",name);
    //Was geladen werden soll//
    SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
    GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Guthaben")); //Geld auf der Hand
    SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));
    SetPVarInt(playerid,"Fraktion",dini_Int(Spielerdatei,"Fraktion"));
    SetPVarInt(playerid,"Leader",dini_Int(Spielerdatei,"Leader"));
    SetPVarInt(playerid,"Kontostand",dini_Int(Spielerdatei,"Kontostand"));
    SetPVarInt(playerid,"eingeloggt",1);
    return 1;
    }


    ocmd:invitemember(playerid,params[])
    {
    new pID,fID;
    if(GetPVarInt(playerid,"Fraktion") == 0) return 1; //Wenn Zivilist soll nichts passieren.
    if(!IsPlayerLeader(playerid,fID)) return ERROR_LEADER
    if(sscanf(params,"u",pID)) return SCM(playerid,Rot,"Verwendung : /invitemember [ID]");
    new string[128];
    new LeaderFrak = GetPVarInt(playerid,"Fraktion");
    format(string,sizeof(string),"Du wurdest zur %s Fraktion eingeladen!",GetFracNameByID(LeaderFrak));
    ShowPlayerDialog(pID,DIALOG_FRAKJOIN,DIALOG_STYLE_MSGBOX,"Fraktionseinladung",string,"Beitreten","Ablehnen");
    return 1;
    }


    Jetzt ist das Problem das er mir anzeigt ich sei kein Leader.


    Abfrage :


    stock IsPlayerLeader(playerid,frakid)
    {
    if(GetPVarInt(playerid,"Leader") ==frakid) return 1;
    return 0;
    }

    Hey Guys!
    Ich hab momentan nen Problem mit meinen OCMD Befehlen. Siehe hier :


    InviteMember :


    Spoiler anzeigen

    Bei InviteMember ist das Problem das A.) Ich nicht weiß wie man in Dialoge Strings einbaut und B.) "Server Unknown Command" angezeigt wird.
    OCMD Befehl :

    ocmd:invitemember(playerid,params[])
    {
    if(!IsPlayerLeader(playerid,fID)) return ERROR_LEADER
    new pID,fID;
    if(sscanf(params,"u",pID)) return SCM(playerid,Rot,"Verwendung : /invitemember [ID]");
    ShowPlayerDialog(pID,DIALOG_FRAKJOIN,DIALOG_STYLE_MSGBOX,"Fraktionseinladung","Du wurdest zur %s Fraktion eingeladen! ","Beitreten","Ablehnen");

    return 1;
    }


    public OnPlayerRequestClass(playerid, classid)
    {
    SetSpawnInfo(playerid,0,217,1172.7908,-1323.2111,15.4006,271.0633,0,0,0,0,0,0);
    SpawnPlayer(playerid);
    return 1;
    }


    Das wäre ein Spawn am KH und so funktionierts auch!

    Guten Tag Forum,


    Ich scripte momentan an einer Rennstrecke. Nun möchte ich das wenn ein Admin "/stoprennen" eingibt alle RaceCars despawnt werden. Aktuell ist mein Befehl SEHR lang und ich bin mir sicher das es kürzer geht.


    Mein Befehl :

    Spoiler anzeigen


    if(strcmp(cmdtext,"/stoprennen",true)==0)
    {
    if(!IsPlayerAdmin(playerid)) return SCM(playerid,Rot,"Das kannst Du nur als RCON-Admin");
    if(Rennen == 0) return SCM(playerid,Rot,"Rennstrecke ist nicht aufgebaut!");
    DestroyVehicle(RaceCar[1]);
    DestroyVehicle(RaceCar[2]);
    DestroyVehicle(RaceCar[3]);
    DestroyVehicle(RaceCar[4]);
    DestroyVehicle(RaceCar[5]);
    DestroyVehicle(RaceCar[6]);
    DestroyVehicle(RaceCar[7]);
    DestroyVehicle(RaceCar[8]);
    DestroyVehicle(RaceCar[9]);
    DestroyVehicle(RaceCar[10]);
    DestroyVehicle(RaceCar[11]);
    DestroyVehicle(RaceCar[12]);
    DestroyVehicle(RaceCar[13]);
    DestroyVehicle(RaceCar[14]);
    DestroyVehicle(RaceCar[15]);
    DestroyVehicle(RaceCar[16]);
    DestroyVehicle(RaceCar[17]);
    DestroyVehicle(RaceCar[18]);
    DestroyVehicle(RaceCar[19]);
    Rennen = 0;
    SCALL(Rot,"Rennstrecke wurde abgebaut!");
    return 1;
    }


    Wie gehts kürzer?


    public OnGameModeExit()
    {
    AlleSpielerSpeichern();
    return 1;
    }



    Dann brauchste nurnoch den AlleSpielerSpeichern Stock.