Beiträge von UncleSub

    Ja wäre besser. Ich erkläre es nochmal.


    In einem Plugin (.dll, .so) werden Funktionen erstellt und dann später registriert. Die Include dazu "greift" sozusagen auf das Plugin zu und kann diese registrierten Funktionen zu native 's machen.


    Wenn du also eine unpassende Include verwendest, sind dort Funktionen, die überhaupt nicht vom plugin registriert wurden!
    Lösung: Nutze die passende Include zum Plugin.


    Mfg,
    UncleSub

    @Arendium Entweder if(!blalal) oder if(blalal == 0)


    _______________


    Probier das mal:


    if(!strcmp(cmd, "/check", true))
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pAdmin] >= 1)
    {
    tmp = strtok(cmdtext, idx); // Hoffentlich hast du die Variable irgendwo erstellt
    if(sscanf(tmp, "u", giveplayerid))) // Hoffentlich hast du die Variable irgendwo erstellt
    {
    return SendClientMessage(playerid, COLOR_GRAD1, "Benutzung: /check [Spieler ID]");
    }
    if(IsPlayerConnected(giveplayerid))
    {
    Stats(playerid,giveplayerid);
    }
    else
    {
    return SendClientMessage(playerid, COLOR_GRAD1, "Der Spieler wurde nicht gefunden!");
    }
    }
    else
    {
    return SendClientMessage(playerid, COLOR_GRAD1, "Du bist nicht befugt!");
    }
    }
    return 1;
    }


    Mfg,
    UncleSub

    #include <a_samp>
    #include <streamer>
    #include <a_mysql>
    #include <rft_mysql>
    #include <ocmd>


    So wie ich das sehe hast du einfach alles, was nach MySQL aussieht reingeklatscht. Leider kannst du das nicht machen. Du musst dir ein Plugin aussuchen, was du nutzen möchtest.
    Das Problem:
    Du hast ein MySQL Plugin, benutzt aber zwei MySQL Includes. Das eine Include kann auf die Funktionen nicht zugreifen, welche im Plugin drin wären, wenn du das passende Plugin zum Include nutzt.


    Welches Plugin möchtest du denn nutzen?


    Mfg,
    UncleSub

    1. Weil SA:MP Vehicleids erst ab 1 vergibt. Vehicle ID 0 gibt es nicht.


    2. Das wäre mir neu. Keine Ahnung.


    Mfg


    P.S.: Wenn du hinterher mehr Autoladen Funktionen hast (Für mehr Fraktionen) musst du v Global erstellen. ;)

    Auch beim dcmd Command? Das war meine Frage.
    Beim dcmd sieht eig alles soweit in Ordnung aus, bis darauf, dass du eine Spielerid eingeben lassen willst, und dann prüfst ob diese id INVALID_PLAYER_ID ist. Das kann ja natürlich nicht sein, weil du eine Spielerid eingibst die eben nicht INVALID_PLAYER_ID (-1) ist. Mach dort IsPlayerConnected.


    Mfg

    Das selbe Problem hatte ich auch mal.
    Damals hatte ich die Variable, die die Fahrzeuge Hochzählt (also bei dir v) auf 1 gesetzt.
    Inzwischen hab ich die Informationen die zum erstellen des Fahrzeuges benötigt werden in eine extra Variable geschrieben, das Fahrzeug erstellt, und dann mit der carid des erstellten Fahrzeuges alle Daten geladen.


    Also mach du jetzt am besten:



    stock LoadFrakCars1(){
    new Query[128], v = 1, fcarload1;
    ....


    Mfg,
    UncleSub

    Was genau klappt denn nicht? Kommt die Message: "Spieler nicht gefunden"?
    Wenn ja mach mal einfach:


    if(sscanf(params, "u", pID)) return SendClientMessage(playerid, COLOR_GREY, "Befehl: /check [Player ID]");


    Das u ist in sscanf eine extra Funktion, dadurch gibt er dir direkt die Spielerid aus, egal ob du einen Teil des Namens, oder den ganzen Namen eingibst.


    Danach einfach


    if(IsPlayerConnected(pID))


    Mfg

    new string[1220],string1[800],string2[620];
    format(string1, 800, "{00E500}======[Stats von %s auf GTA-Investigated Reallife]======\n{FF0000}*Allgemeines------------------------\n{FFFFFF} Level\t\t\t\t[%d]\n PayDay\t\t\t\t[in %d Minuten]\n Telefonnummer\t\t\t[%d]\n Verheiratet mit\t\t\t[%s]\n Spawnenergie\t\t\t[%.1f]\n Geschlecht\t\t\t[%s]\n Herkunft\t\t\t[%s]\n Alter\t\t\t\t[%d]\n Job\t\t\t\t[%s]\n{FF0000}*Fraktion/Gang---------------------{FFFFFF}\n Organisation\t\t\t[%s]\n Rang\t\t\t\t[%s]\n Familie\t\t\t\t[%s]\n",
    name,level,60-PlayerInfo[targetid][pPlayMinutes],pnumber,married,shealth+50.0,atext,otext,age,jtext,ftext,rtext,f2text);
    format(string2,620," Zuschuss\t\t\t[%d$]\n{FF0000}*Besitz------------------------------{FFFFFF}\n Premium Rang\t\t\t[%s]\n Kills & Deaths\t\t\t[%d / %d]\n Bargeld\t\t\t[%d$]\n Bankkonto\t\t\t[%d$]\n Materialien/Drogen\t\t[%d / %d]\n Verwarnungen\t\t\t[%d]\n Respektpunkte\t\t\t[%d / %d]\n Lv. Up kosten\t\t\t[%d $]\n Lotto Nr.\t\t\t[%d]",
    PlayerInfo[targetid][pGehalt],drank,kills,deaths,cash,account,mats,drugs,PlayerInfo[targetid][pWarns],exp, expamount,costlevel,lotto);
    format(string,1220,"%s%s",string1,string2);
    ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX,"Statistik",string,"Ok","");


    Nuztze strcat dafür. Einfacher und Ressourcenfreundlicher. :thumbup:


    Mfg


    Edit: Außerdem sind deine strings viel zu lang, und du brauchst gar nicht so viele.

    if(modelid==582 || modelid==488 || modelid==438 || modelid==426 || modelid=445)


    Du hast am Ende immer noch nicht ==, sondern = !!!!


    Wurde bereits mehrmals erwähnt, etc..


    Mfg

    Zuerst einmal, warum alles in der Welt machst du


    if(GetPlayerState(playerid)==PLAYER_STATE_DRIVER)


    Du verwendest dies bei OnPlayerStateChange und freundlicherweise wird dir direkt "newstate" und "oldstate" mitgegeben! Nutze dies!


    Hinterher solle es dann circa so aussehen:


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {

    if(newstate == PLAYER_STATE_DRIVER)
    {
    new modelid=GetVehicleModel(GetPlayerVehicleID(playerid));
    if(modelid==582 || modelid==488 || modelid==438 || modelid==426 || modelid==445)
    {
    if(carlic[playerid]==0)
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,red,"You have no drivers license");
    }
    }
    }


    Falls du immernoch Errors bekommst, kannst du ja mal die Zeile(-n) mit den vermeintlichen Errors schicken.


    Mfg

    if(IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    Stats(playerid,giveplayerid);
    }
    }


    zu



    if(giveplayerid != INVALID_PLAYER_ID)
    {
    Stats(playerid,giveplayerid);
    }


    Die Funktion "ReturnUser" sollte standardmäßig INVALID_PLAYER_ID zurückgeben, wenn der Spieler nicht Connected ist. Irgendwie kommt das Script dann aber nicht damit zurecht, wenn dort mittendrin eine -1 (also INVALID_PLAYER_ID) auftaucht. Zumindest war das mal bei mir so.


    Mfg,
    UncleSub

    Hallo zusammen,


    ich habe ein paar Fragen zu den NPC's.


    1. Kann man einen NPC in mehreren virtuellen Welten haben? Soweit ich weiß geht das nicht, aber vielleicht belehrt mich jemand eines anderen, oder kennt ein NPC Plugin, was sowas kann.


    2. Gibt es eine Möglichkeit, dass NPC's keine Slots "fressen"? Soweit ich weiß geht das auch nicht mit der originalen NPC Funktion von SAMP, doch evtl gibt es ja auch ein Plugin für sowas.


    Und bevor jetzt jemand mit Tutorials zum Thema "Wie erstelle ich NPC's" oder ähnlichem kommt, ich weiß wie man NPC's nutzt, erstellt,...


    Mfg,
    UncleSub


    P.S.: Kalcor soll mal endlich die Hauseigene NPC Funktion verbessern. Ich erinnere mich noch zu gut an die CNPC's. Sowas wäre doch was feines, halt ohne Spieler Fake Option.

    Zitat

    Performance Notes


    - It is not recommended to use a high streaming distance for every item. This can drastically impact performance because it leads to more items being checked on each update. If an item's streaming distance exceeds that of the cell distance (600.0 by default), it also does not benefit from spatial indexing, which can lead to even worse performance. Only set high streaming distances for items which need to be visible from very far away (global map icons, for example).


    - Adding too many virtual worlds and interiors to items can lead to increased memory usage and decreased performance. Specifying -1 (all virtual worlds and interiors) actually ensures the best performance, because it eliminates the need to do a lookup when that item is checked on each update. Note that this does not apply to players since only a finite amount can be added.


    Quelle: Hier.


    Mfg,
    UncleSub

    ApplyAnimation(playerid, animlib[], animname[], Float:fDelta, loop, lockx, locky, freeze, time, forcesync)


    Zitat

    forcesync Set to 1 to force playerid to sync animation with other players in all instances (optional).


    Sprich das musst du auf 1 setzen. Quelle: Hier .


    Mfg,
    UncleSub