Beiträge von SLaYz

    Du könntest


    for(new i = 0; i < MAX_HOUSES; i++)


    durch
    for(new i = 0; i < num_rows; i++)


    ersetzen, dann nimmt er nur die 8 Einträge aus der Datenbank.



    Versuch es mal damit:


    ocmd:enterexit(playerid,params[])
    {
    for(new i=0; i<sizeof(hInfo); i++)
    {
    if(GetPlayerVirtualWorld(playerid)!=i)continue;
    if(!IsPlayerInRangeOfPoint(playerid,8,hInfo[i][ih_x],hInfo[i][ih_y],hInfo[i][ih_z]))continue;
    if(GetPlayerVirtualWorld(playerid) == hInfo[i][h_id])
    {
    SetPlayerPos(playerid, hInfo[i][h_x], hInfo[i][h_y], hInfo[i][h_z]);
    SetPlayerInterior(playerid, 0);
    SetPlayerVirtualWorld(playerid, 0);
    }
    return 1;
    }
    for(new i=0; i<sizeof(hInfo); i++)
    {
    if(!hInfo[i][h_id])continue;
    if(hInfo[i][ih_x]==0.0)continue;
    if(!IsPlayerInRangeOfPoint(playerid,2,hInfo[i][h_x],hInfo[i][h_y],hInfo[i][h_z]))continue;
    SetPlayerPos(playerid,hInfo[i][ih_x],hInfo[i][ih_y],hInfo[i][ih_z]);
    SetPlayerInterior(playerid,hInfo[i][h_interior]);
    SetPlayerVirtualWorld(playerid,hInfo[i][h_id]);
    if(IsPlayerMieter(playerid,hInfo[i][h_id])) SendClientMessage(playerid,COLOR_GRAY,"Mieter...");
    return 1;
    }
    return 1;
    }


    * Es ist nur eine kleine Änderung drin, sollte aber normal gehen.

    Hast du denn nur die VirtualWelt Codedes mal geändert?


    Das mit dem MySQL-Log liegt daran, das du bestimmt eine Schleife durchgehst die bis 500 geht (MAX_HOUSE, ka). Du könntest aber auch einfach alle vorhandenen Daten durchgehen und nich jeden einzelnen aus der Datenbank hohlen. Zeig mal deine Lade-Funktion der Häuser.

    Ich meine es so:


    Wenn ein Spieler in ein Haus geht
    SetPlayerVirtualWorld(playerid,hInfo[i][h_id]);


    und beim Ausgang im Haus
    if(GetPlayerVirtualWorld(playerid) == hInfo[i][h_id])...



    ocmd:enterexit(playerid,params[])
    {
    for(new i=0; i<sizeof(hInfo); i++)
    {
    if(GetPlayerVirtualWorld(playerid) == hInfo[i][h_id])
    {
    if(!IsPlayerInRangeOfPoint(playerid,8,hInfo[i][ih_x],hInfo[i][ih_y],hInfo[i][ih_z]))continue;
    SetPlayerPos(playerid, hInfo[i][h_x], hInfo[i][h_y], hInfo[i][h_z]);
    SetPlayerInterior(playerid, 0);
    SetPlayerVirtualWorld(playerid, 0);
    }
    return 1;
    }
    for(new i=0; i<sizeof(hInfo); i++)
    {
    if(!hInfo[i][h_id])continue;
    if(hInfo[i][ih_x]==0.0)continue;
    if(!IsPlayerInRangeOfPoint(playerid,2,hInfo[i][h_x],hInfo[i][h_y],hInfo[i][h_z]))continue;
    SetPlayerPos(playerid,hInfo[i][ih_x],hInfo[i][ih_y],hInfo[i][ih_z]);
    SetPlayerInterior(playerid,hInfo[i][h_interior]);
    SetPlayerVirtualWorld(playerid, hInfo[i][h_id]);
    if(IsPlayerMieter(playerid,hInfo[i][h_id])) SendClientMessage(playerid,COLOR_GRAY,"Mieter...");
    return 1;
    }
    return 1;
    }

    Setzt von dem jewaligen Haus die HausID als Virtuellewelt und prüfe beim Ausgang, ob der Spieler in der nähe des jewaligen Ausgangs mit der Virtuellenwelt ist.
    Oder erstelle eine Spieler-Variabele mit der HausID die dort Zwichengespeicher wird, und rufe diese dann ab.

    Jedesmal wenn der Timer aufgerufen wird, wird dein Stream erneut abgespielt. Das liegt daran, das du die Variabele: audiospielt beim Aufrufen des Timers immer wieder auf 0 setzt. Nutze statdessen die Variabele außerhalb deiner Timerfunktion dann sollte es klappen.

    Wenn du willst, kann ich dir das auch eben per TV einrichten.



    Problem behoben, Server funktioniert nun mit dem gewünschtem Admin-Tool.



    Mit freundlichen Grüßen
    SLaYz

    Dieser sollte gehen (Tested) : http://online-source.net/tools…-source-server-cfg-maker/


    Alternativ kannst du Mani-Admin auch über MetaMod laufen lassen.



    Hier die VDF-Datei. Du kannst einfach eine Datei mit dem Namen: mani_admin_plugin.vdf erstellen und dann die Linux oder Windows Plugin Include einfügen.