Beiträge von apoolecu

    Hey,


    hab mir folgendes geschrieben:


    if(strcmp(cmd,"/ctankstellenpickup", true) == 0)
    {
    new t = TankeDialog;
    if(IsPlayerInRangeOfPoint(playerid,20.0,tanke[t][tX],tanke[t][tY],tanke[t][tZ]))
    {
    ShowPlayerDialog(playerid,DIALOG_TerstellenP,DIALOG_STYLE_MSGBOX,"Tankestelle erstellen: Pickup","Möchtes du hier das Pickup erstellen?","Ja","Nein");
    print("TankeErstellt!");
    }
    return 1;
    }


    erscheint aber nicht :O obwohl ich in dem Radius bin :S


    MfG: Apoolecu

    so gehört das:


    stock FraktionKasseSpeichern()
    {if(dini_Exists("/folder/file.ini"))
    {
    new FrakKasse[64];
    format(FrakKasse,sizeof(FrakKasse),"FraktionKasse/Kasse.ini");
    dini_IntSet(FrakKasse,"Hitman",FraktionKasse[Hitman]);
    dini_IntSet(FrakKasse,"Police",FraktionKasse[Police]);
    dini_IntSet(FrakKasse,"SanNews",FraktionKasse[SanNews]);
    dini_IntSet(FrakKasse,"Taifun",FraktionKasse[Taifun]);
    dini_IntSet(FrakKasse,"Medics",FraktionKasse[Medics]);
    dini_IntSet(FrakKasse,"AlQaida",FraktionKasse[AlQaida]);
    dini_IntSet(FrakKasse,"Ghostrider",FraktionKasse[Ghostrider]);
    }
    else
    {
    new FrakKasse[64];
    format(FrakKasse,sizeof(FrakKasse),"FraktionKasse/Kasse.ini");
    dini_Create(FrakKasse);
    dini_IntSet(FrakKasse,"Hitman",FraktionKasse[Hitman]);
    dini_IntSet(FrakKasse,"Police",FraktionKasse[Police]);
    dini_IntSet(FrakKasse,"SanNews",FraktionKasse[SanNews]);
    dini_IntSet(FrakKasse,"Taifun",FraktionKasse[Taifun]);
    dini_IntSet(FrakKasse,"Medics",FraktionKasse[Medics]);
    dini_IntSet(FrakKasse,"AlQaida",FraktionKasse[AlQaida]);
    dini_IntSet(FrakKasse,"Ghostrider",FraktionKasse[Ghostrider]);
    }
    }
    return 1;


    EDIT: PWN Code wurde nicht richtig angezeigt
    EDIT: Code Ausgebessert

    Hey,


    ich habe eine Datei erstellt, diese Datei möchte ich aber eine Zahl zuweisen sprich wenn ich z.B IG /cDatei mache wird datei 1 erstellt, bei einem weitern mal /cDatei wird Datei 2 gespeichert.
    Wie soll das aber funktionieren?


    Und wenn ich jetzt z.B. von Datei 2 die Kordinaten abfrage, wie bekomme ich das hin das nur von Datei 2 die Cords abfragt werden und nicht von einer anderen?


    MfG: Apoolecu

    Moin,


    habe eine Dialog gescriptet wollte diesen gleich ausprobieren, doch wenn ich IG /tankstelle eingebe kommt der erste Dialog ist ja noch richtig wenn ich aber einen anderen anklicke und auf Weiter drücke verschwindet der Dialog und kein anderer kommt.



    if(strcmp(cmdtext,"/tankstelle", true) == 0)
    {
    ShowPlayerDialog(playerid,DIALOG_TListe,DIALOG_STYLE_LIST,"Tankstellen System","Tankstelle erstellen\nTankstelle löschen\nPickup ändern\nInterior ändern\nLiter ändern\nIn Betrieb\nAußer Betrieb","Wählen","Abbruch");
    return 1;
    }

    if(dialogid == DIALOG_TInfo)
    {
    if(response == 0) // Abbruch
    {
    }
    if(response == 1) // Wählen
    {
    if(listitem == 0) // Tankstelle erstellen
    {
    ShowPlayerDialog(playerid,DIALOG_TerstellenI,DIALOG_STYLE_LIST,"Tankstelle erstellen:Interior wählen","Groß I\nGroß II\nMittel I\nMittel II\nKlein I\nKlein II","Weiter","Zurück");
    }
    if(listitem == 1) // Tankstelle löschen
    {
    ShowPlayerDialog(playerid,DIALOG_TlöschenAb,DIALOG_STYLE_MSGBOX,"Tankstelle löschen","Möchtest du wirklich die Tankstelle löschen?","Ja","Nein");
    }
    if(listitem == 2) // Pickup ändern
    {
    ShowPlayerDialog(playerid,DIALOG_TlöschenAb,DIALOG_STYLE_MSGBOX,"Tankstelle löschen","Möchtest du wirklich die Tankstelle löschen?","Ja","Nein");
    }
    if(listitem == 3) // Liter ändern
    {
    ShowPlayerDialog(playerid,DIALOG_TlöschenAb,DIALOG_STYLE_MSGBOX,"Tankstelle löschen","Möchtest du wirklich die Tankstelle löschen?","Ja","Nein");
    }
    if(listitem == 4) // Interior ändern
    {
    ShowPlayerDialog(playerid,DIALOG_TlöschenAb,DIALOG_STYLE_MSGBOX,"Tankstelle löschen","Möchtest du wirklich die Tankstelle löschen?","Ja","Nein");
    }
    if(listitem == 5) // Aktiv
    {
    ShowPlayerDialog(playerid,DIALOG_TlöschenAb,DIALOG_STYLE_MSGBOX,"Tankstelle löschen","Möchtest du wirklich die Tankstelle löschen?","Ja","Nein");
    }
    if(listitem == 6) // Inaktiv
    {
    ShowPlayerDialog(playerid,DIALOG_TlöschenAb,DIALOG_STYLE_MSGBOX,"Tankstelle löschen","Möchtest du wirklich die Tankstelle löschen?","Ja","Nein");
    }
    }
    }



    MfG: Apoolecu

    Hey,


    ich habe ein CMD geschrieben bei dem die Enum einen wert bekommen soll,


    if(strcmp(cmd, "/ctanke", true) == 0)
    {
    new tmp[256];
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_RED, "BENUTZUNG: /Tanke [Max. Liter(100-1000)]");
    return 1;
    }
    new tankeid, Float:x, Float:y, Float:z, pname[MAX_PLAYER_NAME];
    GetPlayerPos(playerid, x,y,z);
    tankeid = strval(tmp);
    if(GueltigeLiter(tankeid))
    {
    Tankeerstellt ++;
    new id = Tankeerstellt;
    GetPlayerName(playerid,pname,sizeof(pname));
    tanke[id][tInt] = 0;
    tanke[id][tID] = id;
    tanke[id][tLiter] = tankeid;
    tanke[id][tX] = x;
    tanke[id][tY] = y;
    tanke[id][tZ] = z;
    tanke[id][tPX] = 0.000;
    tanke[id][tPY] = 0.000;
    tanke[id][tPZ] = 0.000;
    strmid(tanke[id][tBesitzer], pname,0, sizeof(pname)-1, MAX_PLAYER_NAME);
    SpeicherTanke(id);
    new szString[55];
    new szString2[55];
    new szString3[60];
    format(szString,sizeof szString,"Tankstelle erstellt ID(%d)", tanke[id][tID]);
    format(szString2,sizeof szString2,"Tankstelle X: %f, Y: %f, Z: %f", x,y,z);
    format(szString3,sizeof szString3,"Es wurde X: %f, Y: %f, Z: %f gespeichert", tanke[id][tX],tanke[id][tY],tanke[id][tZ]);
    SendClientMessage(playerid, COLOR_RED, szString);
    SendClientMessage(playerid, COLOR_RED, szString2);
    SendClientMessage(playerid, COLOR_RED, szString3);
    ErlaubeTankPickup[playerid] = id;
    SendClientMessage(playerid, COLOR_RED,"Erstelle nun ein Tankstellen Pickup. [/ctankepickup]");
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Mind. 100 L - Max. 1000 L");
    }
    return 1;
    }


    das Problem ist X,Y,Z werden richtig ausgeben, bei tanke[id][tX-Z] wird aber nur 0.0000 angezeigt aber ich habe doch vorher den Wert zugewiesen :O und in der Enum sind sie auch als Float
    Deklariert...

    Hey,


    die anderen Cords brauche ich noch :D wollte da nur testen ob es maybe daran liegt :/ ne an der Enum liegt es nicht :D.


    Code:


    public SpeicherTanke(id)
    {
    new str[256];
    if(id <= 0)
    {
    return 1;
    }
    format(str, sizeof(str), "SAP/%d.tanke", id);
    dini_Create(str);
    {
    dini_Set(str,"Besitzer",tanke[id][tBesitzer]);
    dini_IntSet(str,"ID",tanke[id][tID]);
    dini_IntSet(str,"Liter",tanke[id][tLiter]);
    dini_IntSet(str,"MLiter",tanke[id][tMLiter]);
    dini_FloatSet(str,"tX", tanke[id][tX]);
    dini_FloatSet(str,"tY", tanke[id][tY]);
    dini_FloatSet(str,"tZ", tanke[id][tZ]);
    dini_FloatSet(str,"tPX", tanke[id][tPX]);
    dini_FloatSet(str,"tPY", tanke[id][tPY]);
    dini_FloatSet(str,"tPZ", tanke[id][tPZ]);
    dini_IntSet(str,"Interior", tanke[id][tInt]);
    }
    return 1;
    }

    Hey,


    ich habe ein cmd mit dem ich eigentlich meiner derzeitige Postion in einer Datei speichern möchte, aber die Floats werden nicht dort rein gespeichert.
    Da steht einfach nur 0.00000


    CMD:


    if(strcmp(cmd, "/ctanke", true) == 0)
    {
    new tmp[256];
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_RED, "BENUTZUNG: /Tanke [Max. Liter(100-1000)]");
    return 1;
    }
    new tankeid, Float:x, Float:y, Float:z, pname[MAX_PLAYER_NAME];
    GetPlayerPos(playerid, x,y,z);
    tankeid = strval(tmp);
    if(GueltigeLiter(tankeid))
    {
    Tankeerstellt ++;
    new id = Tankeerstellt;
    GetPlayerName(playerid,pname,sizeof(pname));
    tanke[id][tInt] = 0;
    tanke[id][tID] = id;
    tanke[id][tLiter] = tankeid;
    tanke[id][tX] = x;
    tanke[id][tY] = y;
    tanke[id][tZ] = z;
    tanke[id][tPX] = 0.000;
    tanke[id][tPY] = 0.000;
    tanke[id][tPZ] = 0.000;
    strmid(tanke[id][tBesitzer], pname,0, sizeof(pname)-1, MAX_PLAYER_NAME);
    SpeicherTanke(id);
    SendClientMessage(playerid, COLOR_RED,"Tanke erstellt!");
    ErlaubeTankPickup[playerid] = id;
    SendClientMessage(playerid, COLOR_RED,"Erstelle nun ein Tankstellen Pickup. [/ctankepickup]");
    GetPlayerPos(playerid, TankeX,TankeY,TankeZ);
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Mind. 100 L - Max. 1000 L");
    }
    return 1;
    }


    MfG: Apoolecu

    Hey,


    ich habe mir gerade ein Dynamisch System zurecht gecodet, aber wenn ich eine Datei erstellen will, speichert er ein völlig Falsche ID ab die gar nicht stimmt :O


    Code:
    if(strcmp(cmd, "/ctanke", true) == 0)
    {
    new tmp[256];
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_RED, "BENUTZUNG: /Tanke [Max. Liter(100-1000)]");
    return 1;
    }
    new tankeid, Float:x, Float:y, Float:z, pname[MAX_PLAYER_NAME];
    new id = GetPlayerPos(playerid, x,y,z);
    tankeid = strval(tmp);
    if(GueltigeLiter(tankeid))
    {
    GetPlayerName(playerid,pname,sizeof(pname));
    tanke[id][tInt] = 0;
    tanke[id][tID] = id;
    tanke[id][tLiter] = tankeid;
    tanke[id][tX] = x;
    tanke[id][tY] = y;
    tanke[id][tZ] = z;
    strmid(tanke[id][tBesitzer], pname,0, sizeof(pname)-1, MAX_PLAYER_NAME);
    SpeicherTanke(id);
    SendClientMessage(playerid, COLOR_RED,"Tanke erstellt!");
    ErlaubeTankPickup[playerid] = 1;
    SendClientMessage(playerid, COLOR_RED,"Erstelle nun ein Tankstellen Pickup. [/ctankepickup]");
    GetPlayerPos(playerid, TankeX,TankeY,TankeZ);
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Mind. 100 L - Max. 1000 L");
    }
    return 1;
    }


    evtl. liegt es daran, das ich die ID von GetPlayerPos nehme. weil die Cords speichert er auch nicht ab :(

    hey,



    hier ist die Funktion :


    stock GetDistanceToLastPoint(vehicleid)
    {
    new Float:x2, Float:y2, Float:z2, Float:output;
    GetVehiclePos(vehicleid, x2, y2, z2);
    output = floatsqroot(floatpower(floatabs(floatsub(x2, Xv[vehicleid])), 2)+floatpower(floatabs(floatsub(y2, Yv[vehicleid])), 2)+floatpower(floatabs(floatsub(z2, Zv[vehicleid])), 2));
    return floatround(output);
    }

    Hey,


    ich habe in meinem Tacho jetzt noch eine Meter/KM anzeige hinzugefügt, aber dort werde einfach immer mehr Meter dazu gezählt ob wohl ich das fahrzeug gar nicht bewege :O bitte helft mir :/


    Code:


    public TachoTimer()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i))
    {
    new Float:Entfernung, Float:Geschwindigkeit, vehids = GetPlayerVehicleID(i);// Die definierten Floats die mit den Werten gefüttert werden
    new m = GetDistanceToLastPoint(vehids);
    CarInfo[vehids][aMeter]+=m;
    CarInfo[GetPlayerVehicleID(i)][aKM] = CarInfo[GetPlayerVehicleID(i)][aMeter]/500;
    GetVehiclePos(GetPlayerVehicleID(i), X1[i], Y1[i], Z1[i]); //Erste Koordinate wird genommen
    Entfernung = floatsqroot(floatpower(floatabs(floatsub(X1[i], X2[i])), 2)+floatpower(floatabs(floatsub(Y1[i], Y2[i])), 2)+floatpower(floatabs(floatsub(Z1[i], Z2[i])), 2)); //Berechnung der Entfernung
    Geschwindigkeit = (Entfernung / (TACHOTIMER/1000)) * 3.6; //Meter/Sekunde in Kilometer/Stunde
    new Tachostring[125];
    format(Tachostring, sizeof(Tachostring), "Km/h: %d~n~Benzin: %dL/%dL~n~Besitzer: %s~n~KM: %d", floatround(Geschwindigkeit), CarInfo[vehids][aBenzin],CarInfo[vehids][aMBenzin],CarInfo[vehids][aBesitzer],CarInfo[vehids][aMeter]/500);
    TextDrawSetString(Tacho[i], Tachostring);
    GetVehiclePos(GetPlayerVehicleID(i), X2[i], Y2[i], Z2[i]); //Zweite Koordinate wird genommen
    TextDrawShowForPlayer(i, Tacho[i]);
    }
    else
    {
    TextDrawHideForPlayer(i, Tacho[i]);
    }
    if(CarInfo[GetPlayerVehicleID(i)][aKM] == 20)
    {
    CarInfo[GetPlayerVehicleID(i)][aBenzin]--;
    CarInfo[GetPlayerVehicleID(i)][aKM] = 0;
    }
    }
    return 1;
    }

    Hey,



    wollte mal fragen ob es noch ein Update für GTA:United auf 0.3 gab, wenn ja wo kann man es runterladen.


    Ansonstens wäre es möglich, wenn man SanVice benutzen würde und dann einfach die normale SAMP.exe starten würde?


    MfG: Apoolecu