Nagelband

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,
    ich wollte gerade ein kleines Nagelband System schreiben, bin auch fast fertig, jedoch habe ich im Moment das Problem,
    dass man zwar ein Nagelband legen kann, aber wenn man drüber fährt passiert nichts..


    Das NagelbandSys:



    #define DIALOG_SPERRE 5000


    enum NagelbandOption {
    Float:NagelbandX, Float:NagelbandY, Float:NagelbandZ, NagelbandErstellt
    };


    new Float:x,Float:y,Float:z;
    new Float:a;
    new Nagelbaender[9999][NagelbandOption];
    new nagelband;


    forward NagelbandTimer(playerid);


    public NagelbandTimer(playerid)
    {
    for(new i = 0;i<9999;i++)
    {
    if(IsPlayerInRangeOfPoint(playerid,1,Nagelbaender[i][NagelbandX],Nagelbaender[i][NagelbandY],Nagelbaender[i][NagelbandZ]))
    {
    UpdateVehicleDamageStatus(GetPlayerVehicleID(playerid),0,0,0,15);
    }
    }
    }


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    new idx;
    new cmd[256];

    cmd = strtok(cmdtext, idx);


    if(strcmp(cmd ,"/sperre", true) == 0)
    {
    ShowPlayerDialog(playerid,DIALOG_SPERRE,DIALOG_STYLE_LIST,"Sperren Option","Nagelband\nKleine Sperre\nGroße Sperre","Okay","Abbrechen");
    return 1;
    }
    return 0;
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == DIALOG_SPERRE)
    {
    if(response)
    {
    if(listitem == 0)
    {
    nagelband = nagelband+1;
    GetPlayerPos(playerid,x,y,z);
    GetPlayerFacingAngle(playerid,a);
    Nagelbaender[nagelband][NagelbandX] = x;
    Nagelbaender[nagelband][NagelbandY] = y;
    Nagelbaender[nagelband][NagelbandZ] = z - 0.5;
    CreateObject(2899, x, y, z - 0.5, 0.0, 0.0, a - 90.0);
    }
    }
    }
    return 1;
    }


    public OnGameModeInit()
    {
    SetTimer("NagelbandTimer",50,1);


    return 1;
    }


    Ich würde mich freuen, wenn mir jemand sagen kann, was ich falsch gemacht habe, danke ;)


    mfg.
    Cape

  • Erstmal zum Thema Ressourcen, mach am besten folgendes:
    #define MAX_NAGELBAENDER 30
    Und alle Zahlen: 9999 ersetzt du mit MAX_NAGELBAENDER
    Wer hat schon 9999 Nagelbaender auf dem Server, geschweige denn 1000 o. 50!
    Die Range bei IsPlayerInRangeOfPoint erhöhen, sonst müsste der Spieler exact in der mitte des Nagelbandes sein.


    Cal44: Ist so eine Tonlage (Schriftlich) wirklich passend? Er kann nicht alles wissen, er ist ein Mensch!


    @S!lv3rR4!n: Doch, man kann sogar bestimmen welche Räder man genau zerstören möchte: » Klick mich «


    Advertising has us chasing cars and clothes, working jobs we hate so we can buy shit we don’t need.
    – Tyler Durden


    Sobald Werbung im Spiel ist, bist du, die Nutzerin, der Nutzer, das Produkt.


  • Es funktioniert, super. Vielen Dank ;)
    Hätte ich aber auch selbst drauf kommen können :S.. war wohl zu müde ;D


    //edit:
    Kann mir jemand scripten, dass ich mit /nagelbandabbauen das Nagelband, welches am nächsten ist abbaue?
    Also das Objekt soll verschwinden & man soll keine Platten mehr bekommen, wenn man da lang fährt, bekomme es einfach nicht hin...
    //edit2: Brauche immernoch Hilfe ; )

    3 Mal editiert, zuletzt von Rayx3 ()