Ausruesten Befehl

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

  • CMD:ausruesten(playerid)
    {
    new string[256], header[96];
    new gHouse = IsPlayerInGangHouse(playerid);
    if(gHouse == 0)return SendClientMessage(playerid, COLOR_GREY, "Du befindest dich in keinem Gang-House (Eingang).");
    if(gHouse > 0)
    {
    if(Frak[gHouse][frakType] == 2)
    {
    if(Spieler[playerid][pFraktion] == Frak[gHouse][frakIDx])
    {
    format(header, 96, "Waffenmenü "COLOR_HEX_BLUE"[%d Materialien]", Frak[gHouse][frakEisen]);
    format(string, sizeof(string), "Desert Eagle (50 Materialien, $%d)\nAK-47 (75 Materialien, $%d)\nSchrotflinte (80 Materialien, $%d)\nMP5 (75 Materialien, $%d)", (Frak[gHouse][frakEisenPreis]*50), (Frak[gHouse][frakEisenPreis]*75), (Frak[gHouse][frakEisenPreis]*80), (Frak[gHouse][frakEisenPreis]*75));
    ShowPlayerDialog(playerid, DIALOG_AUSRUESTEN, DIALOG_STYLE_LIST, header, string, "Bauen", "Abbrechen");
    }
    }
    else if(Frak[gHouse][frakType] == 3)
    {
    if(Spieler[playerid][pFraktion] == Frak[gHouse][frakIDx])
    {
    format(header, 96, "Waffenmenü "COLOR_HEX_BLUE"[%d Materialien]", Frak[gHouse][frakEisen]);
    format(string, sizeof(string), "Desert Eagle (50 Materialien, $%d)\nM4 (90 Materialien, $%d)\nScharfschützengewehr (150 Materialien, $%d)\nSchrotflinte (80 Materialien, $%d)\nMP5 (75 Materialien, $%d)\nMesser (5 Materialien, $%d)", (Frak[gHouse][frakEisenPreis]*50), (Frak[gHouse][frakEisenPreis]*90), (Frak[gHouse][frakEisenPreis]*150), (Frak[gHouse][frakEisenPreis]*80), (Frak[gHouse][frakEisenPreis]*75), (Frak[gHouse][frakEisenPreis]*5));
    ShowPlayerDialog(playerid, DIALOG_AUSRUESTEN, DIALOG_STYLE_LIST, header, string, "Bauen", "Abbrechen");
    }
    }
    else if(Frak[gHouse][frakType] == 10)
    {
    if(Spieler[playerid][pFraktion] == Frak[gHouse][frakIDx])
    {
    format(header, 96, "Waffenmenü "COLOR_HEX_BLUE"[%d Materialien]", Frak[gHouse][frakEisen]);
    format(string, sizeof(string), "Desert Eagle (50 Materialien, $%d)\nM4 (90 Materialien, $%d)\nScharfschützengewehr (150 Materialien, $%d)\nSchrotflinte (80 Materialien, $%d)\nMP5 (75 Materialien, $%d)\nMesser (5 Materialien, $%d)", (Frak[gHouse][frakEisenPreis]*50), (Frak[gHouse][frakEisenPreis]*90), (Frak[gHouse][frakEisenPreis]*150), (Frak[gHouse][frakEisenPreis]*80), (Frak[gHouse][frakEisenPreis]*75), (Frak[gHouse][frakEisenPreis]*5));
    ShowPlayerDialog(playerid, DIALOG_AUSRUESTEN, DIALOG_STYLE_LIST, header, string, "Bauen", "Abbrechen");
    }
    }
    else if(IsPlayerInRangeOfPoint(playerid, 2.0, 255.0872,78.0861,1003.6406)) // LSPD Equip //Hier das wollte ich machen
    {
    if(Spieler[playerid][pFraktion] == 1)
    {
    SetPlayerHealth(playerid, 100);
    SetPlayerArmour(playerid, 100);
    strdel(DialogString, 0, sizeof(DialogString));
    format(DialogString, sizeof(DialogString), "Desert Eagle (30 Schuss)\nM4 (60 Schuss)\t (Ab Rang %d)\nAK-47 (60 Schuss)\t (Ab Rang %d)\nShotgun (30 Schuss)\t (Ab Rang %d)\nMP5 (60 Schuss)\t (Ab Rang %d)\nSniper (20 Schuss)\t (Ab Rang %d)", Others[LSPDM4Rang], Others[LSPDAKRang], Others[LSPDShotRang], Others[LSPDMP5Rang], Others[LSPDRifleRang]);
    ShowPlayerDialog(playerid, DIALOG_LSPDEQUIP, DIALOG_STYLE_LIST, "Ausrüsten", DialogString, "Ausrüsten", "Abbrechen");
    }
    }
    }
    return 1;
    }


    Hey,


    ich wollte ausruesten auch für LSPD machen aber leider funktioniert das nicht warum :/?
    er zeigt mir an Du befindest dich in keinem Gang-House (Eingang).
    obwohl ich genau beim ausruesten point bin

  • Naja gut, du sagst du willst es für das LSPD machen, beinhaltet IsPlayerInGangHouse denn das PD? Also ist frakType 2 bzw. 3 das LSPD? Um den Fehler zu finde, würde ich einfach mal die einzelnen Abfragen, also Range, Interior und Virtualworld als Debug-Message ausgeben.

  • fraktype 1 ist Staatliche fraktion


  • else if(IsPlayerInRangeOfPoint(playerid, 2.0, 255.0872,78.0861,1003.6406)) // LSPD Equip
    {
    if(Spieler[playerid][pFraktion] == Frak[gHouse][frakIDx])
    {
    SetPlayerHealth(playerid, 100);
    SetPlayerArmour(playerid, 100);
    strdel(DialogString, 0, sizeof(DialogString));
    format(DialogString, sizeof(DialogString), "Schlagstock\nDesert Eagle\t (Ab Rang %d)\nShotgun\t (Ab Rang %d)\nMP5\t (Ab Rang %d)\nSniper\t (Ab Rang %d)\nSpray\t (Ab Rang %d)", Others[LSPDM4Rang], Others[LSPDAKRang], Others[LSPDShotRang], Others[LSPDMP5Rang], Others[LSPDRifleRang]);
    ShowPlayerDialog(playerid, DIALOG_LSPDEQUIP, DIALOG_STYLE_LIST, "Ausrüsten", DialogString, "Ausrüsten", "Abbrechen");
    }



    da ist der punkt?!

  • Naja gut, musste wissen, wofür du Frak[i][spawnX] noch nutzt, sonst könntest du den halt verändern. Oder einfach noch eine weitere IsPlayerInRange Abfrage einbauen. Oder einfach eine andere Funktion schreiben :D

    Einmal editiert, zuletzt von Madd92 ()

  • So habe das jetzt so gemacht^^ ja aber es funktioniert trd nicht..........

  • Äh sorry ich seh jetzt nicht, was da anders sein soll ^^
    Vielleicht solltest du nochmal deine Gedanken ordnen und dir überlegen, wie du es machen willst. Und dann entweder eine zweite Funktion/Abfrage für das LSPD schreiben, oder dein Array erweitern.

  • was bringt mir das das hilft mir nicht weiter?!




    etwas lesen...


    If(Spieler[playerid][pFraktion] == 1)


    das habe ich eingebaut so aber man kann immer noch am spawnpunkt den befehl ausführen aber der dialog erscheint nicht

  • Ja das steht ja auch schon in dem If-Statement von IsPlayerInGangHouse, welche ja immer 0 zurückgibt. Wie gesagt, du müsstest es dann umstrukturieren oder eben bei IsPlayerInGangHouse das LSPD miteinbauen, nur eben nicht den Spawnpunkt.

  • if(IsPlayerInRangeOfPoint(playerid, 5.0, Frak[i][spawnX], Frak[i][spawnY], Frak[i][spawnZ]) && GetPlayerInterior(playerid) == Frak[i][spawnInterior] && GetPlayerVirtualWorld(playerid) == Frak[i][spawnVirtualWorld] && IsPlayerInRangeOfPoint(playerid, 2.0, 255.0872,78.0861,1003.6406))



    könnte man das so machen?

  • Du bräuchtest ein Oder. Also: Wenn der Spieler entweder in der Nähe des Spawnpunkts oder des Ausrüstungspunkts ist. Allerdings könnte man im LSPD den Befehl dann auch am Spawn benutzen.

    Code
    if ((IsPlayerInRangeOfPoint(playerid, 5.0, Frak[i][spawnX], Frak[i][spawnY], Frak[i][spawnZ]) || IsPlayerInRangeOfPoint(playerid, 2.0, 255.0872,78.0861,1003.6406)) && GetPlayerInterior(playerid) == Frak[i][spawnInterior] && GetPlayerVirtualWorld(playerid) == Frak[i][spawnVirtualWorld])
  • Du bräuchtest ein Oder. Also: Wenn der Spieler entweder in der Nähe des Spawnpunkts oder des Ausrüstungspunkts ist. Allerdings könnte man im LSPD den Befehl dann auch am Spawn benutzen.

    Code
    if ((IsPlayerInRangeOfPoint(playerid, 5.0, Frak[i][spawnX], Frak[i][spawnY], Frak[i][spawnZ]) || IsPlayerInRangeOfPoint(playerid, 2.0, 255.0872,78.0861,1003.6406)) && GetPlayerInterior(playerid) == Frak[i][spawnInterior] && GetPlayerVirtualWorld(playerid) == Frak[i][spawnVirtualWorld])

    so hab das so eingebaut jetzt geht garnix mehr :D.


    die frage ist wie ich das einfüge wen der Spieler vom LSPD da ist bei xyz angenommen das der befehl ausgeführt ist.
    so aber das funktioniert ja nicht