Beiträge von iNTiMEE

    manchmal hat es einen sehr einfachen Grund undzwar query [128].. 128 Zeichen reichen nicht aus. Versuch einfach mal 256 oder eine noch grössere zahl daraus zu machen und probiers nochmal aus.


    Also beim laden und speichern einfach
    new query [128]; --> new query [256]

    Auf nem server damals hat man das mit timern gelöst denke ich.
    Also sobald man sich ausloggt wird ort und zeit gespeichert. Und loggst du dich innerhalb der nächsten 15 minuten wieder ein, bist du da wo du zuletzt warst. Sind es länger als 15 minuten werden spieler und auto respawnt. Also bei sind dann am haus.


    -bin am handy und hab kb auf gross kleinschreibung zu achten :D

    Mach es so, dass bevor du ein Interior betrittst, dass deine Koordinaten gespeichert werden. Das kannst du am einfachsten, für vorübergehene Variablen mit



    new Float:X, Float:Y, Float:Z;
    GetPlayerPos(playerid, X, Y, Z);
    SetPVarFloat(playerid, "LastpX",X);
    SetPVarFloat(playerid, "LastpY",Y);
    SetPVarFloat(playerid, "LastpZ",Z);


    Wenn du dann aus dem Interior rausgehst, Setzt du einfach deine Position dorthin.

    Zeig mal wie du die mysql_query machst.


    Was mir so auf dem ersten Blicks ins Auge fällt, ist, dass du ne for schleife verwendest, die 12 mal durchgeführt wird, du aber jedesmal aus der Reihe 0 ausliest.


    pWaffenID[i] = cache_get_field_content_int(0,wString,dbhandle);

    Wo genau speicherst du es da in der Datenbank ab?


    1. Benutze für playerids..
    if (sscanf (params,"u",pID))


    Bin mir nicht mehr sicher ob das ein muss ist..


    2. Du hast 2 denkfehler in 1 Zeile.


    pInfo [playerid][warn] =1;
    änderst du in
    pInfo [pID][warn] +=1; //Variable muss hochgezählt werden, da Sie sonst jedes mal auf 1 gesetzt werden würde

    dann kann amn beim kill system einfach abfragen, wieso der spieler getötet wurde.
    Oder wenns einfach nur um die stats geht..
    pInfo [playerid][tode] -= 1;
    Und dann hats man wieder ausgeglichen :D

    also auf den player gucken ist ja einfach. SetPlayerCameraLookAt setzt du mit deinem SetPlayerPos gleich.


    Es gibt mehrere möglichkeiten, wie du in die luft kannst..
    1. Gibt es glaub ich einen fly filterscript. (Ist aber etwas umständlich).
    2. Du suchst dir einen Ort aus wo die kamera später schweben soll. Stellst dich dorthin und änderst im Script deine Koordinate für die höhe. Zbb 144.123456 änderst du in 150.123456 dann ist deine Kamera genau 6 einheiten höher.
    3. Ich denke du könntest dir auch einen jetpack geben, oder heli, qie du es haben willst. Und fliegst du dem Punkt wo du es haben willst.

    zu Frage 1.


    format (string,sizeof (string),"[Fraktion][Rank : %d] %s:%s", pInfo [playerid][rank],name,cmdtext);
    Das hab ich jetzt am handy geschrieben. Musst du selbst so anpassen wie du es haben willst.


    Zu Frage 2:
    Mit diesem Befehl kannst du eine Message an jeden Spieler senden lassen, falls dein Adminrang 1 oder höher ist.

    Das dürfte meiner Meinung nach nicht funktionieren, da du versuchst einen bereits gespawnten player zu spawnen. Entweder verzichtest du auf spawnplayer und benutzt einfach setplayerpos...
    Oder versuch es den Spieler einfach zu killen, mit
    SetPlayerHealth (playerid, 0);
    Dann kannst du ihn auch spawnen lassen.

    du kannst ingame dein charakter so platzieren wie du es haben willst. Gibst in den chat einfach '/save KOMMENTAR' ein. Dies wird unter Dokumente>Gta sa user files>samp>savedpositions.txt gespeichert. Dort suchst du dir die koordinaten raus.
    X Y Z und A (blickrichtung).
    Dann fügst du unter dem code bei onplayerrequestclass einfach SetPlayerFacingAngle (playerid, A); , ein.

    Ja wie gesagt, du überprüfst ob der Spieler 'player' gerade auf dem Sitz 0 sitzt.. Falls Ja, dann soll der neue Spieler auch auf 0 gesetzt werden. Du musst false returnen, statt true. Dann müsste es klappen.



    if(IsPlayerInVehicle(player,vehicleid))
    if(GetPlayerVehicleSeat(player) == 0) seat[0] = false;


    also du kannst die Skin id in deiner MYQSL DB, oder wo auch immer du die speicherst..
    Bei der Skinauswahl machst du:


    pInfo[playerid][skinid] = GetPlayerSkin(playerid);


    und beim Einloggen, da wo du dein Account lädst, musst du die skinid wieder auslesen und danach machst du:


    SetSpawnInfo(playerid, 0, pInfo[playerid][skinid], X, Y, Z, A, Waffe1, Ammo1, Waffe2, Ammo2, Waffe3, Ammo3);
    SpawnPlayer(playerid);


    somit überspringst du die Skinauswahl