Beiträge von [DT]Nightstr3am

    Mach mal :

    e<p<|>{i}ddddddd

    Das {i} steht dafür das du die Autoincrement nicht mitlädst.
    Desweiteren kannst du bzw. musst du nicht die Variblen dahinter schreiben sondern kannst sie direkt mit SpielerInfo[playerid]); in den enum reinladen. Dabei muss du nur drauf achten das die Datenbank genau so strukturiert ist wie dein Spieler enum.



    MFG

    Guten Tag Community,



    Ich habe ein Problem bei C#.


    Folgendes Funktioniert nicht :


    Code
    string pfad = string.Format(@"C:\Users\Markus\AppData\Roaming\Verwaltung\nuzer\{0}.txt",textBox1);
                            File.WriteAllText(pfad, textBox2.Text); // Hier kommt dann der Error wenn ich Debug anschalte


    Es soll eine Textdatei erstellt mit dem Namen von textbox1 und mit dem Inhalt von textbox2


    Was ist da falsch ?
    MFG

    genauso wie du es gemacht hast, aber wie ich im vorletzen beitrag schon geschrieben habe solltest du die Globale Variablen dPosXYZ löschen und im Befehl es so machen, dann sollte es auch funktionieren :



    if(strcmp(cmdtext, "/dverstecken10" , true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    new location = PlayerInfo[playerid][pLocal];
    for(new i = 0; i < sizeof(HouseInfo); i++)
    {
    if(location < 255)
    {
    if(PlayerInfo[playerid][pDrugs] > 9)
    {
    new Float:x,Float:y,Float:z;
    PlayerInfo[playerid][pDrugs] -= 10;
    PlayerInfo[playerid][Versteck] += 10;
    SendClientMessage(playerid,0xFF0000FF,"10 Gramm versteckt");
    GetPlayerPos(playerid,x,yz);
    PlayerInfo[playerid][pDx] = x;
    PlayerInfo[playerid][pDy] = y;
    PlayerInfo[playerid][pDz] = z;
    }
    }
    }
    }
    }

    So wird das leider auch nicht klappen. Die Definierung ist nicht das Problem das Problem ist das IfIsPlayerInRangeOfPoint nicht klappt da immer Hier hast du nichts versteckt.


    Doch leider schon.


    Wo weißt du den den Koordinaten die Spieler Variable zu ?
    Und wie ich es sehe ist die Variable eine Globale Varibale das heißt jeder Spieler kann die verändern wenn diese erst beim Disconnect gespichert wird.
    Desweiteren Hoffe ich das du bei den Spieler Variablen Float: davor geschrieben hast im enum :



    Float:pDx,
    Float:pDy,
    Float:pDz,

    So ich hoffe du hast es noch nicht gelöst ?



    So du hast hier folgenden Code :



    ocmd:eventmanager(playerid, params[])
    {
    if(!isPlayerAnAdmin(playerid,1337) || isPlayerAnAdmin(playerid,2000))return SendClientMessage(playerid,GELB,"Nicht für dich!");
    {
    ShowPlayerDialog(playerid, DIALOG_EVENTMANAGER,DIALOG_STYLE_LIST, "EventManager","Event erstellen\nEvent löschen\nEvent Sperren","Ok","Abbrechen");
    }
    return 1;
    }


    Darin sehen wir das du Abfrägst wenn der Spieler KEIN 1337 Admin ist bekommt er die Nachricht, oder wenn er ABER 2000 IST bekommt er ebenfalls die Nachricht.


    Das heißt du musst einfach nur ein ! vor der oder Abfrage packen :



    ocmd:eventmanager(playerid, params[])
    {
    if(!isPlayerAnAdmin(playerid,1337) || !isPlayerAnAdmin(playerid,2000))return SendClientMessage(playerid,GELB,"Nicht für dich!");
    {
    ShowPlayerDialog(playerid, DIALOG_EVENTMANAGER,DIALOG_STYLE_LIST, "EventManager","Event erstellen\nEvent löschen\nEvent Sperren","Ok","Abbrechen");
    }
    return 1;
    }

    Wie es oben steht. Die Spieler sollen in ihren eigenen Haus Drogen ablegen können und auch nur dort diese wieder abholen können. Wenn ich ganz normal IfIsPlayerInRangeOfPoint mit einer Koordinate setze müsste ich für jede Koordinate einen neuen Namen für den Lagerplatz nehmen. So es gibt um die 50 Häuser oder mehr und wenn mehr Spieler kommen würden wären es auch wieder mehr Häuser. Es wär eine ganze Menge Arbeit anstatt es so zu machen das wenn die Drogen abgelegen werden das eine Koord gespeichert wird und man auch nur im Umkreis dieser Koord diese wieder abholen kann.


    Habe oben editiert und das Problem gefunden ;D

    So, wieso holst du vom Spiele die Koordinaten und speicherst es als eine Spieler Variable ?
    Damit holst nur seine Aktuelle Position und nicht dort wo du die Drogen nehmen willst.


    Beim Wiederbeleben Befehl ist es wieder was anderes...


    Du musst einfach bei if(IsPlayerInRangeOfPoint die Koordinaten vom Drogen Punkt reinschreiben z.B



    if(IsPlayerInRangeOfPoint(playerid,5.0,1348.13,451.67,18.2))


    //edit glaube habe es falsch verstanden.
    Ist es richtig das du möchtest das er seine Drogen irgendwo im Haus verstecken kann ?
    Und dann dort aufheben ?
    Wenn ja dann gehts so :


    Wieso machst du es so ?

    ew Float:dposX,Float:dposY,Float:dposZ;
    PlayerInfo[playerid][pDx] = dposX;
    PlayerInfo[playerid][pDy] = dposY;
    PlayerInfo[playerid][pDz] = dposZ;


    Wenn du es direkt im Befehl machen könntest wo er die Drogen versteckt weil ansosten wie bei deinem ist dpoX und die anderen eine Globale Variable nehme ich an da ich nicht weiß wo du das stehen hasst.


    So den Befehl könntest du jetzt so machen :


    if(strcmp(cmdtext, "/dverstecken10" , true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    new location = PlayerInfo[playerid][pLocal];
    for(new i = 0; i < sizeof(HouseInfo); i++)
    {
    if(location < 255)
    {
    if(PlayerInfo[playerid][pDrugs] > 9)
    {
    new Float:x,Float:y,Float:z;
    PlayerInfo[playerid][pDrugs] -= 10;
    PlayerInfo[playerid][Versteck] += 10;
    SendClientMessage(playerid,0xFF0000FF,"10 Gramm versteckt");
    PlayerInfo[playerid][pDx] = x;
    PlayerInfo[playerid][pDy] = y;
    PlayerInfo[playerid][pDz] = z;
    }
    }
    }
    }
    }