Befeh 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
  • Hallo Breadfish


    Kann mir jemand einen befehlmachen und zwar:


    man macht /eis
    aber: man muss in der nähe eines einsverkäfers sein das ist
    pjob 17
    und wenn man
    sich ein eis gekauft hat bekommt man 10% mehr leben kan mir jemand sowas machen?


  • if(strcmp(cmd,"/eis",true) == 0)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(PlayerInfo[i][pJob] == 17)
    {
    new Float:eX, Float:eY, Float:eZ;
    GetPlayerPos(i,eX,eY,eZ);
    if(PlayerToPoint(3.0,playerid,eX,eY,eZ))
    {
    new Float:pleben = GetPlayerHealth(playerid);
    SetPlayerHealth(playerid,pleben+10);
    }
    else
    {
    SendClientMessage(playerid,COLOR_GRAD1,"Du bist an keinem Eisverkäufer!");
    }
    }
    }
    return 1;
    }

    Einmal editiert, zuletzt von Silverdark ()

  • Silverdark
    if(strcmp(cmd,"/eis",true) == 0)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(PlayerInfo[i][pJob] == 17)
    {
    new Float:eX, Float:eY, Float:eZ;
    GetPlayerPos(i,eX,eY,eZ);
    if(PlayerToPoint(3.0,playerid,eX,eY,eZ))
    {
    new Float:pleben = GetPlayerHealth(playerid);
    SetPlayerHealth(playerid,pleben+10);
    }
    else
    {
    SendClientMessage(playerid,COLOR_GRAD1,"Du bist an keinem Eisverkäufer!");
    }
    }
    }
    return 1;
    }


    wieso die ganzen floats?
    mann kann doch bei SetPlayerHealth so machen
    SetPlayerHealth(playerid, +10);
    und nen ganz normalen command mit PlayerToPoint?

  • @Polarized: Die ganzen Floats sind nötig, das "SetPlayerHealth(playerid,+10);" funktioniert nämlich nicht
    @topic:
    [...]
    if(PlayerToPoint(3.0,playerid,eX,eY,eZ))
    {
    new Float:pleben = GetPlayerHealth(playerid);
    SetPlayerHealth(playerid,pleben+10);
    GivePlayerMoney(i,3);
    }
    [...]
    @PS^^: Warum die for-schleife für 200 Leute machen, wenn (als Beispiel) nur 4 connected sind...
    for(new i=0; i<MAX_PLAYERS; i++) {
    if(IsPlayerConnected(i)) {//nicht die Gegenklammer zum Schluss vergessen!
    ...

  • Keks, geht auch so:


    if(!strcmp(cmdtext,"/eis"))
    {
    new i = 0, Float:hp, Float:xx, Float:yy, Float:zz;
    for(; i < MAX_PLAYERS; i++)
    {
    if(GetPlayerHealth(i, hp) && GetPlayerPos(i, xx, yy, zz))
    {
    if(PlayerInfo[i][pJob] == 17)
    {
    if(PlayerToPoint(4.0, playerid, xx, yy, zz))
    {
    SetPlayerHealth(i, hp+10);
    }
    }
    }
    }
    return 1;
    }
    //Keks: :P je nach dem, ob man das alles nochmal schreiben möchte, oder nur eine Zeile verändern... Hast aber Recht^^
    //Bright: D: was wuselst du in meinem Beitrag rum ^^
    //Keks: Warn Versehen *hust* xD