Beiträge von Quetai

    Ich hab's jetzt so gemacht:
    CMD:myfriends(playerid, params[])
    {
    new count = 0;
    new Str[512];
    new iStr[1024] = "Friends Online:\n";
    foreach(Player, i)
    {
    new USER_FILE[64];
    format(USER_FILE, sizeof(USER_FILE), "SFSUsers/%s.ini", GetPlayerNameEx(playerid));
    if(DOF2_GetInt(USER_FILE, GetPlayerNameEx(i)) == 1)
    {
    strins(iStr, GetPlayerNameIns(i), strlen(iStr));
    count++;
    }


    }
    if(count == 0)
    {
    format(Str,512,"Name: %s Status: {FF0000}Offline\n",GetPlayerNameEx(playerid));
    }
    else
    {
    format(Str,512,"Name: %s Status: {00FF28}Online\n",GetPlayerNameEx(playerid));
    }
    ShowPlayerDialog(playerid,FRIENDS,DIALOG_STYLE_LIST,"Freunde",Str,"Ok","");
    return 1;
    }
    Wenn ich dann Ingame /myfriends mache, steht da jedes mal: "Meinname" : Offline....
    Der Name des Freundes wird da nicht anzeigt.

    CMD:myfriends(playerid, params[])
    {
    new count = 0;
    new iStr[1024] = "Friends Online:~n~";
    foreach(Player, i)
    {
    new USER_FILE[64];
    format(USER_FILE, sizeof(USER_FILE), "SFSUsers/%s.ini", GetPlayerNameEx(playerid));
    if(DOF2_GetInt(USER_FILE, GetPlayerNameEx(i)) == 1)
    {
    strins(iStr, GetPlayerNameIns(i), strlen(iStr));
    count++;
    }


    }
    if(count == 0)
    {
    new Str[512];
    format(Str,512,"Keiner deiner Freunde ist online.");
    ShowPlayerDialog(playerid,FRIENDS,DIALOG_STYLE_MSGBOX,"Freunde",Str,"Ok","");
    }
    else
    {
    new Str[512];
    new giveplayerid;
    format(Str,512,"Name: %s Status: {00FF28}Online\n",GetPlayerNameEx(giveplayerid));
    ShowPlayerDialog(playerid,FRIENDS,DIALOG_STYLE_LIST,"Freunde",Str,"Ok","");
    }
    return 1;
    }


    Meine Frage:
    Wie schaff ich das, dass all' meine Freunde in einem Dialog gezeigt werden. Aber dann soll da halt stehen, ob dieser offline oder online ist...


    if(strcmp(cmdtext, "/hmaske", true) == 0)
    {
    if(PlayerInfo[playerid][pTot] == 1)
    {
    SendClientMessage(playerid, COLOR_GREY, "Tote können keine Befehle nutzen!");
    return 1;
    }
    if(IsPlayerInFrac(playerid, 8) && PlayerInfo[playerid][pRank] >= 3)
    {
    if(Mask[playerid] == 1)
    {
    for(new i = 0; i < MAX_PLAYERS; i++) ShowPlayerNameTagForPlayer(i, playerid, 1);
    Mask[playerid] = 0;
    SendClientMessage(playerid, COLOR_YELLOW, "* Du hast deine Maske abgenommen. Mit /hmaske kannst du sie wieder aufsetzen.");
    }
    else if(Mask[playerid] == 0)
    {
    for(new i = 0; i < MAX_PLAYERS; i++) ShowPlayerNameTagForPlayer(i, playerid, 0);
    Mask[playerid] = 1;
    SendClientMessage(playerid, COLOR_YELLOW, "* Du hast deine Maske aufgesetzt. Mit /hmaske kannst du sie wieder absetzen.");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du kannst erst ab Rang 3 eine Maske aufsetzen!");
    }
    return 1;
    }


    Das ist der Befehl, das kannst du für dich halt dann umändern.


    Unter OnplayerConnect und OnplayerDisconnect packst du dann noch das hier rein:
    Mask[playerid] = 0;


    Und das wichtige, damit man den Namen auch weiterhin nachdem man das Gebäude betritt und verlässt nicht mehr sieht...

    public OnPlayerStreamIn(playerid, forplayerid)
    {
    if(Mask[playerid] == 1)
    {
    ShowPlayerNameTagForPlayer(forplayerid, playerid, 0);
    }
    return 1;
    }

    Sehr schön. Das ging bei mir auch. Aber hab's grad wieder versucht. Nachdem ich /report gemacht habe, öffnet sich der erste Dialog. Aber nachdem ich auf etwas klicke passiert nichts. Es öffnet sich kein weiterer Dialog.


    Eine Idee wieso?

    if(strcmp(cmd, "/arrestinalka", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pTot] == 1)
    {
    SendClientMessage(playerid, COLOR_GREY, "Tote können keine Befehle benutzen!");
    return 1;
    }
    if(gTeam[playerid] == 2)
    {
    if(OnDuty[playerid] != 1 && PlayerInfo[playerid][pMember] == 1)
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist nicht im Dienst!");
    return 1;
    }
    if(!IsPlayerInRangeOfPoint(playerid,10.0, 1579.5474,-1635.4021,13.5611))
    {// Jail spot
    SendClientMessage(playerid, COLOR_GREY, "Du bist nicht in der Nähe des Schwerverbrecher-Transportpunktes!");
    return 1;
    }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GREY, "Benutzung: /arrestinalka [Playerid/Name]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    new time = WantedLevel[playerid];
    new bail = strval(tmp);
    new suspect = GetClosestPlayer(playerid);
    if(IsACop(suspect))
    {
    SendClientMessage(playerid, COLOR_GREY, "Du kannst keinen Beamten einsperren!");
    return 1;
    }
    if(IsPlayerConnected(suspect))
    {
    if(GetDistanceBetweenPlayers(playerid,suspect) < 10)
    {
    GetPlayerName(suspect, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    if(WantedLevel[suspect] < 5)
    {
    SendClientMessage(playerid, COLOR_GREY, "Der Spieler hat nicht 60 oder mehr Wantedpunkte!");
    return 1;
    }
    GivePlayerMoney(playerid, moneys);
    format(string, sizeof(string), "* Du hast %s für $%d eingesperrt!", giveplayer, moneys);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    GivePlayerMoney(suspect, -moneys);
    format(string, sizeof(string), "Eingesperrt von %s ~n~ für $%d", sendername, moneys);
    GameTextForPlayer(suspect, string, 5000, 5);
    ResetPlayerWeapons(suspect);
    SetPlayerSpawn(suspect);
    if(PlayerInfo[playerid][pMember]==1||PlayerInfo[playerid][pLeader]==1||PlayerInfo[playerid][pMember]==2||PlayerInfo[playerid][pLeader]==2)
    {
    format(string, sizeof(string), "<< Officer %s hat den Verdächtigen %s eingesperrt >>", sendername, giveplayer);
    OOCNews(COLOR_LIGHTRED, string);
    }
    else if(PlayerInfo[playerid][pMember]==2||PlayerInfo[playerid][pLeader]==2)
    {
    format(string, sizeof(string), "<< Officer %s hat den Verdächtigen %s eingesperrt >>", sendername, giveplayer);
    OOCNews(COLOR_LIGHTRED, string);
    }
    else if(PlayerInfo[playerid][pMember]==3||PlayerInfo[playerid][pLeader]==3)
    {
    format(string, sizeof(string), "<< Soldat %s hat den Verdächtigen %s eingesperrt >>", sendername, giveplayer);
    OOCNews(COLOR_LIGHTRED, string);
    }
    else if(PlayerInfo[playerid][pMember]==21||PlayerInfo[playerid][pLeader]==21)
    {
    format(string, sizeof(string), "<< Fbi Agent %s hat den Verdächtigen %s eingesperrt >>", sendername, giveplayer);
    OOCNews(COLOR_LIGHTRED, string);
    }
    SetPlayerInterior(suspect, 0);
    SetPlayerVirtualWorld(suspect, 0);
    SetPlayerPos(suspect,2086.6379,3560.7078,3.0000);
    PlayerInfo[suspect][pJailTime] = time * 600;
    if(bail == 1)
    {
    JailPrice[suspect] = 0;
    format(string, sizeof(string), "Du bist für %d Sekunden eingesperrt. Kaution: nicht möglich", PlayerInfo[suspect][pJailTime]);
    SendClientMessage(suspect, COLOR_LIGHTBLUE, string);
    }
    PlayerInfo[suspect][pJailed] = 1;
    PlayerInfo[suspect][pArrested] += 1;
    SetPlayerFree(suspect,playerid, "Festgenommen!");
    WantedPoints[suspect] = 0;
    WantedLevel[suspect] = 0;
    WantLawyer[suspect] = 1;
    SetPlayerSpawn(suspect);
    }//distance
    }//not connected
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Es ist kein gesuchter in ihrer Nähe.");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Sie sind kein Staatsbeamter!");
    return 1;
    }
    }//not connected
    return 1;
    }


    Wenn der Spieler mehr als 6 Wanteds hat und dann eingesperrt wird sollte er eigentlich hier: SetPlayerPos(suspect,2086.6379,3560.7078,3.0000); hinkommen.
    Der kommt aber nicht dorthin.

    if(strcmp(cmd, "/ungrab", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(IsACop(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GREY, "Benutzung: /ungrab [Playerid/Name]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    if(IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    if (ProxDetectorS(8.0, playerid, giveplayerid))
    {
    if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, "Du kannst dich nicht selbst freilassen!"); return 1; }
    if(PlayerCuffed[giveplayerid])
    {
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "* Du wurdest von %s freigelassen.", sendername);
    SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), "* Du hast %s freigelassen.", giveplayer);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), "* %s hat %s freigelassen.", sendername ,giveplayer);
    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
    GameTextForPlayer(giveplayerid, "~g~Freiheit", 2500, 3);
    UnFreezePlayer(giveplayerid);
    PlayerCuffed[giveplayerid] = 0;
    //RemovePlayerFromVehicle(giveplayerid);
    new Float:X, Float:Y, Float:Z;
    GetPlayerPos(playerid,X,Y,Z);
    SetPlayerPos(playerid,X,Y+1,Z);
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Die Person hat keine Handschellen!");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Der Spieler ist nicht nah genug bei dir!");
    return 1;
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Der Spieler ist offline!");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist kein Polizist/Fbiler/Soldat/GSG!");
    }
    }
    return 1;
    }


    Wenn ich den Befehl ausführen möchte werde ich, halt der jenige der den Befehl benutzt hat aus dem Auto geschmissen...
    Woran liegt das?


    ocmd:licht(playerid,params[])
    {
    new status[4];
    if(sscanf(params,"s",status))return SendClientMessage(playerid,COLOR_GREY,"Benutzung: /licht [an/aus]");
    new engine,lights1,alarm,doors,bonnet,boot,objective;
    if(IsPlayerInAnyVehicle(playerid))
    {
    new vid = GetPlayerVehicleID(playerid);
    if(strcmp(status,"an",true) == 0)
    {
    GetVehicleParamsEx(vid,engine,lights1,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(vid,engine,VEHICLE_PARAMS_ON,alarm,doors,bonnet,boot,objective);
    licht[vid] = true;
    SendClientMessage(playerid,0xFFFF00FF,"Du hast das Licht angeschaltet.");
    }
    else
    if(strcmp(status,"aus",true) == 0)
    {
    GetVehicleParamsEx(vid,engine,lights1,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(vid,engine,VEHICLE_PARAMS_OFF,alarm,doors,bonnet,boot,objective);
    licht[vid] = false;
    SendClientMessage(playerid,0xFFFF00FF,"Du hast das Licht ausgeschaltet.");
    }
    }
    return 1;
    }


    Muss du nur an deinem System anpassen.


    if(strcmp(cmd, "/robperson", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GREY, "Benutzung: /robperson [Playerid/Name]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    if (IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    if(PlayerInfo[giveplayerid][pLocal] == 106)
    {
    SendClientMessage(playerid, COLOR_GREY, "Der Befehl ist in dieser Lage nicht erlaubt.");
    return 1;
    }
    if (ProxDetectorS(5.0, playerid, giveplayerid))
    {
    new robcash;
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    robcash = GetPlayerMoney(giveplayerid);
    ConsumingMoney[giveplayerid] = 1;
    GivePlayerMoney(playerid, (robcash/10));
    GivePlayerMoney(giveplayerid, -robcash/10);
    format(string, sizeof(string), "Du hast %s(%d) $%d gestohlen.", giveplayer,giveplayerid, robcash);
    PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
    SendClientMessage(playerid, COLOR_GREY, string);
    format(string, sizeof(string), "%s(%d) hat dir $%d gestohlen.", sendername, playerid, robcash);
    SendClientMessage(giveplayerid, COLOR_GREY, string);
    format(string, sizeof(string), "", sendername, moneys, giveplayer);
    PlayerPlaySound(giveplayerid, 1052, 0.0, 0.0, 0.0);
    format(string, sizeof(string), "* %s hat %s ausgeraubt.", sendername ,giveplayer);
    ProxDetector(15.0, playerid, string, COLOR_LIGHTRED,COLOR_LIGHTRED,COLOR_LIGHTRED,COLOR_LIGHTRED,COLOR_LIGHTRED);
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Der Spieler ist nicht nah genug bei dir!");
    }
    }
    }
    else
    {
    format(string, sizeof(string), "%d ist kein aktiver Spieler!", giveplayerid);
    SendClientMessage(playerid, COLOR_GREY, string);
    }
    }
    return 1;
    }


    Ich schaff das irgendwie nicht, dass 10% vom Bargeld des Opfers abgezogen werden und der Räuber die 10% dann kriegt...

    Wie schafft man das, dass wenn ein Spieler andere mit dem Rotor eines Flugzeuges Oder Helikopters killt, dass eine Nachricht an die Admins geschickt wird...?
    Wie schaff man das an sich, dass das als Rotorkill gezeigt wird?


    CMD:myfriends(playerid, params[])
    {
    new count = 0;
    new iStr[1024] = "Friends Online:~n~";
    foreach(Player, i)
    {
    new USER_FILE[64];
    format(USER_FILE, sizeof(USER_FILE), "SFSUsers/%s.ini", GetPlayerNameEx(playerid));
    if(DOF2_GetInt(USER_FILE, GetPlayerNameEx(i)) == 1)
    {
    strins(iStr, GetPlayerNameIns(i), strlen(iStr));
    count++;
    }


    }
    if(count == 0)
    {
    new Str[512];
    format(Str,512,"Keiner deiner Freunde ist online.");
    ShowPlayerDialog(playerid,FRIENDS,DIALOG_STYLE_MSGBOX,"Freunde",Str,"Ok","");
    }
    else
    {
    SetFriendBoxForPlayer(playerid, iStr);
    FriendTimer[playerid] = SetTimerEx("HideFriendBoxForPlayer", 6000, false, "i", playerid);
    new Str[512];
    format(Str,512,"Name: %s Status: {00FF28}Online\n",GetPlayerNameEx(playerid));
    ShowPlayerDialog(playerid,FRIENDS,DIALOG_STYLE_LIST,"Freunde",Str,"Ok","");
    }
    return 1;
    }


    Ich hab' das jetzt in Dialogen gemacht. Wie schaff ich das, dass alle Freunde in einem Dialog angezeigt werden. Und wie sortiere ich diese nach dem Status: Offline & Online...?


    Edit: Rechtschreibung


    if(strcmp(cmd, "/addfriend", true) == 0)
    {
    if(IsPlayerConnected (playerid))
    {
    tmp = strtok(cmdtext,idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GREY, "Benutzung: /addfriend [Playerid]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    if(IsPlayerConnected(giveplayerid))
    {
    AddFriend(playerid,tmp);
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Der Spieler ist offline!");
    }
    }
    return 1;
    }

    Es passiert nichts...