Beiträge von Nixon

    Hallo zusammen,


    neulich habe ich mir Windows 10 installiert.
    Nun wollte ich nochmal meinen Server starten und es hat nicht funktioniert.
    Dann hab ich natürlich gedacht im Script is irgendwas faul hab aber nichts gefunden.
    Dann habe ich mir nochmal den Standard Server heruntergeladen.
    Habe im server.cfg natürlich das RCON-Passwort geändert.
    Ohne etwas zu verändern habe ich dann den Grandlarc gamemode gestartet.
    Leider auch diesmal ohne Erfolg, also kann es nur sein, dass irgendwas bei meinem Windows fehlt.
    Framework ist installiert.
    Hier ist der Server-log:

    Ich hoffe ihr könnt mir helfen.
    Edit: Ich scheine hier bei Scripting Base falsch zu sein. Vielleicht könnte ein Administrator diesen Thread schließen.


    MfG lcp9

    Hallo zusammen,


    neulich habe ich mir Windows 10 installiert.
    Nun wollte ich nochmal meinen Server starten und es hat nicht funktioniert.
    Dann hab ich natürlich gedacht im Script is irgendwas faul hab aber nichts gefunden.
    Dann habe ich mir nochmal den Standard Server heruntergeladen.
    Habe im server.cfg natürlich das RCON-Passwort geändert.
    Ohne etwas zu verändern habe ich dann den Grandlarc gamemode gestartet.
    Leider auch diesmal ohne Erfolg, also kann es nur sein, dass irgendwas bei meinem Windows fehlt.
    Framework ist installiert.
    Hier ist der Server-log:
    Quellcode
    Quellcode bearbeiten

    • ----------
    • Loaded log file: "server_log.txt".
    • ----------
    • SA-MP Dedicated Server
    • ----------------------
    • v0.3.7-R2, (C)2005-2015 SA-MP Team
    • [15:18:41] filterscripts = "" (string)
    • [15:18:41]
    • [15:18:41] Server Plugins
    • [15:18:41] --------------
    • [15:18:41] Loaded 0 plugins.
    • [15:18:41]
    • [15:18:41] Filterscripts
    • [15:18:41] ---------------
    • [15:18:41] Loaded 0 filterscripts.
    • [15:18:41] Running: RC BARNSTORM by kyeman 2007
    • [15:18:41] Number of vehicle models: 0
    • ----------
    • Loaded log file: "server_log.txt".
    • ----------
    • SA-MP Dedicated Server
    • ----------------------
    • v0.3.7-R2, (C)2005-2015 SA-MP Team
    • [15:19:20]
    • [15:19:20] Server Plugins
    • [15:19:20] --------------
    • [15:19:20] Loaded 0 plugins.
    • [15:19:20]
    • [15:19:20] Filterscripts
    • [15:19:20] ---------------
    • [15:19:20] Loading filterscript 'gl_actions.amx'...
    • [15:19:20] Loading filterscript 'gl_realtime.amx'...
    • [15:19:20] Loading filterscript 'gl_property.amx'...
    • [15:19:20]
    • -----------------------------------
    • [15:19:20] Grand Larceny Property Filterscript
    • [15:19:20] -----------------------------------
    • [15:19:20] Loading filterscript 'gl_mapicon.amx'...
    • [15:19:20] Loading filterscript 'ls_elevator.amx'...
    • [15:19:20] Loading filterscript 'attachments.amx'...
    • [15:19:20] Loading filterscript 'skinchanger.amx'...
    • [15:19:20]
    • --Admin Player Skin Changer Loaded
    • [15:19:20] Loading filterscript 'vspawner.amx'...
    • [15:19:20]
    • --Admin Vehicle Spawner Loaded
    • [15:19:20] Loading filterscript 'ls_mall.amx'...
    • [15:19:20] Loading filterscript 'ls_beachside.amx'...
    • [15:19:20]
    • [15:19:20] |---------------------------------------------------
    • [15:19:20] |--- LS BeachSide Filterscript
    • [15:19:20] |-- Script v1.03
    • [15:19:20] |-- 19th April 2015
    • [15:19:20] |---------------------------------------------------
    • [15:19:20] |-- LS BeachSide Building Elevator created
    • [15:19:20] |---------------------------------------------------
    • [15:19:20] Loaded 10 filterscripts.
    • [15:19:20] Loaded 3 vehicles from: vehicles/trains.txt
    • [15:19:20] Loaded 3 vehicles from: vehicles/pilots.txt
    • [15:19:20] Loaded 15 vehicles from: vehicles/lv_law.txt
    • [15:19:20] Loaded 39 vehicles from: vehicles/lv_airport.txt
    • [15:19:20] Loaded 255 vehicles from: vehicles/lv_gen.txt
    • [15:19:20] Loaded 38 vehicles from: vehicles/sf_law.txt
    • [15:19:20] Loaded 35 vehicles from: vehicles/sf_airport.txt
    • [15:19:20] Loaded 353 vehicles from: vehicles/sf_gen.txt
    • [15:19:20] Loaded 24 vehicles from: vehicles/ls_law.txt
    • [15:19:20] Loaded 37 vehicles from: vehicles/ls_airport.txt
    • [15:19:20] Loaded 98 vehicles from: vehicles/ls_gen_inner.txt
    • [15:19:20] Loaded 389 vehicles from: vehicles/ls_gen_outer.txt
    • [15:19:20] Loaded 71 vehicles from: vehicles/whetstone.txt
    • [15:19:20] Loaded 168 vehicles from: vehicles/bone.txt
    • [15:19:20] Loaded 61 vehicles from: vehicles/flint.txt
    • [15:19:20] Loaded 96 vehicles from: vehicles/tierra.txt
    • [15:19:20] Loaded 96 vehicles from: vehicles/red_county.txt
    • [15:19:20] Total vehicles from files: 1781
    • [15:19:20] Reading File: blank
    • [15:19:20] Reading File: properties/houses.txt
    • [15:19:20] Reading File: properties/businesses.txt
    • [15:19:20] Reading File: properties/banks.txt
    • [15:19:20] Reading File: properties/police.txt
    • [15:19:20]
    • ---------------------------------------
    • [15:19:20] Running Grand Larceny - by the SA-MP team
    • [15:19:20] ---------------------------------------
    • [15:19:20] Number of vehicle models: 173

    Ich hoffe ihr könnt mir helfen.


    MfG lcp9

    Gebe Jeffry Recht. Jedoch solltes du unbedingt beachten, dass RemovePlayerFromVehicle nicht bei OnPlayerEnterVehicle funktioniert.Wenn das aufgerufen wird ist es wenn man gerade f bzw. enter gedrückt hat, sodass man noch nicht im Auto ist. 2 Möglichkeiten: Du machst einen Timer, der den Spiele so 2 sekunden danach rauswirft.
    Du fügst das ganze bei OnPlayerStateChange ein, da kannst du nämlich abfragen, wenn er vorher nicht im auto drin war und jetzt im auto drin ist, dass er die Person dann herauswirft.

    Danke das mit den wanteds resetten ist mir nicht mal aufgefallen, jedoch ändert es nichts.
    Und das mit den wanteds passt schon so, wie gesagt es ging alles bis ich die if abfragen ganz oben gemacht habe. Vielleicht blockieren die den Übergang zwischen Knast tot und normaler spawn?(bei opd nur Knast tot)

    Damit man dir besser helfen kann, wäre es trotzdem besser, wenn du uns das Verhätnis ziwschen pSterne, pWanted und GetPlayerWantedLevel() sagen würdest.
    Ein Punkt von mir hast du noch nicht behandelt: ich schrieb:


    Generell, um Fehler zu finden, habe ich persönlich immer Nachrichten an
    den Spieler gesendet ( also nur wenn etwas nicht funktioniert hat ) bei
    dem dann verschiedene Werte beschrieben werden.


    Z.B.: könntest du mal das Wanted Level ausgeben.


    Könntest du das mal machen, und dann sagen was als Ausgabe da kommt =

    Möchte dir Hard Base nochmal erklären.
    Entweder du lässt deine 10, die du als 4 Parameter benutzt hast einfach weg, weil das ein optionaler Parameter ist, oder du machst es so lang, wie der String, den du in die Klammern geschrieben hast.
    Allgemeines Beispiel: String x = "Hello"; Davon ist dann die Länge H + e + l + l + o, wobei jeder Buchstabe für eins steht. Also 5. (Ist aber nur bei Pawn Strings so ! Naja, und manche anderen auch xD )


    Edit: Nochmal eine Frage: FUnktionieren bei dir andere Commands, die du auch schon gemacht hast oder ist das nur bei denen ?


    MfG lcp9

    ja SetSpawnInfo und dann beim Login z.b.TogglePlayerSpectating(playerid, 0);


    Und bei dem Befehl spawn eben spawn(playerid);


    Ist das wirklich Alles was bei OnPlayerSpawn steht ? Kannst du nicht bitte einfach den Code von SpawnInfo und OnPlayerSpawn etc. schicken ?
    Ansonsten kann man nur sehr schwer helfen.

    Falls du das normale Wanted System benutzt, also mit den Sternen oben rechts, würde ich mal ausprobieren statt:
    SpielerInfo[playerid][pWanteds] > 0


    Das "normale" zu benutzen:
    GetPlayerWantedLevel(playerid) > 0


    Generell, um Fehler zu finden, habe ich persoönlich immer Nachrichten an den Spieler gesendet ( also nur wenn etwas nicht funktioniert hat ) bei dem dann verschiedene Werte beschrieben werden.
    Z.B.: könntest du mal das Wanted Level ausgeben.


    Könntest du mal TeamInRangeOfPoint(...) schicken ?


    Edit::
    Bei OnPlayerSpawn hast du nur das GetPlayerWantedLevel() resettet, aber nicht deine eigen konstruierte Variable.
    Falls du keine Abfrage hast bzw. einen Timer kann das Fatal sein, denn automatisch settet es nicht zu deiner Variable.
    Edit zu Edit: Mir ist aufgefallen, dass du doch etwas behandelt hast, undzwar pSterne. Ich verstehe nicht ganz, warum du pSterne pWanted und GetPlayerWantedLevel() benutzt.


    Folgendes ist auch kritisch:

    SetPlayerWantedLevel(killerid, (SpielerInfo[killerid][pWanteds]/5) + 1);
    SpielerInfo[killerid][pSterne] = SpielerInfo[killerid][pWanteds]/5 + 1;


    Der zweite Parameter der Funktion SetPlayerWantedLevel ist eigentlich ein Integer, aber bei dir gibst du eine Variable, die eigentlich vom Typ Float sein könnten, weil du durch 5 Teilst. Leider bin ich mir nicht ganz sicher, wie das bei Pawn mit Variablen Konvertern handgehabt wird.


    Danke dir :) Kannst du mir noch dabei helfen? Beim 3DTextLabel werden die Farben nicht angezeigt:


    Create3DTextLabel("{00FF00FF}Roller Verleih\n{FFFFFFFF} /roller um einen Roller zu mieten{FFFFFFFF}",0x7DFF00FF,826.3165,-1345.5605,13.5332,10,0,0);

    Ich stimme Jeffry zu.
    Um diesen Fehler vorzubeugen, lade dir am Besten SA:MP Color Picker runter, damit wird direkt die richtige Farbe produziert, und du kannst perfekt auswählen, welche Farbe du willst.
    MfG lcp9

    Hey,
    kunde[pID] = playerid;
    ich glaube diese Zeile bei dem Fehl ist falsch
    Mach es soo
    kunde[playerid] = pID;

    Das ist nicht so, denn es lässt sich aufgrund des Dialoges schließen, dass das richtig so ist, denn zuerst ist pID, der dem der Tank angeboten wird. Im zweiten Teil (also im Dialog) wird pID zu playerid, was richtig erscheint:

    //erster Teil:
    kunde[pID] = playerid;
    //zweiter Teil:
    kunde[playerid];



    Dabei hat man offensichtlich die Funktion, dass Kunde der Anbieter des Tanks ist und somit nachher in dem zum Kunden gerichteten Dialog weiterverwendet werden kann.
    Das ist nämlich so( als Beispiel vom ersten Teil): Kunde pID hat den Anbieter playerid




    Hier ist auf jeden Fall noch etwas falsch:
    GivePlayerMoney(playerid, -fill[kunde[playerid]]);
    GivePlayerMoney(playerid, fill[kunde[playerid]]);


    Dabei ziehst du einem Spieler Geld und gibst dem Gleichen das Gleiche wieder zurück.


    Du musst, noch den anderen Spieler behandeln, undzwar:

    GivePlayerMoney(playerid, -fill[kunde[playerid]]);
    GivePlayerMoney(kunde[playerid], fill[kunde[playerid]]);
    [/pwn]



    Mit der Zeile:
    new vehicleid = (GetPlayerVehicleID(kunde[playerid]));
    //und
    Tank[vehicleid] = GetVehicleMaxTank(m);

    Gibst du dem Spiele, der etwas anbietet den Tank, weil der Dialog an den Kunden gerichtet wurde. Dort müsste dann die erste Zeile zu:

    new vehicleid = GetPlayerVehicleID(playerid);

    umgeändert werden.
    Was außerdem problematisch ist, dass die Zuweisung:
    kunde[pID] = playerid;
    Hinter dem Dialog steht, sodass dieses, alles, was mit kunde[playerid] zu tun hat, in dem Dialog unfähig gemacht wird.


    Ein weiterer unlogischer Aspekt ist folgender:

    format(string, sizeof(string), "Du hast %s für %d$ Fahrzeug aufgetankt",SpielerName(kunde[playerid]),fill[kunde[playerid]]);
    SendClientMessage(kunde[playerid], info, string);


    Sagen wir kunde[playerid] heisst Peter,und es kostet 500€, dann ist das folgendes:
    An Peter wird folgendes gesendet:
    Du hast Peter für 500€ Fahrzeug aufgetankt.
    Das heißt es wird an den Spieler der eigene Name gesendet.
    Das heißt du solltest es so ändern ( Vorausgesetzt SpielerName ist eine funktionierende Funktion):

    format(string, sizeof(string), "Du hast %s für %d$ Fahrzeug aufgetankt",SpielerName(playerid),fill[kunde[playerid]]);
    SendClientMessage(kunde[playerid], info, string);

    Hier könnte man noch den Satz so umändern:

    format(string, sizeof(string), "Du hast das Fahrzeug von %s für %d$ aufgetankt.",SpielerName(playerid),fill[kunde[playerid]]);


    Aus meiner natrülich jetzt eingeschränkten Sicht ( , weil ich nicht den kompletten Code kenn, denke ich du solltest unter if(response == 0) noch schreiben, dass er kein Kunde ist also z.B.: kunde[playerid] = MAX_PLAYERS +2


    Der komplette Code ist also:

    ocmd:fuellen(playerid,params[])
    {
    new string[128], pID;
    if(SpielerInfo[playerid][pTeam] != 5) return SendClientMessage(playerid,error,"Diesen Befehl kannst du nicht nutzen. Benötigter Beruf: {#FF0000}Mechaniker");
    if(Werkzeug[playerid] == 1)
    {
    if(sscanf(params,"ud",pID,fill[playerid]))return SendClientMessage(playerid,info,"/fuellen ID Preis");
    if(!IsPlayerInAnyVehicle(pID)) return SendClientMessage(playerid, error, "Dieser Spieler befindet sich in keinem Fahrzeug!");
    format(string, sizeof(string), "%s hat dir ein Angebot gemacht, dein Auto für %d$ zu Tanken!",SpielerName(playerid),heilerp[playerid]);
    kunde[pID] = playerid;
    ShowPlayerDialog(pID,DIALOG_FILL,DIALOG_STYLE_MSGBOX,"%s möchte dein Auto Tanken",string,"Bestätigen","Abbrechen");

    }
    else
    {
    SendClientMessage(playerid, error, "Du hast keinen Werkzeugkoffer bei dir!");
    }
    return 1;
    }
    if(dialogid == DIALOG_FILL)
    {
    if(response == 1)
    {
    new string[128];
    new vehicleid = (GetPlayerVehicleID(playerid));
    new m = GetVehicleModel(vehicleid);
    format(string, sizeof(string), "Du hast das Fahrzeug von %s für %d$ aufgetankt.",SpielerName(playerid),fill[kunde[playerid]]);
    SendClientMessage(kunde[playerid], info, string);
    format(string, sizeof(string), "Dein Fahrzeug wurde von %s für %i$ aufgetankt",SpielerName(kunde[playerid]),fill[kunde[playerid]]);
    SendClientMessage(playerid, erfolg, string);
    GivePlayerMoney(playerid, -fill[kunde[playerid]]);
    GivePlayerMoney(kunde[playerid], fill[kunde[playerid]]);
    Tank[vehicleid] = GetVehicleMaxTank(m);
    }
    else if(response == 0)
    {
    //Bei Wichtigkeit:
    //kunde[playerid] = MAX_PLAYERS + 2;
    SendClientMessage(playerid,error ,"Du hast den Vorgang abgebrochen!");
    }
    }


    Ich entschuldige mich für meine vielen Grammatikfehler.

    Vom Prinzip habe ich eines mal so gemacht.


    Admins können Häuser erstellen z.b.: mit /createhouse [Price] (zzgl. anderen Parametern, wie Level oder Fraktion)
    Sobald dieser Command aufgerufen wurde wird ein Icon erstellt mit einem 3d text. Die Koordinaten und weiteres ( wie ob das haus ein besitzer hat wie viel es kostet...) in eine Textdatei speichern.
    Wenn ein Spiele /buyhouse macht, dann soll abgefragt werden, ob er in der Nähe ist und, ob er genug geld hat usw...
    Beim Start des Servers sollten alle Häuser z.B.: mit enums geladen werden. Dabei werden dann auch die Icons etc. erstellt.
    Man kann natürlich noch Commands, wie /gohome, /sethouselevel, /buycarforhouse und so weiter hinzufügen.

    Ich stimme Jeffry zu.
    Du solltest noch eine Ausnahme Behandlung hinzufügen, falls Tode null sind. Bei spielen wird dein einfach statt 0 eine 1 genommen also im Prinzip (WAS MATHEMATISCH TOTAL INKORREKT IST)
    5/0 = 5/1

    "aber ich frage momentan ab ob der Spieler in der Nähe ist also mit
    (IsPlayerInRangeOfPoint), aber ich möchte gerne abfragen ob der Spieler
    in der Nähe ist also mit (IsPlayerInRangeOfPoint)"
    Das verstehe ich nicht.
    Du machst etwas z.b.: Fußball spielen, willst aber was anderes machen, also spielst du Fußball ??????

    Ein großes Problem ist sehr oft OnPlayerUpdate. Benutzt man dieses kann es sehr schnell zu Rucklern führen. Andere Timer, die oft und regelmäßig ausgeführt werden zeigen das gleiche Phänomen.