Beiträge von Jeffry

    Die Berechnung ist durcheinander und hat eigentlich keine Auswirkung mehr auf das Objekt:
    for(new i = 0; i<sizeof(pCar); i++)
    {
    new Float:vPos[4];
    GetVehiclePos(pCar[i], vPos[0], vPos[1], vPos[2]);
    GetVehicleZAngle(pCar[i], vPos[3]);
    vPos[0] = (-8.0 * floatsin(-vPos[3], degrees));
    vPos[1] = (-8.0 * floatcos(-vPos[3], degrees));
    Object[b][ra_x] = vPos[0],Object[b][ra_y] = vPos[1],Object[b][ra_z] = vPos[2],Object[b][ra_a] = vPos[3];
    if(IsPlayerInRangeOfPoint(playerid, 15.0, Object[b][ra_x], Object[b][ra_y]-2, Object[b][ra_z]))
    {
    ObjectID[playerid] = CreateObject(1632,Object[b][ra_x], Object[b][ra_y], Object[b][ra_z]-3.0, 0, 0, Object[b][ra_a]+0);
    MoveObject(ObjectID[playerid], Object[b][ra_x], Object[b][ra_y], Object[b][ra_z]-1.0, 0.06, 0, 0, Object[b][ra_a]+0);
    SetTimer("BuildObj", 30000, false);
    ObjOwner[playerid] = playerid;
    return 1;
    }
    else return SendClientMessage(playerid, COLOR_ERRORTEXT, "Du bist nicht nah genug am Laster!");
    }

    Ne, das war nur zum testen ob es an MySQL liegt, damit wir uns später nicht zu Tode suchen. Liegt es aber nicht, zum Glück.


    Schreib es so, geht es dann? Ich verstehe dein System noch nicht wirklich, aber vielleicht passt es ja schon.
    stock LoadPlayercar(playerid,slot)
    {
    if(slot == -1)return 1;
    new slotstr[16];
    valstr(slotstr,slot);
    for(new i=0;i<MAX_VEHICLES;i++)
    {
    if(FahrzeugInfo[i][fz_ID] == 0)
    {
    FahrzeugInfo[i][fz_Besitzer] = playerid;
    FahrzeugInfo[i][fz_Typ] = 1;
    FahrzeugInfo[i][fz_Slot] = slot;
    FahrzeugInfo[i][fz_Preis] = mysql_GetInt("userautos","Preis","Slot",slotstr);
    FahrzeugInfo[i][fz_Model] = mysql_GetInt("userautos","Model","Slot",slotstr);
    FahrzeugInfo[i][fz_Farbe1] = mysql_GetInt("userautos","Farbe1","Slot",slotstr);
    FahrzeugInfo[i][fz_Farbe2] = mysql_GetInt("userautos","Farbe2","Slot",slotstr);
    FahrzeugInfo[i][fz_X] = mysql_GetFloat("userautos","X","Slot",slotstr);
    FahrzeugInfo[i][fz_Y] = mysql_GetFloat("userautos","Y","Slot",slotstr);
    FahrzeugInfo[i][fz_Z] = mysql_GetFloat("userautos","Z","Slot",slotstr);
    FahrzeugInfo[i][fz_A] = mysql_GetFloat("userautos","A","Slot",slotstr);
    FahrzeugInfo[i][fz_mod1] = mysql_GetInt("userautos","mod1","Slot",slotstr);
    FahrzeugInfo[i][fz_mod2] = mysql_GetInt("userautos","mod2","Slot",slotstr);
    FahrzeugInfo[i][fz_mod3] = mysql_GetInt("userautos","mod3","Slot",slotstr);
    FahrzeugInfo[i][fz_mod4] = mysql_GetInt("userautos","mod4","Slot",slotstr);
    FahrzeugInfo[i][fz_mod5] = mysql_GetInt("userautos","mod5","Slot",slotstr);
    FahrzeugInfo[i][fz_mod6] = mysql_GetInt("userautos","mod6","Slot",slotstr);
    FahrzeugInfo[i][fz_mod7] = mysql_GetInt("userautos","mod7","Slot",slotstr);
    FahrzeugInfo[i][fz_mod8] = mysql_GetInt("userautos","mod8","Slot",slotstr);
    FahrzeugInfo[i][fz_mod9] = mysql_GetInt("userautos","mod9","Slot",slotstr);
    FahrzeugInfo[i][fz_mod10] = mysql_GetInt("userautos","mod10","Slot",slotstr);
    FahrzeugInfo[i][fz_mod11] = mysql_GetInt("userautos","mod11","Slot",slotstr);
    FahrzeugInfo[i][fz_mod12] = mysql_GetInt("userautos","mod12","Slot",slotstr);
    FahrzeugInfo[i][fz_mod13] = mysql_GetInt("userautos","mod13","Slot",slotstr);
    FahrzeugInfo[i][fz_mod14] = mysql_GetInt("userautos","mod14","Slot",slotstr);
    FahrzeugInfo[i][fz_Tank] = mysql_GetInt("userautos","Tank","Slot",slotstr);
    FahrzeugInfo[i][fz_Opark] = mysql_GetInt("userautos","Opark","Slot",slotstr);
    FahrzeugInfo[i][fz_Glas] = mysql_GetInt("userautos","Glas","Slot",slotstr);
    FahrzeugInfo[i][fz_Panzer] = mysql_GetInt("userautos","Panzer","Slot",slotstr);
    FahrzeugInfo[i][fz_Lock] = 0;
    FahrzeugInfo[i][fz_Radio] = 0;
    if(FahrzeugInfo[i][fz_Model] < 400 || FahrzeugInfo[i][fz_Model] > 611) continue;
    FahrzeugInfo[i][fz_ID] = s_CreateVehicle(FahrzeugInfo[i][fz_Model],FahrzeugInfo[i][fz_X],FahrzeugInfo[i][fz_Y],FahrzeugInfo[i][fz_Z],FahrzeugInfo[i][fz_A],FahrzeugInfo[i][fz_Farbe1],FahrzeugInfo[i][fz_Farbe2],-1);
    new vID = FahrzeugInfo[i][fz_ID];
    FahrzeugInfo[i][fz_Motor] = 0;
    new engine, lights, alarm, doors, bonnet, boot, objective;
    GetVehicleParamsEx(FahrzeugInfo[i][fz_ID], engine, lights, alarm, doors, bonnet, boot, objective);
    SetVehicleParamsEx(FahrzeugInfo[i][fz_ID], engine, lights, alarm, 0, bonnet, boot, objective);
    hbremse[vID][hb_Status] = mysql_GetInt("userautos","HandBremse","Slot",slotstr);
    if(FahrzeugInfo[i][fz_Opark] == 1)
    {
    hbremse[vID][hb_Status] = 2;
    }
    SetVehicleNumberPlate(vID,SpielerName(playerid));
    if(FahrzeugInfo[i][fz_mod1] != -1){AddVehicleComponent(vID,FahrzeugInfo[i][fz_mod1]);}
    if(FahrzeugInfo[i][fz_mod2] != -1){AddVehicleComponent(vID,FahrzeugInfo[i][fz_mod2]);}
    if(FahrzeugInfo[i][fz_mod3] != -1){AddVehicleComponent(vID,FahrzeugInfo[i][fz_mod3]);}
    if(FahrzeugInfo[i][fz_mod4] != -1){AddVehicleComponent(vID,FahrzeugInfo[i][fz_mod4]);}
    if(FahrzeugInfo[i][fz_mod5] != -1){AddVehicleComponent(vID,FahrzeugInfo[i][fz_mod5]);}
    if(FahrzeugInfo[i][fz_mod6] != -1){AddVehicleComponent(vID,FahrzeugInfo[i][fz_mod6]);}
    if(FahrzeugInfo[i][fz_mod7] != -1){AddVehicleComponent(vID,FahrzeugInfo[i][fz_mod7]);}
    if(FahrzeugInfo[i][fz_mod8] != -1){AddVehicleComponent(vID,FahrzeugInfo[i][fz_mod8]);}
    if(FahrzeugInfo[i][fz_mod9] != -1){AddVehicleComponent(vID,FahrzeugInfo[i][fz_mod9]);}
    if(FahrzeugInfo[i][fz_mod10] != -1){AddVehicleComponent(vID,FahrzeugInfo[i][fz_mod10]);}
    if(FahrzeugInfo[i][fz_mod11] != -1){AddVehicleComponent(vID,FahrzeugInfo[i][fz_mod11]);}
    if(FahrzeugInfo[i][fz_mod12] != -1){AddVehicleComponent(vID,FahrzeugInfo[i][fz_mod12]);}
    if(FahrzeugInfo[i][fz_mod13] != -1){AddVehicleComponent(vID,FahrzeugInfo[i][fz_mod13]);}
    if(FahrzeugInfo[i][fz_mod14] != -1){AddVehicleComponent(vID,FahrzeugInfo[i][fz_mod14]);}
    return 1;
    }
    }
    return 1;
    }

    Dann müssen wir es wohl oder üben debuggen. Fangen wir mit dem Speichern an:


    <Code auf Wunsch von [DT]midomen entfernt, wegen Copyright.>


    Was steht im Log, wenn du dein Fahrzeug speicherst? Stimmen die Koordinaten die geprintet werden mit denen überein, die das Fahrzeug wirklich hat (/dl).
    Werden die Werte dann richtig in die Datei geschrieben? Wenn nein, was steht in der Datei?



    EDIT:
    Ich habe es ihm kurz per TeamViewer fertig gemacht.
    Problem waren 10 Warnungen die er ignoriert hat, darunter mehrere Tag Mismatch bei den Positionsvariablen, was dazu geführt hat, dass die Fahrzeuge nicht korrekt erstellt worden sind. Der Code ist korrekt, jetzt funktioniert alles.


    @leader_king: Bitte auf erledigt setzen. Danke dir! :)

    Ok, super. :)


    Das liegt daran, dass du das Objekt ein ganz klein wenig bewegen musst, wenn du es rotieren lassen willst.


    Versuch es mal so:
    if(IsPlayerInRangeOfPoint(playerid,10,699.0999800,-1384.8000000,14.4000000))
    {
    if(IsPlayerInFrakt(playerid,1)||IsPlayerInFrakt(playerid,6)||IsPlayerInFrakt(playerid,16)||IsPlayerAnAdmin(playerid,4))
    {
    MoveObject(pdschranke[0],699.0999800,-1384.8000000,14.4100000,0.001,0.0000000,0.0000000,0.0000000);
    tor[playerid]=1;
    }
    }
    if(IsPlayerInRangeOfPoint(playerid,10,715.7999900,-1384.8000000,14.4000000))
    {
    if(IsPlayerInFrakt(playerid,1)||IsPlayerInFrakt(playerid,6)||IsPlayerInFrakt(playerid,16)||IsPlayerAnAdmin(playerid,4))
    {
    MoveObject(pdschranke[1],715.7999900,-1384.8000000,14.4100000,0.001,0.0000000,0.0000000,180.0000000);
    tor[playerid]=1;
    }
    }



    if(IsPlayerInRangeOfPoint(playerid,10,699.0999800,-1384.8000000,14.4000000))
    {
    if(IsPlayerInFrakt(playerid,1)||IsPlayerInFrakt(playerid,6)||IsPlayerInFrakt(playerid,16)||IsPlayerAnAdmin(playerid,4))
    {
    MoveObject(pdschranke[0],699.0999800,-1384.8000000,14.3900000,0.001,0.0000000,90.0000000,0.0000000);
    tor[playerid]=0;
    }
    }
    if(IsPlayerInRangeOfPoint(playerid,10,715.7999900,-1384.8000000,14.4000000))
    {
    if(IsPlayerInFrakt(playerid,1)||IsPlayerInFrakt(playerid,6)||IsPlayerInFrakt(playerid,16)||IsPlayerAnAdmin(playerid,4))
    {
    MoveObject(pdschranke[1],715.7999900,-1384.8000000,14.3900000,0.001,0.0000000,90.0000000,180.0000000);
    tor[playerid]=0;
    }
    }

    if(sInfo[playerid][LiveLeader] !== getPlayerName(playerid))
    zu:
    if( strcmp(sInfo[playerid][LiveLeader],getPlayerName(playerid)) )


    Da du zwei Strings miteinander vergleichst.

    Entweder ein Fehler im Code oder du hast eine Cheat-Konsole geladen.



    Microsoft .NET Framework 4.5.1 wird benötigt um Programme die mit Microsoft .NET geschrieben worden sind auszuführen.

    for(new i = 0; i<sizeof(pCar); i++)
    {
    GetVehiclePos(pCar[i], vPos[0], vPos[1], vPos[2]);
    GetVehicleZAngle(pCar[i], vPos[3]);
    if(IsPlayerInRangeOfPoint(playerid, 15.0, vPos[0], vPos[1]-2, vPos[2]))
    {
    Object[playerid] = CreateObject(1632, vPos[0], vPos[1], vPos[2]-2.6, 0, 0, vPos[3]+180);
    MoveObject(Object[playerid], vPos[0], vPos[1], vPos[2]-0.01, 0.001, 0, 0, vPos[3]+180);
    ObjectErstellt[playerid] = 1;
    return 1;
    }
    else return SendClientMessage(playerid, COLOR_ERRORTEXT, "Du bist nicht nah genug am Fahrzeug!");
    }


    Falls es zu schnell geht, mach das 0.001 kleiner, also zu 0.0001.

    Dann poste bitte die jeweiligen Zeilen von den Warnungen in deinem Thread (die sind zum Teil auch in den Includes!) und schreibe die Zeilennummer sowie die Fehlermeldung dazu.
    Zwecks des Unknown Gamemode:
    Lade dir das nativechecker-Plugin herunter (Link: Benötige Hilfe Linux) und füge die .dll in /plugins/ ein und trage in der server.cfg das nativechecker als letzte Stelle bei "plugins" ein. Dann starte den Server und poste den Log.