Beiträge von Haxler

    @!Erkan!: Denkst du wirklich dein vermutlich aus einem GF kopierter Code hilft ihm weiter?
    @Topic: Was genau hast du denn bis jetzt schon geschafft? Wenn wir dir helfen sollen benötigen wir genauere Infos.

    Bin genau deiner Meinung midomen. Mein Rang und meine Beitragszahl haben mich noch nie richtig interessiert. Von daher halte ich deinen Vorschlag nur für eine weitere, unnötige Veränderung die keinen positiven Effekt hat...

    Du könntest mit
    stock GetXYZInfrontOfVehicle(vehid,Float:distance,&Float:x,&Float:y,&Float:z)
    {
    new Float:Quaternion[4];
    new Float:transformationmatrix[4][4];


    GetVehicleRotationQuat(vehid, Quaternion[0], Quaternion[1], Quaternion[2], Quaternion[3]);


    new Float:xx = Quaternion[0] * Quaternion[0];
    new Float:xy = Quaternion[0] * Quaternion[1];
    new Float:xz = Quaternion[0] * Quaternion[2];
    new Float:xw = Quaternion[0] * Quaternion[3];
    new Float:yy = Quaternion[1] * Quaternion[1];
    new Float:yz = Quaternion[1] * Quaternion[2];
    new Float:yw = Quaternion[1] * Quaternion[3];
    new Float:zz = Quaternion[2] * Quaternion[2];
    new Float:zw = Quaternion[2] * Quaternion[3];


    transformationmatrix[0][0] = 1 - 2 * ( yy + zz );
    transformationmatrix[0][1] = 2 * ( xy - zw );
    transformationmatrix[0][2] = 2 * ( xz + yw );
    transformationmatrix[0][3] = 0.0;


    transformationmatrix[1][0] = 2 * ( xy + zw );
    transformationmatrix[1][1] = 1 - 2 * ( xx + zz );
    transformationmatrix[1][2] = 2 * ( yz - xw );
    transformationmatrix[1][3] = 0.0;


    transformationmatrix[2][0] = 2 * ( xz - yw );
    transformationmatrix[2][1] = 2 * ( yz + xw );
    transformationmatrix[2][2] = 1 - 2 * ( xx + yy );
    transformationmatrix[2][3] = 0;


    transformationmatrix[3][0] = 0;
    transformationmatrix[3][1] = 0;
    transformationmatrix[3][2] = 0;
    transformationmatrix[3][3] = 1;
    GetVehiclePos(vehid,x,y,z);
    z +=( -1 * transformationmatrix[0][1] + transformationmatrix[0][3])*distance;
    y +=( -1 * transformationmatrix[1][1] + transformationmatrix[1][3])*distance;
    x +=( -(-1 * transformationmatrix[2][1] + transformationmatrix[2][3]))*distance;
    }
    //http://forum.sa-mp.com/showthread.php?t=298215

    und GetVehicleModelInfo die ungefähren Koordinaten des Kofferraums herrausfinden.



    new Float:X, Float:Y, Float:Z;
    GetVehicleModelInfo(GetVehicleModel(vehid), VEHICLE_MODEL_INFO_SIZE, X, Y, Z);
    GetXYZInfrontOfVehicle(vehid,-Y,X,Y,Z);


    Das ganze ist ungetestet, wenn du möchtest helf ich dir gerne, adde mich in ICQ oder schreib mir ne PN :)


    EDIT: Hier mal ein Test-Befehl:

    COMMAND:test(playerid,params[])
    {
    new vehid = GetPlayerVehicleID(playerid);
    new Float:X, Float:Y, Float:Z;
    GetVehicleModelInfo(GetVehicleModel(vehid), VEHICLE_MODEL_INFO_SIZE, X, Y, Z);
    GetXYZInfrontOfVehicle(vehid,-Y/2.0,X,Y,Z);
    CreateObject(345,X,Y,Z,0,0,0,10.0);
    return 1;
    }


    habe es mit einigen Fahrzeugen getestet, das Objekt wird ungefähr am Kofferraum erstellt.


    stock Anmelden(playerid,key[])
    {
    new Spielerdatei[64];
    new Name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Name,sizeof(Name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",Name);
    printf("Passwort: %s | %s",key,dini_Get(Spielerdatei,"Passwort"));
    if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false))
    {
    SpielerLaden(playerid);
    SendClientMessage(playerid,FARBE_GRUEN,"Willkommen, du hast dich mit Erfolg eingeloggt!");
    SpawnPlayer(playerid);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,FARBE_ROT,"FALSCHES PASSWORT");
    ShowPlayerDialog(playerid,DIALOG_ANMELDEN,DIALOG_STYLE_INPUT,"Anmelden","Willkommen dein Account wurde gefunden.\nGebe bitte dein Passwort ein:","Anmelden","Abbrechen");
    return 1;
    }
    }


    Danach müsste im Serverlog "Passwort: ... | ..." stehen. Ich glaube aber eher es liegt daran, dass du die Datei von Hand bearbeiten wolltest. Kann dir zwar gerade nicht genau sagen woran es liegt, aber wenn du die Datei mit dem normalen Windows Editor öffnest und speicherst stimmt manchmal etwas mit den Zeichen nicht mehr. (Vielleicht kann ja jemand genauer erläutern wieso das so ist etc.)

    Lass dir mal beide Passwörter in deiner Anmelde-Funktion ausgeben, das eingetippte sowie das gespeicherte:
    printf("Passwort: %s | %s",key,dini_Get(Spielerdatei,"Passwort"));
    damit kannst du ausschließen, dass das Passwort falsch an die Funktion übergeben wird bzw. falsch aus der Datei gelesen wird.


    edit: Oh total überlesen

    Zitat

    manchmal is vor dem passwort in der txt son zeichen üy also über dem y zwei punkte.

    . Hast du deine Spieler-Datei mit dem Editor geöffnet und bearbeitet?

    Zitat

    es liegt am include <a_samp> wenn das weg ist schmiert das script ab


    Versteh ich das richtig? Wenn du die a_samp.inc nicht einbindest schmiert dir das Script ab? Die Datei musst du natürlich einbinden! Falls du meinst, dass der Compiler auch mit der Datei abschmiert, wirst du wohl einen Fehler im Script haben. Wenn du Pawno noch nicht geschlossen/neu gestartet hast kannst du per STRG + Z die letzten Änderungen rückgängig machen, vielleicht hast du einfach nur irgendwo ein falsches Zeichen gesetzt, das nicht an die Stelle gehört.

    Hast du auch das RCON-Passwort in der server.cfg geändert? Falls du diese Datei auch überschrieben hast, einfach anstatt changeme ein beliebiges Passwort verwenden.

    Mit SetObjectMaterialText wird lediglich die Textur des Objekts verändert. Löschen kannst du es wie gewohnt mit DestroyObject, updaten müsste mit einem erneuten Aufruf von SetObjectMaterialText funktionieren. Falls nicht: Lösche das Objekt, erstell es neu und ändere
    die Textur per SetObjectMaterialText.

    Geh auf sa-mp.com, lad dir das Server-Paket runter und ersetz die alten Include-Dateien mit den neuen. Einfach aus dem /pawno/includes Ordner des Server-Pakets kopieren und in deinen /pawno/include Ordner einfügen :D

    Zitat

    Those are all things added in 0.3e, which must mean you haven't installed it correctly!


    Verwendest du eine ältere Version als 0.3e? Falls ja: Entweder du lädst dir die neuen Server-Dateien runter oder du verwendest eine ältere Version vom Streamer-Plugin.

    PuSchKiiN_x3 hat's dir doch extra rot markiert. Parameter trennst du mit einem Komma, nicht zwei:


    Zitat

    BallasVehs[1] = AddStaticVehicle(507,759.2284,-1711.8137,6.3363,0.3759,,22,22); // BHELI


    zu

    Zitat

    BallasVehs[1] = AddStaticVehicle(507,759.2284,-1711.8137,6.3363,0.3759,22,22); // BHELI

    Zitat

    Also das ist wenn bei einem Spieler der austausch zwischen den Server Paketen unterbricht & dann der Spieler bei anderen nur noch doof rum steht.


    Wenn kein Austausch mehr stattfindet dürfte OnPlayerUpdate auch nicht mehr ausgeführt werden, damit könntest du das ganze dann überprüfen. Korrigiert mich wenn ich falsch liege^^


    EDIT: Da ich noch nie von diesem Bug gehört habe könnte es auch sein, dass du in OnPlayerUpdate 0 zurückgibst, wodurch der Spieler nicht mehr mit anderen synchronisiert wird -> Der Spieler steht nur 'dumm' rum.

    Meinst du sowas in der Art?



    stock GetHighestValue(array[],len = sizeof(array))
    {
    new id, last = 0;
    for(new i;i<len;i++)
    {
    if(array[i] > last)
    {
    id = i;
    last = array[i];
    continue;
    }
    }
    return id;
    }



    new array[10] = {1, 9, 59, -55, 23, 102, 35, 992, 91,10};
    printf("%d",GetHighestValue(array)); //würde 7 ausgeben (992)

    Zitat

    format(string,sizeof(string),"Du hast den Spieler %s, den Skin %i gegeben!",pID, skinID);


    fällt dir was auf? pID ist eine Zahl und kein String. Versuchs mal mit PlayerName(pID) statt pID und das ganze beim 2. format auch.