Beiträge von Kaliber

    Damit ist es möglich die Vehicle Seats abzufragen.


    Besser wäre folgendes:


    stock GetVehicleSeatCount(model) {
    static const scMaxPassengers[] = {
    0x10331113, 0x11311131, 0x11331313, 0x80133301, 0x1381F110, 0x10311103, 0x10001F10, 0x11113311, 0x13113311,
    0x31101100, 0x30001301, 0x11031311, 0x11111331, 0x10013111, 0x01131100, 0x11111110, 0x11100031, 0x11130221,
    0x33113311, 0x11111101, 0x33101133, 0x101001F0, 0x03133111, 0xFF11113F, 0x13330111, 0xFF131111, 0x0000FF3F
    };
    if (model < 400 || model > 611) return -1;
    model -= 400,model = (scMaxPassengers[model >>> 3] >>> ((model & 7) << 2)) & 0xF;
    return (model == 0xF) ? -1 : model;
    }


    stock GetVehicleFreeSeat(veh) {
    new m = GetVehicleModel(veh);
    if(!m) return -1;
    new c = GetVehicleSeatCount(m)+1,bool:seat[0xF],x;
    for(new i; i<MAX_PLAYERS; i++) {
    if(!IsPlayerConnected(i) || IsPlayerNPC(i)) continue;
    if(GetPlayerVehicleID(i) == veh) seat[GetPlayerVehicleSeat(i)] = true,x++;
    }
    if(x >= c) return -1;
    for(new i; i<sizeof seat; i++) if(!seat[i]) return i;
    return -1;
    }


    mfg. :thumbup:


    //Edit: Code editiert

    1. Dein Code wird nicht funktionieren, schreibe das mal so:



    2. Du musst die Klasse auch inkludieren. Sprich: require_once('name.class');


    mfg. :thumbup:

    Zu dem mit den Filterscript habe alle Removes in OnplayerConnect eingefügt.


    Dann musst du auch das Filterscript laden, bevor du auf den Server joinst ;)


    Also zu deinem Mann kann nicht zu viel haben. Bei mir war es so das ich alle Ampeln entfernt hatte und diese eingefügt habe. Dann konnte ich mich nicht mehr anmelden also beim Login.


    Dann hast du da irgendeinen Fehler gemacht mit klammern oder returns oder was weiß ich...


    Aufjedenfall funktioniert das auch wenn du da 1000 Zeilen davon reinpackst :D


    mfg. :thumbup:

    Also ich habe es mit einem Filterscript versucht.


    Aber dort werden die RemoveBuildings nicht geladen.


    Doch auch in einem Filterscript werden removeBuildings geladen. (wenn man es richtig macht)


    Und zwar habe ich gemerkt das ich zu viele RemoveBuildingsForPlayer habe.


    Man kann nicht zu viele RemoveBuildings haben :)


    Den ich wollte gerne Alle Ampeln Entfernen und dachte jemand weiss vielleicht rat.


    Füge diesen Code ein:


    RemoveBuildingForPlayer(playerid, 1315, 2228.0859, -2506.7734, 15.8125, 60000.25);
    RemoveBuildingForPlayer(playerid, 1315, 2213.9297, -2498.3984, 15.8125, 60000.25);
    RemoveBuildingForPlayer(playerid, 3855, -2534.5781, 330.8672, 18.8203, 60000.25);
    RemoveBuildingForPlayer(playerid, 3855, -2549.3047, 336.2109, 18.6172, 60000.25);
    RemoveBuildingForPlayer(playerid, 1350, -2365.4609, 513.1719, 28.2109, 60000.25);
    RemoveBuildingForPlayer(playerid, 1350, -2363.9063, 496.9844, 29.3594, 60000.25);
    RemoveBuildingForPlayer(playerid, 1284, -1886.6250, 931.7031, 37.3047, 60000.25);
    RemoveBuildingForPlayer(playerid, 1284, -1912.0625, 932.0156, 37.3047, 60000.25);
    RemoveBuildingForPlayer(playerid, 1283, -1902.8828, 906.5313, 37.2422, 60000.25);
    RemoveBuildingForPlayer(playerid, 1283, -1902.8516, 945.3125, 37.2422, 60000.25);
    RemoveBuildingForPlayer(playerid, 1350, 1717.7813, 1265.4766, 9.7891, 60000.25);
    RemoveBuildingForPlayer(playerid, 1350, 1737.2969, 1282.8281, 9.9688, 60000.25);


    mfg. :thumbup:

    Mein Problem liegt jetzt ja nicht an einem fehlenden Algorithmus, sondern daran, wie ich von der Distanzberechnung wieder auf die richtigen Koordinaten im Array verweise.
    "dist" speichert ja die Distanz zu jedem Punkt und wird dann praktisch aufsteigend sortiert. Wie kann ich zurückverfolgen welche Distanz zu welchen Koordinaten gehören?


    Achsoo :D


    Jetzt verstehe ich was du da versuchst, schreibe es so:


    public OnPlayerDeath(playerid, killerid, reason)
    {
    new Float:dist[3];
    dist[0] = GetPlayerDistanceFromPoint(playerid, Hospitals[0][0], Hospitals[0][1], Hospitals[0][2]);
    dist[1] = GetPlayerDistanceFromPoint(playerid, Hospitals[1][0], Hospitals[1][1], Hospitals[1][2]);
    dist[2] = GetPlayerDistanceFromPoint(playerid, Hospitals[2][0], Hospitals[2][1], Hospitals[2][2]);


    new idx = d_Sort(dist, sizeof dist);


    PostDeathSpawn[playerid][0] = Hospitals[idx][0];
    PostDeathSpawn[playerid][1] = Hospitals[idx][1];
    PostDeathSpawn[playerid][2] = Hospitals[idx][2];
    return 1;
    }


    stock d_Sort(const Float:x[], const anz) {
    new t;
    for (new i=1,Float:tmp=x[0]; i < anz; i++) if(x[i] < tmp) t=i,tmp=x[i];
    return t;
    }


    mfg. :thumbup:

    dBoden =CreateObject(13607, 1478.07996, -1799.66003, 227.06000, 0.00000, 0.00000, 0.00000);
    MoveObject(dBoden,1478.07996, -1799.66003, 227.06000, 0.00000, 0.00000, 90.00000);
    SetTimerEx("TurnObject", 750, 0, "dd", dBoden, 0);


    Das MoveObject da mach mal zu:


    MoveObject(dBoden,1478.07996, -1799.66003, 227.06000, OBJECT_SPEED, 0.00000, 0.00000, 90.00000);


    mfg. :thumbup:

    cache_get_data(rows, fields);


    Schreib mal darunter:


    printf("rows: %d | fields: %d",rows,fields);


    Nur sieht das mit dem Payday jetzt so aus.


    Zeig uns mal wie du dir das anzeigen lässt :)


    Und zu dem Command...why no using sscanf?!


    if(strcmp(cmd, "/ajail", true) == 0)
    {
    if(!PlayerInfo[playerid][pAdmin]) return SendClientMessage(playerid, COLOR_GRAD1, " Du darfst diesen Befehl nicht benutzen!");
    tmp = strtok(cmdtext, idx);
    if(!tmp[0]) return SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /ajail [Spieler ID / Name] [Zeit in Minuten] [Grund]");
    new playa, money, grund[64];
    if(sscanf(tmp,"uds[64]",playa,money,grund)) return SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /ajail [Spieler ID / Name] [Zeit in Minuten] [Grund]");
    if(playa == playerid) return SendClientMessage(playerid, COLOR_GRAD1, "Du kannst nicht dich selber einsperren!");
    if(PlayerInfo[playerid][pAdmin] < PlayerInfo[playa][pAdmin]) return SendClientMessage(playerid, COLOR_GRAD1, "Du kannst keinen höherrangigen Admin einsperren!");
    if(!IsPlayerConnected(playa)) return SendClientMessage(playerid, COLOR_GRAD1, "Ein Spieler mit dieser ID ist nicht online!");
    GetPlayerName(playa, giveplayer, sizeof(giveplayer)),GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "* Du hast %s eingesperrt. Grund: %s", giveplayer,grund);
    SendClientMessage(playerid, COLOR_LIGHTRED, string);
    format(string, sizeof(string), "* Du wurdest von Admin %s in das Admin-Jail gesperrt. Grund: %s", sendername,grund);
    SendClientMessage(playa, COLOR_LIGHTRED, string);
    ResetPlayerWeapons(playa),WantedPoints[playa] = 0;
    PlayerInfo[playa][pJailed] = 1;
    PlayerInfo[playa][pJailTime] = money*60;
    SetPlayerInterior(playa, 3);
    SetPlayerPos(playa, 197.8290,161.8141,1003.0300);
    format(string, sizeof(string), "Du wurdest für %d Minuten eingesperrt.[Zu unrecht ? Melde dich im Teamspeak3]", money);
    return SendClientMessage(playa, COLOR_LIGHTBLUE, string);
    }


    mfg. :thumbup:

    SortDeepArray(dist, 0, SORT_ASC); //ERROR LINE


    Du sortierst ein 1 dimensionales Array und verwendest es danach nicht mehr? :huh:


    Ich hab dir mal einen kleinen Algorithmus geschrieben, der 1 dimensionale Arrays sortiert:


    //Schreib das so:
    new Float:dist[3];
    dist[0] = GetPlayerDistanceFromPoint(playerid, Hospitals[0][0], Hospitals[0][1], Hospitals[0][2]);
    dist[1] = GetPlayerDistanceFromPoint(playerid, Hospitals[1][0], Hospitals[1][1], Hospitals[1][2]);
    dist[2] = GetPlayerDistanceFromPoint(playerid, Hospitals[2][0], Hospitals[2][1], Hospitals[2][2]);


    d_Sort(dist, sizeof dist);
    //Und du solltest hier dann auch dist verwenden...



    //unten im Skript
    stock d_Sort(Float:x[], const anz) {
    for (new i,Float:tmp,j; i < anz; i++) {
    for (j=0; j < anz - i - 1; j++) {
    if (x[j] > x[j + 1]) tmp = x[j],x[j] = x[j + 1],x[j + 1] = tmp;
    }
    }
    return 1;
    }


    mfg. :thumbup:

    Ich hab dir mal so ein kleines Skript erstellt:


    PHP
    <!DOCTYPE HTML><html><head><meta charset="UTF-8" /><title>4*4 Fläche</title><style type="text/css"><!--td:hover { background-color:red; }--></style><script language="javascript" type="text/javascript"><!--const width="64px",dicke="6px",x=4,y=4;function CreateGUI() {    var doc = "<table border='1'>";    for(var i=0; i<x; i++) {        doc = doc + "<tr>";        for(var j=0; j<y; j++) {            doc = doc + "<td width='"+width+"' height='"+width+"' cellpadding='"+dicke+"'></td>";        }        doc = doc + "</tr>";    }    return document.getElementById("content").innerHTML = doc + "</table>";}--></script></head><body onload="CreateGUI();"><div id="content"></div></body></html>


    Hoffe es hilft dir ein wenig ;)


    mfg. :thumbup:


    //Edit: Die Klasse des Elements war unnötig...