Zufall hilfe

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
  • Hi ich möchte den beruf Dieb machen und checken wieviel geld das ziel dabei hat und von dem geld dann ein zufall haben ... also zufällig wieviel davon geklaut wird und ob überhaupt geklaut wir ...


    ich bin jetzt soweit das alles geht nur ... wenn es funktioniert dann klaut er alles ... also z.b das ziel hat 2000 dabei dann bekommt der dieb auch die vollen 2000 wenn er erfolgreich klaut ... ich will das es zufällig passiert das wenn es funzt das ein zufall von 2000 geklaut wird ...



    MFG


    /EDIT
    und ich habe noch eine frage ... wenn ich in game den befehl eingebe kommt immer vom server noch die nachricht mit "SERVER:Unknow Kommand"
    wie bekomme ich die weg ..?


    MFG DANKE ;)

    Einmal editiert, zuletzt von [GaS]Cloudy () aus folgendem Grund: Noch eine frage

  • Du musst mit GetPlayerMoney(playerid) arbeiten .. und dies in einer variable speichern damm machst du halt


    new klaugeld = GetPlayerMoney(playerid);
    GivePlayerMoney(playerid,random(klaugeld));


    Wenn das richtig war :D

  • ich poste mal wie ich es jetzt habe


    new string[128];
    new beruf[30];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(string,sizeof(string),"/Spieler/%s.ini",name);
    format(beruf,sizeof(beruf),dini_Get(string,"Beruf"),name);
    if(strcmp(strget(cmdtext,0), "/stehlen", true) == 0)
    {
    if(strcmp(beruf, "Dieb", true) == 0)
    {
    new string2[128];
    new ziel = strval(strget(cmdtext,1));
    new Float:x, Float:y, Float:z;
    new geld = GetPlayerMoney(ziel);
    GetPlayerPos(ziel,x, y, z);
    if(IsPlayerInRangeOfPoint(playerid, 2, x, y, z))
    {
    new zufall = random(2);
    if(zufall == 1)
    {
    format(string2,sizeof(string2),"Du hast ERFOLGREICH %i geklaut!",geld);
    SendClientMessage(playerid,Rot,string2);
    GivePlayerMoney(playerid, geld);
    GivePlayerMoney(ziel, -geld);
    }
    else if(zufall == 2)
    {
    SendClientMessage(playerid,Rot,"Es hat nicht geklappt!");
    }}
    else
    {
    SendClientMessage(playerid,Rot,"Du bist nicht bei diesem Spieler!");
    }}
    else
    {
    SendClientMessage(playerid,Rot,"Du bist kein dieb!");
    }}

  • new string[128];
    new beruf[30];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(string,sizeof(string),"/Spieler/%s.ini",name);
    format(beruf,sizeof(beruf),dini_Get(string,"Beruf"),name);
    if(strcmp(strget(cmdtext,0), "/stehlen", true) == 0)
    {
    if(strcmp(beruf, "Dieb", true) == 0)
    {
    new string2[128];
    new ziel = strval(strget(cmdtext,1));
    new Float:x, Float:y, Float:z;
    new geld = GetPlayerMoney(ziel);
    new geld2 = random(geld);
    GetPlayerPos(ziel,x, y, z);
    if(IsPlayerInRangeOfPoint(playerid, 2, x, y, z))
    {
    new zufall = random(2);
    if(zufall == 1)
    {
    format(string2,sizeof(string2),"Du hast ERFOLGREICH %i geklaut!",geld);
    SendClientMessage(playerid,Rot,string2);
    GivePlayerMoney(playerid, geld2);
    GivePlayerMoney(ziel, -geld2);
    }
    else if(zufall == 2)
    {
    SendClientMessage(playerid,Rot,"Es hat nicht geklappt!");
    }}
    else
    {
    SendClientMessage(playerid,Rot,"Du bist nicht bei diesem Spieler!");
    }}
    else
    {
    SendClientMessage(playerid,Rot,"Du bist kein dieb!");
    }}


    So sollte es klappen??

  • wunder bar ... !!!! danke alles geht :) ...
    aber habe folgendes problem ...
    wenn ich nun /stehlen id eingebe
    dann wenn es nicht klappt kommt kein text sondern vom Server : Unknow kommand
    und wenn es klappt kommt die nachricht also meine + die vom server
    und wenn ich nur /stehlen ohne id eingebe kommt anstadt (du bist kein dieb) du bist zu weit weg und wieder die server nachricht danach ,.... wie bekomme ich die weg !

  • ne das muss so ... glaube ich ... soweit ich weiß weil ich ja nur damit das Ziel rausbekomme ... also welche eingabe das ziel ist


    /edit ..
    mit deinem vorschlag versucht ... 1
    die Server nachricht kommt immernoch immer
    und das zufalls prinzip geht nimmer weil er eben halt kein ziel hat !
    MFG und danke schoneinmal :)

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Habe dein Code mal bisschen umgeändert und Unknown Command sollte auch nicht mehr kommen, hier:


    new string[128];
    new beruf[30];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    format(string, sizeof(string), "/Spieler/%s.ini", name);
    format(beruf, sizeof(beruf), dini_Get(string, "Beruf"), name);
    if(strcmp(strget(cmdtext,0), "/stehlen", true) == 0)
    {
    if(strcmp(beruf, "Dieb", true) == 0)
    {
    new string2[128];
    new ziel = strval(strget(cmdtext,1));
    new Float:x, Float:y, Float:z;
    new geld = GetPlayerMoney(ziel);
    new geld2 = random(geld);
    GetPlayerPos(ziel, x, y, z);
    if(IsPlayerInRangeOfPoint(playerid, 2, x, y, z))
    {
    new zufall = random(2);
    if(zufall == 1)
    {
    format(string2, sizeof(string2), "Du hast ERFOLGREICH %i geklaut!", geld2);
    SendClientMessage(playerid, Rot, string2);
    GivePlayerMoney(playerid, geld2);
    GivePlayerMoney(ziel, -geld2);
    return 1;
    }
    else if(zufall == 2)
    {
    SendClientMessage(playerid, Rot, "Es hat nicht geklappt, versuche es schnell nocheinmal!");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, Rot, "Dieser Spieler ist nicht in deiner nähe!");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, Rot, "Du bist kein Dieb!");
    return 1;
    }
    return 1;
    }


    mfG, Nighthawk.


    //edit: Code verbessert.
    //edit 2: Rechtschreibung verbessert.

  • xD ok habe überall ein return 1;
    eingefügt
    so:



    new string[128];
    new beruf[30];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(string,sizeof(string),"/Spieler/%s.ini",name);
    format(beruf,sizeof(beruf),dini_Get(string,"Beruf"),name);
    if(strcmp(strget(cmdtext,0), "/stehlen", true) == 0)
    {
    if(strcmp(beruf, "Dieb", true) == 0)
    {
    new string2[128];
    new ziel = strval(strget(cmdtext,1));
    new Float:x, Float:y, Float:z;
    new geld = GetPlayerMoney(ziel);
    new geld2 = random(geld);
    GetPlayerPos(ziel,x, y, z);
    if(IsPlayerInRangeOfPoint(playerid, 2, x, y, z))
    {
    new zufall = random(2);
    if(zufall == 1)
    {
    format(string2,sizeof(string2),"Du hast ERFOLGREICH %i geklaut!",geld2);
    SendClientMessage(playerid,Rot,string2);
    GivePlayerMoney(playerid, geld2);
    GivePlayerMoney(ziel, -geld2);
    return 1;
    }
    else if(zufall == 2)
    {
    SendClientMessage(playerid,Rot,"Es hat nicht geklappt!");
    return 1;
    }}
    else
    {
    SendClientMessage(playerid,Rot,"Du bist nicht bei diesem Spieler!");
    return 1;
    }}
    else
    {
    SendClientMessage(playerid,Rot,"Du bist kein dieb!");
    return 1;
    }}



    geht jetzt alles danke !!!


    nur wenn der zufall ... sozusagen nicht erfolgreich ist ... dann kommt nicht "Es hat nicht geklappt" sondern die nachricht vom server ... aber immerhin ned mehr bei dem anderen ... xD