Beiträge von Jeffry

    Bei diesen beiden Befehlen musst du dann beim /annehmen Befehl
    SetPlayerPos(playerid, x,y,z);
    SetPlayerPos(id, x,y,z);
    //SetPlayerFacingAngle...
    machen.


    x,y,z ersetzt du mit den Koordinaten.

    Dann musst du die Zeit etwas eingrenzen.


    Unter den Includes:
    new warteZeit[MAX_PLAYERS];


    Beim Klicken:
    if(warteZeit[playerid] > GetTickCount()) return 1;
    warteZeit[playerid] = GetTickCount() + 1000;


    OnPlayerConnect:
    warteZeit[playerid] = 0;

    Nein, genau andersherum. Das ist die Geschwindigkeit. Je mehr du aufs Gaspedal drückst, desto schneller fährst du, sprich desto schneller fällt der Baum. :D

    MoveObject(Baeume[i][baumid_x],Baeume[i][baum_x],Baeume[i][baum_y],Baeume[i][baum_z]+0.1,0.005,0.0,90.0,0.0);


    Du musst die Position ein kleines Bisschen ändern, und den Baum gaaanz langsam bewegen lassen. Gegebenenfalls musst du die Geschwindigkeit noch anpassen (0.005).

    Baeume[i][moverot_y] += 20.0;
    Ist gleich wie
    Baeume[i][moverot_y] = Baeume[i][moverot_y] + 20.0;



    Baeume[i][moverot_y] + 20.0;
    Ist falsch.

    Speichere den Wert der Rotation in einer Variable (so wie baumid_x) und erhöhe diese immer um 20, wenn es bewegt werden soll.
    Baeume[i][moverot_y] += 20.0;
    MoveObject(Baeume[i][baumid_x],2039.2761,1334.7701,10.6719,2.0,0.0,Baeume[i][moverot_y],0.0);

    Versuche ob es so schon hilft.
    format(query,sizeof(query),"UPDATE "#DATENBANK"_fraktionen SET frakmaterial = '%d', frakgeld = '%d', marihuana = '%d', koks = '%d', crystle = '%d', lsd = '%d', gras = '%d' WHERE frakid = '%d'",FrakInfo[frak][frakmaterial],FrakInfo[frak][frakgeld],FrakInfo[frak][fMarihuana],FrakInfo[frak][fKoks],FrakInfo[frak][fCrystle],FrakInfo[frak][fLSD],FrakInfo[frak][fGras],frak);
    zu:
    format(query,sizeof(query),"UPDATE "#DATENBANK"_fraktionen SET frakmaterial = '%d', frakgeld = '%d', marihuana = '%d', koks = '%d', crystle = '%d', lsd = '%d', gras = '%d' WHERE frakid = '%d'",FrakInfo[frak][frakmaterial],FrakInfo[frak][frakgeld],FrakInfo[frak][fMarihuana],FrakInfo[frak][fKoks],FrakInfo[frak][fCrystle],FrakInfo[frak][fLSD],FrakInfo[frak][fGras],frak+1);


    PS: Dieser Thread ist für kleine Fragen, nicht für solche großen Codes, gedacht.

    Ok, das ist schonmal gut.
    Jetzt ändere in der Skin-Auswahl:
    Spieler[playerid][pSkin] = GetPlayerSkin(playerid);
    zu:
    printf("Skin Ausgewählt: %d", GetPlayerSkin(playerid));
    Spieler[playerid][pSkin] = GetPlayerSkin(playerid);


    Was steht dann im Server Log, wenn du den Skin auswählst und spawnst?
    Es geht jetzt darum, zu erkennen ob der Wert da gespeichert wird. Wenn ja, dann ist es relativ leicht zu beheben.

    Das liegt möglicherweise daran, dass du anderen Neons in deinem Server ebenso falsch erstellst, sprich über die playerid, und diese nicht gelöscht werden, wenn das Fahrzeug gelöscht wird.
    Oder du löschst die Neons allgemein nicht, wenn ein Fahrzeug gelöscht wird.

    Nein, das war nicht das Problem. Das Problem war, dass du es bei 0 zu 1 gesetzt hast, und direkt drunter abgefragt hast ob es 1 ist, wenn ja zu 0 gesetzt hast. Somit ist es immer 0 geblieben.


    if(sInfo[playerid][spawnchange] ==0) //Ja
    {
    sInfo[playerid][spawnchange]=1; //Setze zu 1
    }
    if(sInfo[playerid][spawnchange] ==1) //Wieder ja (es ist ja zu 1 gesetzt worden)
    {
    sInfo[playerid][spawnchange]=0; //Setze zu 0
    }
    //-> Es konnte immer nur 0 raus kommen. Daher "else" verwenden.

    AttachObjectToVehicle(neon[vehicleid], vehicleid, 0.8,0,-0.70,0,0,0);
    AttachObjectToVehicle(neon1[vehicleid], vehicleid, -0.8,0,-0.70,0,0,0);
    Sonst klappt es nicht.

    Jein.
    Du müsstest die Neons auch abhängig von der Vehicle-ID speichern.
    SetPVarInt(playerid, "neon", CreateObject(18651,0,0,0,0,0,0,283));
    zu:
    neon[vehicleid] = CreateObject(18651,0,0,0,0,0,0,283);


    Sodass du es über die vehicleid löschen kannst, wenn das Fahrzeug gelöscht wird.