[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
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
  • Guten morgen ich bräuchte wieder mal hilfe und zwar bastel ich grade mit diesem Tut: [ SCRIPTING ] Autohaus + Autokauf System


    Jetzt habe ich allerdings das Problem das man dort angeben soll wo genau das auto steht in das man dann steigt um den jeweiligen Kauf dialog aufzurufen, nur ändern sich bei mir die kordinaten des fahrzeugs nach jedem restart des servers scheinbar leicht und da es wohl keine tolleranzgrenze gibt kommt auch der kaufen dialog nicht.
    new Buycars[1][AKInfo] = { //Auch hier steht die 1 für die Anzahl (kann man auch leer lassen).
    {526, "Fortune", "Mittelklasse Autohaus", 20000, 760.7401, -1380.6034, 13.3659, 359.8555}
    };public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate == PLAYER_STATE_DRIVER)
    {
    new vehicleid = GetPlayerVehicleID(playerid);
    for(new i = 0; i < sizeof Buycars; i++)
    {
    if(vehicleid == kaufauto[i])
    {
    new str[150];
    format(str,sizeof(str),"Möchten Sie dieses Fahrzeug kaufen?\n\nName: %s\nPreis: %d", Buycars[i][Name], Buycars[i][Preis]);
    TogglePlayerControllable(playerid,0);
    return ShowPlayerDialog(playerid,Dialog_Buycar,DIALOG_STYLE_MSGBOX,"Autokauf",str,"Kaufen","Abbrechen");
    }
    }
    }
    return 1;
    }


    Ich denke das sind die beiden relevanten Code Schnippsel. Falls mir jemand ne möglichkeit nennt wie ich hier mit einem bereich statt kordinaten arbeiten kann wäre ich auch dankbar nur da ich noch relativ neu bin weiß ich nicht ob mir das hilft.

  • das skript hat damit wohl auch nichts zu tun könnte es durch unebenen boden verursacht werden? ich weiß es kann passieren wenn man 2 objecte zu nah an einander platziert. es sind auch immer nur winzige abweichungen :(


    und selbst wenn, ist es nicht trotzdem eine unsichere methode? Wenn ich mir nun mal angenommen den spass mache und die autos leicht verschiebe nach dem sie gesetzt wurden dürfte das script doch ebenfalls ins leere laufen oder nicht?

  • Wieso machst du es dir nicht ganz einfach, gehst Ingame setzt dich in jedes einzelne betroffene Auto, tippst /save [Kommentar] ein & tauschst die Koordinaten aus?


    MfG


    //Edit: Sollten die Koordinaten noch immer gleich sein, verändert sich daran auch nichts. Sicher, das es nicht Bugged & das Script wirklich alles richtig ausführt? Vielleicht vorherige Funktionen per "SendClientMessage" überprüfen lassen, ob die bis dahin überhaupt kommen.

  • Das habe ich bereits gemacht und zwar 4 x und nach jedem mal waren es winzige verschiebungen.


    AddStaticVehicle(526,760.7402,-1380.5942,13.3779,359.8582,9,39); // car buy position
    AddStaticVehicle(526,760.7401,-1380.6034,13.3659,359.8557,9,39); //
    AddStaticVehicle(526,760.7401,-1380.6030,13.3673,359.8555,9,39); //


    Da ich nicht wusste ob es einen unterschied macht habe ich penibel drauf geachtet das auto nicht zu verschieben.


    Hmm okay vorherige werde ich noch mal überprüfen das habe ich noch nicht gemacht. Errors oder Warnings waren aber keine beim kompilieren.


    EDIT: Ich habe jetzt alles mögliche ausprobiert und es ist egal mit welchem Auto es sind immer leichte Abweichungen vorhanden, kann man so ein auto irgendwie unbeweglich machen? also so das es weder geschoben, gedreht oder sonst irgendwie bewegt werden kann?

    Einmal editiert, zuletzt von Zyankali ()

  • switch(GetPVarInt(killerid,"Kills"))
    {
    case 25:{GivePlayerMoney(playerid,250);}
    }
    return 1;


    Als Beispiel und ich möchte das die "EXP" vom Killer um z.B. 250 erhöht werden.
    Ich kenne nur SetPVarInt & GetPVarInt, also wie muss ich das machen, denn beide
    kommen mir sehr unrealistisch vor.


    stock EXP(playerid,exp)
    {
    if(GetPVarInt(playerid,"EXP")>=exp) return 1;
    return 0;
    }


    Mein Stock dazu, hoffe wer kan helfen.


    MfG Kazuto

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Woran kann es liegen, das bei meinem Freund auf seinem Root, das Script Spinnt? zB keine Tore gehen auf etc? liegt es am Server?

  • Wieso als Gametext, wenn ich es als Textdraw haben will/möchte ô.O


    Screen:



    Woran kann es liegen, das bei meinem Freund auf seinem Root, das Script Spinnt? zB keine Tore gehen auf etc? liegt es am Server?


    @ Johan ich gehe mal davon aus es liegt daran das du das r und das w groß hast probier es mal so zum Beispiel ~r~
    es könnte daran liegen habs jedoch noch nie groß probiert und es ging bei mir immer.


    @ Kazutu merk dir dies mal du kannst bei spieler variabeln auch alles addieren dies ist natürlich auch möglich beispiel

    SetPVarInt(playerid, "Exp", GetPVarInt(playerid, "Exp") + 250);


    ich glaube sogar ich hab dir das auch geschrieben in dem einen post als beispiel ?


    @ Zyankali
    wie schon sonic bereits es geschrieben hat ist es die größe bei dem ersten beispiel ist es die größe von 100 von 100 zeichen das können so
    auch 100 variabeln als auch wie schon genannt ein string sein von zeichen.
    und bei MAX_PLAYER_NAME ist es der Maximale wert von den verwendeten Zeichen für den Namen dies kannst du im wiki nach schauen bei limits.


    @Sommerferien


    Auf deine Frage kann ich nicht genau antworten gehen nur die ganzen Tore nicht oder allgemein alle commands nicht mehr gehen sie jedoch auf dem homeserver
    könntest du vllt noch mehr Probleme auflisten welche entsehen wie beispiel keine Pickups und Objekte mehr weil sowas kann davon kommen wenn limit übergangen werden
    und sagt vllt die Serverlog was aus ?( bitte mehr Informationen )

  • Ich möchte ein Filterscript in die Gamemode umschreiben habe nun folgenden Teil


    public OnFilterScriptExit()
    {
    for(new i = 0; i < sizeof Autohaus; i++) //schleife die alle autohäuser durchgeht.
    {
    new datei[75];
    format(datei,sizeof(datei),"/Autohaeuser/%s.ini",Autohaus[i][Name]);
    dini_Set(datei,"Besitzer",Autohaus[i][Besitzer]);
    dini_IntSet(datei,"Kasse",Autohaus[i][Kasse]);
    }
    for(new j = 0; j < sizeof Buycars; j++)
    {
    DestroyVehicle(kaufauto[j]);
    }
    return 1;
    }


    und frage mich nun wo dieser eingetragen werden muss, OnGameModeExit wäre ja sinnfrei.


  • Denk mal daran was ist der unterschied zwischen OnGameModeInit und OnGameModeExit im bezug auf
    OnFilterScriptExit und OnFilterScriptInit es steckt ja schon im Wort drinne ^^ es erfüllt den selben zweck

  • wie benutze ich strcat in einem dialog, wo kein string etc da ist? Bsp:

    ShowPlayerDialog(playerid, restaurantslv, DIALOG_STYLE_LIST,"Restaurants in Las Venturas","Emerald Well Stacked Pizza\nOld Venturas Strip Clucking Bell\nOld Venturas Strip Burger Shot\nStarfish Burger Shot\nStarfish Well Stacked Pizza\nCreek Well Stacked Pizza\nCreek Clucking Bell\nSpinybed Burger Shot\nWhitewood Estates Burger Shot\nFort Carson Clucking Bell\nFort Carson Rusty Browns Donuts\nTierra Robada Clucking Bell\nEmerald Cluckin Bell\nStartfish Cluckin Bell\nRoca Escalante Well Stacked Pizza","Auswählen","Abbrechen");

    mfg

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen