Beiträge von IPrototypeI

    Alle Keys werden von GTa nicht unterstützt.


    Da hast du recht darum steht auch dran die sind ohne gewähr.


    //edit
    Nur ein Bruch Teil geht, jeder kann das machen , also testeb ob die taste geht. Ein beispiel wäre eine ausgabe bei dem public OnPlayerKeyStateChange.


    Jedoch , fehlt den meisten Leuten die id dazu und nicht alle stehen im wiki.

    if(newkeys == KEY_ACTION) sollte normalerweise gehen da es sich dabei um das tab menü handelt und


    es wird bei jedem gf auch verwendest ^^ und zwar bei DTC-Carsystem

    Das Problem ist das es die schusstaste ist , naja da failt samp ihrgend wie ganz da zum ersten das ganze nicht aufgerufen wird also
    die w , a , s ,d tasten und down, right, left und up.


    Du kannst es mit dem Numpad lösen das wäre auch ein möglichkeit oder du haust das ganze in onplayerupdate.
    Beispiel:
    welches du auch hier findest http://wiki.sa-mp.com/wiki/GetPlayerKeys
    public OnPlayerUpdate(playerid)
    {
    new Keys,ud,lr;
    GetPlayerKeys(playerid,Keys,ud,lr);

    if(ud > 0) SendClientMessage(playerid, 0xFFFFFFFF, "DOWN");
    else if(ud < 0) SendClientMessage(playerid, 0xFFFFFFFF, "UP");

    if(lr > 0) SendClientMessage(playerid, 0xFFFFFFFF, "RIGHT");
    else if(lr < 0) SendClientMessage(playerid, 0xFFFFFFFF, "LEFT");

    return 1;
    }

    Also der bug ist ziemlich komisch den du da hast.


    grundsetzlich gibst du der variabel den wert in dem diese gleichsetzt.


    Also du kennst das ja


    Beispiel:

    new test[MAX_PLAYERS];
    standartsweise ist der wert der variabel 0
    setzt man sie mit ihrgend einem Wert gleich
    so wird der wert an die variabel weiter gegeben und übernommen.


    test[playerid] = 1;


    nehmen wir dazu noch die id 5 des Spielers


    test[5] = 1;


    aber bei dem codeschnipsel


    bei deinem Codeschnipsel wird die nicht gesetzt
    jedoch ist dein aufbau etwas komisch also umständlich.
    //edit


    was ich empfehle ist die skins in ein array zu setzen


    new skin[6] = {1,200,1,1,1,5};


    dann natürlich eine wo wir die position des skin fest setzen welcher der Spielr auswählt

    new wahl[MAX_PLAYERS];




    if(newkeys == KEY_RIGHT){
    wahl[playerid]-=1;
    if(wahl[playerid] == -1){ wahl[playerid] = 5;}
    SetPlayerSkin(playerid,array[wahl[playerid]]);
    }


    dann kannst du das ganz einfach runter setzen und beim hoch gehen ist es halt das gegenteil
    der variabel wird ein wert addiert


    das ist jetzt grobflächig angespielt.

    Ich hab zwar nicht genau verstanden was du genau meinst jedoch


    schau dir mal das native von SetPlayerMapIcon an



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


    un dich möchte da auf style verweisen wo es auch diese nette kleine Box gibt.



    0: MAPICON_LOCAL Display in the player's local area
    1: MAPICON_GLOBAL Display always
    2: MAPICON_LOCAL_CHECKPOINT Display in the player's local area and has a checkpoint marker
    3: MAPICON_GLOBAL_CHECKPOINT Display always and has a checkpoint marker


    Naja ob es sich wirklich lohnt etwas ganz neues zu machen ist fraglich natürlich könnte man ihrgend ein besonderes Konzept benutzen. Jedoch solch eins zu erstellen
    was wirklich nicht wieder ausgelutscht ist. Naja Konzept Ideen sin dmir schon paar in den Sinn gekommen , jedoch reicht mein können dazu nicht aus um zum beispiel
    ein launcher zu schreiben um das ganze MTA ähnlich zu gestalten und um die engin umzuschreiben. Sowas fände ich meiner Meinung noch lohnens Wert.
    Was man auch noch machen könnte war es so ähnlich zu machen wie PureRp ein Selfmade anfangen und das ganze mit Features zu dröhnen bis zum nimmer geht nicht mehr.
    Jedoch ob man das bis zum Ende dann durchhält ohne das einem die lust vergeht ist fraglich. Bei mir ist es auch so das ich selbst ab und zu richtig lust habe ein System
    zu schreiben nur vergeht mir nach der Zeit die lust und laune , da es kein Ansporn mehr gibt.


    Also solltest du ihrgend ein Projekt anfangen , so würde ich dir empfehlen ein Co.Scripter zu suchen. Da ein gewisser Ansporn zwischen beiden Seiten entsteht.

    Ich hab mich auf den letzten abschnitt bezogen von deiner Aussage und hab diese falsch verstanden ich bin davon ausgegangen
    das du die PVars meintest , jedoch meinst du ja die normale Variabeln und damit hast du ja recht ^^, dass diese include
    nicht dem php gedanke ganz entspricht , wenn man keine normalen Variabeln verwenden kann wie du in deinem Beispiel.


    Jo sry. ;)

    Man kann das hier nur schlecht mit dem SSCANF Plugin vergleichen. Bei SSCANF muss man ja selber angeben,was für einen Typ die Variable hat.
    Auch wird dort die Variablen als Referenz übergeben.
    Die Variablen als Referenz übergeben bricht den PHP Aspekt. Wir landen dann wieder bei format oder sprintf ( sprintf hat irgendwer mal iwo gepostet ).
    Wenn die Variable nicht als Referenz übergeben wird,wie kommt er dann an sie herran. Wie gesagt,der Variablenname existiert im Kompilierten-Code nicht mehr.


    Eine while Schleife macht hier viel mehr Sinn als for.Auf die Idee eine for-Schleife zu nutzen würde ich von der Logik her schon nie kommen :-O.


    Mit dem variabel namen hast du teils recht die ganzen PVars bleiben im Index zurück also von 0 bis ... diese kann man jedoch wieder aufrufen
    und zwar mit GetPVarNameAtIndex


    ein beispiel wäre solch ein command

    if(strcmp("/test1", cmdtext, true, 10) == 0){
    new varname[64];
    for(new i=0; i < GetPVarsUpperIndex(playerid); i++)
    {
    GetPVarNameAtIndex(playerid, i, varname, sizeof(varname));
    printf("PVar index: %d varname: %s", i, varname);
    }
    return 1;
    }


    da hat man den Namen zur entsprechenden id und kann dann mit einer while schleife oder mit einer for schleife und strfind
    überprüfen ob der Name der variabel mit dem zeichen vorhanden ist.


    zum thema for-schleife ^^
    for(new i=0; i < GetPVarsUpperIndex(playerid); i++)


    mit GetPVarsUpperIndex lässt dich die anzahl der variabel des spielers auslesen.


    Naja nun fängt der schwierige teil an und zwar das ersetzen der string stücke und zwar bleibt einem in pawn nur
    eine begrenzte möglichkeit.


    Ein beispiel wäre es mit strreplace zu machen. Ich hab mich heute mal 2 Stunden dran gehockt um sowas ähnliches zu
    machen und kam leider zu dem punkt das die meisten möglickeiten von samp her nicht sehr prizise sind
    auch die Funktion hier von Kaliber bringt nicht wirklich das was sie verspicht und zwar grenzt sich das relative früh ab
    also ich hab nicht mal 3 Variabeln geschaft mit deine Funktion ^^ und dort war schon mein string verschoben also
    besser gesagt der Name war zusammen mit einem weiteren Wort.

    In deiner Abfrage ist ein denkfehler und diese empfhele ich dir auch nicht.


    if(m[playerid] <= mins && sek[playerid] <= seks && msek[playerid] < mseks)


    da müsste alles niedriger sein ein beispiel


    wenn du die Zeit


    2:01:16 gefahren bist und danach


    1:45:10 failt dann deine abfrage da die 45 größer ist


    es ist besser du vergleichst die millisekunden ^^ und diese solltest du auch speichern


    //edit


    du kannst ja mal zum test zweck ein else noch einbringen


    also zum Beispiel:


    else{ print("Die Zeit war leider nicht besser");}

    kommt halt drauf an was für eins ich hab mal eins gehabt das hatte 130 Euro gekostet war jedoch ganz und musst erst geliefert werden.
    Schau einfach mal bei ebay rein da bekommst solche auch billiger jedoch sollte man so zwischen 50 - 150 Euro rechnen.
    Grundsätzlich sind die nicht sehr teuer.

    Es kann natürlich auch an der Abfrage liegen


    if(PlayerInfo[playerid][pPhousekey] != 255)


    normal gehen die commands ohne Probleme , verwendest du überhaupt ein GF oder hast du dir ein Selfmade gemacht wo du System aus dem GF raus kopierst

    Also dein Problem habe ich jetzt nicht so wirklich verstanden wird die AMX nach dem compilen nicht mehr überschrieben beziehungsweise ersetzt
    oder ist das so , wenn du das script hochladest. Also bezüglich meiner ersten annahme solltest du dir den ganzen Server ordner nochmal runterladen
    auf samp.com dann sollte das wieder gehen. Warum er beim login nicht mehr weiter kommt das kann auch an deinem code liegen das dort ihrgend was blockiert
    möglichkeit dazu wäre mal was in der console auszugeben beispiel mit print oder printf was man will

    Nein das funktioniert nicht :D da würde ich wetten. Sowas geht nur wenn du es normal ausgibst also in den Chat aber nicht in eine MSG-Box
    du musst die anderen strings mit einfügen, weil sonst der string überschrieben wird.

    1. Wenn du deine Autos über CreateVehicle erstellst kannst du die Respawnzeit auf -1 setzen


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


    das wäre auch bei AddStaticVehicleEx


    möglich


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


    2.
    sowas ist möglich mit SetVehicleHealth http://wiki.sa-mp.com/wiki/SetVehicleHealth
    dazu kannst du nach dem erstellen der Autos das Leben auf diesen wert bringen.
    Jedoch solltest du das beim respawnen nicht vergessen den wert dann dementsprechend auch wieder zu setzen oder reparieren.
    da es grundsätzlich 1000 ist


    3. Einfach abfragen ob der Motor also die Engine des Polizeiautos an ist, wenn der spieler das Auto betritt OnPlayerEnterVehicle oder was auch geht
    wäre OnPlayerStateChange , welches von den GF Scripts genutzt wird. Dazu nur die Abfrage erweitern ob der Spieler ein Cop ist oder nicht.


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

    dazu hast du die möglichkeit die strings aneinander zu hängen oder mit strins zu arbeiten


    if(SpielerInfo[i][Adminlevel] > 1){format(string,sizeof(string),"%s\n %s - %s",string,SpielerName(i),AdmRang(i));}


    oder wie ich schon gesagt hatte
    mit

    new string2[256];
    format(string,sizeof(string),"%s - %s\n",SpielerName(i),AdmRang(i));
    strins(string2, string, 0);


    @ [BlaZZeR]BirD


    Dir ist hoffentlich bewusst das so der string immer wieder überschrieben wird