Beiträge von Goldkiller

    Wo liegt denn das Problem ?
    Ich schreib mal kurz auf,wie Ich das machen würde:
    Für jede MODELID eine Variable erstellen und dort festlegen,welcher Typ,was tanken muss.
    enum ( += 1)
    {
    e_Sprit_Diesel = 1,
    e_Sprit_Super,
    e_Sprit_SuperPlus,
    e_Sprit_VPower,
    }
    new const VehicleNames[212] = {
    e_Sprit_Diesel, // Landstalker
    e_Sprit_Super, // Bravura
    e_Sprit_Diesel, // Buffalo
    // usw...
    };
    Dann könntest du per:
    new
    vehicleid,
    modelid,
    sprittyp;
    vehicleid = GetPlayerVehicleID(playerid);
    modelid = GetVehicleModel(vehicleid);
    sprittyp = VehicleSpritTyp[modelid - 400 ];

    heraussfinden, welchen Sprit ein Fahrzeugmodell tanken muss.Das musst du natürlich erweitern mit dem Tankstellen System.

    in der server.cfg



    stream_distance 300.0
    stream_rate 1000


    Die Stream_Distance / Rate hat nichts mit den Objekten zu tun.
    Wobei eine stream_rate von 1000 ziemlich bescheuert ist,denn:

    Zitat

    stream_distance - The distance on the X,Y plane which server entities will stream in for connected players.
    stream_rate - The number of milliseconds that must elapse before server entities stream distance is retested for each player.


    Kannst mal ein Bild von den Objekten machen ? Eigentlich sind die nur blass, wenn die gerade eingestream werden von GTA und du hart an der Grenze bist,ab wann das überhaupt sichtbar in GTA ist ( unabhängig von SA:MP ). Und welchen Streamer nutzt du zzT ?

    Kannst du doch ganz leicht selber nachprüfen.
    FS werden vor dem GM geladen.


    Da du sowieso dynamisch SetPVar verwenden kannst,kannst du sowieso jederzeit einen neuen Wert festlegen. Ist also egal ob es vor oder nach dem GM geladen wird. Loggt der Spieler sich ein, setzt du die PVar auf true ( Eingeloggt oder wie du es hast ) , kannst dann zu jedem Zeitpunkt im GM abfragen ob dieser PVar Wert true ist.

    // Per-player variable system (PVars)
    native SetPVarInt(playerid, varname[], int_value);
    native GetPVarInt(playerid, varname[]);
    native SetPVarString(playerid, varname[], string_value[]);
    native GetPVarString(playerid, varname[], string_return[], len);
    native SetPVarFloat(playerid, varname[], Float:float_value);
    native Float:GetPVarFloat(playerid, varname[]);
    native DeletePVar(playerid, varname[]);

    Auf PVars kannst du von jedem Script auf zugreifen.Gibt zu PVars auch irgendwo ein Tutorial im Forum.


    Zitat

    //Edit:
    Außerdem würde ich gerne wissen, wie man Define's also z.B. Farben im GM verwenden kann, wenn diese im Filterscript definiert wurden. Oder lässt sich sowas nur per Include realisieren?


    Nee,das geht nicht.Das liegt allein schon daran, wie defines verarbeitet werden beim kompilieren.


    // -- bla.pwn
    #define DEFINE_TEST 5
    // code
    new var = DEFINE_TEST;
    // -- bla.amx
    // code
    new var = 5;
    Der Compiler fügt an jede Stelle im Code wo DEFINE_TEST steht eine 5 ein.
    Es passiert ja nichts anderes mit den ganzen COLOR Codes die du wahrscheinlich auch hast.
    http://wiki.sa-mp.com/wiki/Keywords:Directives#.23define

    Hast wohl das dcmd - Macro an der falschen Stelle definiert ( denke ich einem #if #endif Block ) .


    Verschieb mal das dcmd Macro direkt unter die Anweisung:
    #include <a_samp>


    DCMD_Macro:
    #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1

    if(pInfo[i][Wanteds] == 0)
    {
    format(str,sizeof(str),"Name: %s | Wanteds: %d",SpielerName[i],pInfo[i][Wanteds]);
    SendClientMessage(playerid,0xFFE600FF,str);
    }
    Relativ sinnlos.Die If() Abfrage schaut ob der Spieler keine Wanteds hat ( 0 ) und falls das stimmt, wird angezeigt, dass er 0 hat.
    if(pInfo[i][Wanteds] > 0 )
    {
    format(str,sizeof(str),"Name: %s | Wanteds: %d",SpielerName[i],pInfo[i][Wanteds]);
    SendClientMessage(playerid,0xFFE600FF,str);
    }


    else return SendClientMessage(playerid,0xC8C8C8FF,"Derzeit keine Straftäter unterwegs!");
    Ist dort auch an der falschen Stelle. Erstell eine Variable ( zB bool:bTreffer = false; ) und sobald mindestens 1 Spieler mit Wanted gefunden wurde, änder den Wert ( bTreffer = true ).
    Zum Schluss überprüfst du ob die Variable sich nicht verändert hat ( if ( bTreffer == false ) ) und sendest dann die Nachricht, dass es keine Gesuchten Spieler gibt.

    http://wiki.sa-mp.com/wiki/Create3DTextLabel

    Zitat

    text[], color, Float:X, Float:Y, Float:Z, Float:DrawDistance, virtualworld, testLOS


    testLOS - 0/1 Test the line-of-sight so this text can't be seen through objects.
    Du hast bei dir aber keinen Wert für testLOS angegeben ( plateid = Create3DTextLabel(plate,COLOR_NS,0.0,0.0,0.0,40.0,0); ). testLOS ist ein optionaler Parameter.Standartmäßig 0, du willst ihn aber als 1.
    Also:
    plateid = Create3DTextLabel(plate,COLOR_NS,0.0,0.0,0.0,40.0,0,1);

    Zitat

    /edit: IstAdmin habe ich nun definiert.. aber wie die anderen 3?


    Hast du die 3 Anderen ( sind eigentlich 2 ) denn definiert?


    Sieht eher so aus,als hast du dir da etwas zusammenkopiert.
    Sieht nämlich nach strtok + sscanf aus, hab Ich bisher so noch nie gesehen.

    new GroveStreetSkins[284] = {3,
    105,106,107};
    Wie kommst denn dort alleine schon auf 284 ?


    Da du schon die for() Schleife falsch machst,schau dir doch nochmal die Grundlagen an.


    for(new i = 1; i < sizeof(GroveStreetSkins); i++)
    Sicher,dass ihr bei i = 1 anfangen wollt? Dann würdet ihr nämlich den ersten Eintrag des Arrays immer überspringen.Von daher, i = 0.

    Natürlich hast du dort playerid, aber woher weiss die Funktion TimerBsn was playerid sein soll ?


    http://wiki.sa-mp.com/wiki/SetTimerEx



    SetTimerEx("TimerBsn",10000,0,"d",playerid); // Anstatt deine Timer Funktion


    forwardTimerBsn(playerid);
    public TimerBsn(playerid)
    {
    PlayerGiveMoney(playerid, -25);
    SetPlayerHealth(playerid, 100);
    SendClientMessage(playerid,COLOR_SWAT,"Vielen Dank, besuchen Sie uns wieder!")
    }


    Falls du es nicht verstehst,schau dir SetTimerEx an und die Grundlagen.