erledigt

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • also so ?
    //Eine Sekunden Timer
    forward GrandTimer();
    public GrandTimer()
    {
    for(new i;i<MAX_PLAYERS;i++)
    {
    if(!IsPlayerConnected(i))return 1;
    if(IsPlayerNPC(i))return 1;
    new string[300], query[128];
    //Haussystem Textdraw
    for(new haus=1;haus<MAX_HAUS;haus++)
    {
    if(HausInfo[haus][hauscreatet] != 0)
    {
    if(IsPlayerInRangeOfPoint(i,2,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]))
    {
    if(GetString(HausInfo[haus][haus_besitzer],"Niemand"))
    {
    format(string,sizeof(string),"Hausnummer: %i",haus);
    PlayerTextDrawSetString(i,HausLabelTD[i][9],string);
    format(string,sizeof(string),"Besitzer: ~w~Haus zum Verkauf");
    PlayerTextDrawSetString(i,HausLabelTD[i][1],string);
    format(string,sizeof(string),"Kosten: ~w~%i$",HausInfo[haus][haus_preis]);
    PlayerTextDrawSetString(i,HausLabelTD[i][2],string);
    format(string,sizeof(string),"Miete: ~w~%i$",HausInfo[haus][haus_miete]);
    PlayerTextDrawSetString(i,HausLabelTD[i][3],string);
    format(string,sizeof(string),"Level: ~w~%i",HausInfo[haus][haus_level]);
    PlayerTextDrawSetString(i,HausLabelTD[i][4],string);
    format(string,sizeof(string),"Mieter Slots: ~w~%i/%i",HausInfo[haus][haus_eingemitetenzaehler],HausInfo[haus][haus_slots]);
    PlayerTextDrawSetString(i,HausLabelTD[i][5],string);
    mysql_format(MySqlConnection,query,sizeof(query),"SELECT * FROM "#SQLTAG"_account_main WHERE `HausMieter` = '%d'", haus);
    mysql_function_query(MySqlConnection,query,true,"LoadHouseRentFinish","siii",query,_SQL_HOUSEMIETER_LOAD,0,MySqlConnection);
    PlayerTextDrawShow(i,HausLabelTD[i][0]);
    PlayerTextDrawShow(i,HausLabelTD[i][1]);
    PlayerTextDrawShow(i,HausLabelTD[i][2]);
    PlayerTextDrawShow(i,HausLabelTD[i][3]);
    PlayerTextDrawShow(i,HausLabelTD[i][4]);
    PlayerTextDrawShow(i,HausLabelTD[i][5]);
    PlayerTextDrawShow(i,HausLabelTD[i][6]);
    PlayerTextDrawShow(i,HausLabelTD[i][7]);
    PlayerTextDrawShow(i,HausLabelTD[i][8]);
    PlayerTextDrawShow(i,HausLabelTD[i][9]);
    }
    else
    {
    format(string,sizeof(string),"Hausnummer: %i",haus);
    PlayerTextDrawSetString(i,HausLabelTD[i][9],string);
    format(string,sizeof(string),"Besitzer: ~w~%s",HausInfo[haus][haus_besitzer]);
    PlayerTextDrawSetString(i,HausLabelTD[i][1],string);
    format(string,sizeof(string),"Kosten: ~w~%i$",HausInfo[haus][haus_preis]);
    PlayerTextDrawSetString(i,HausLabelTD[i][2],string);
    format(string,sizeof(string),"Miete: ~w~%i$",HausInfo[haus][haus_miete]);
    PlayerTextDrawSetString(i,HausLabelTD[i][3],string);
    format(string,sizeof(string),"Level: ~w~%i",HausInfo[haus][haus_level]);
    PlayerTextDrawSetString(i,HausLabelTD[i][4],string);
    format(string,sizeof(string),"Mieter Slots: ~w~%i/%i",HausInfo[haus][haus_eingemitetenzaehler],HausInfo[haus][haus_slots]);
    PlayerTextDrawSetString(i,HausLabelTD[haus][5],string);
    mysql_format(MySqlConnection,query,sizeof(query),"SELECT * FROM "#SQLTAG"_account_main WHERE `HausMieter` = '%d'", haus);
    mysql_function_query(MySqlConnection,query,true,"LoadHouseRentFinish","siii",query,_SQL_HOUSEMIETER_LOAD,0,MySqlConnection);
    PlayerTextDrawShow(i,HausLabelTD[i][0]);
    PlayerTextDrawShow(i,HausLabelTD[i][1]);
    PlayerTextDrawShow(i,HausLabelTD[i][2]);
    PlayerTextDrawShow(i,HausLabelTD[i][3]);
    PlayerTextDrawShow(i,HausLabelTD[i][4]);
    PlayerTextDrawShow(i,HausLabelTD[i][5]);
    PlayerTextDrawShow(i,HausLabelTD[i][6]);
    PlayerTextDrawShow(i,HausLabelTD[i][7]);
    PlayerTextDrawShow(i,HausLabelTD[i][8]);
    PlayerTextDrawShow(i,HausLabelTD[i][9]);
    }
    }
    else if(!IsPlayerInRangeOfPoint(i,2,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]))
    {
    PlayerTextDrawHide(i,HausLabelTD[i][0]);
    PlayerTextDrawHide(i,HausLabelTD[i][1]);
    PlayerTextDrawHide(i,HausLabelTD[i][2]);
    PlayerTextDrawHide(i,HausLabelTD[i][3]);
    PlayerTextDrawHide(i,HausLabelTD[i][4]);
    PlayerTextDrawHide(i,HausLabelTD[i][5]);
    PlayerTextDrawHide(i,HausLabelTD[i][6]);
    PlayerTextDrawHide(i,HausLabelTD[i][7]);
    PlayerTextDrawHide(i,HausLabelTD[i][8]);
    PlayerTextDrawHide(i,HausLabelTD[i][9]);
    }
    }
    }
    }
    return 1;
    }

  • Nun ist das Problem, das man nur bei dem "neuesten" Haus das Textdraw sieht.. Bzw. zb ich erstelle viele Häuser, dann sieht man das Textdraw nur bei dem zuletzt erstellten Haus, sprich beim neusten Haus..


    PS: Kannst gern aufm Server kommen und es selber sehen was ich meine.. einfach pn me

  • mit einem Adminbefehl.


    COMMAND:erstellen(playerid,params[])
    {
    if(ImTutorial[playerid] != 0)return SendClientMessage(playerid,GRAU,"Du kannst keine Befehle nutzen,da du im Tutorial bist.");
    if(GetPVarInt(playerid,"Eingeloggt") == 0)return SendClientMessage(playerid,GRAU,"Du bist nicht eingeloggt!");
    if(Spieler[playerid][pAWAYFROMKEYBOARD] == 1)return SendClientMessage(playerid,WRONGCMD,"Du bist im AFK-Modus und kannst somit keine Befehle nutzen."),SendClientMessage(playerid,WRONGCMD,"BENUTZE: /back");
    if(Spieler[playerid][pInPrison] == 1)return SendClientMessage(playerid,GRAU,"Du bist im Prison.");
    if(Spieler[playerid][pFriedhof] == 1)return SendClientMessage(playerid,GRAU,"Du bist Tot.");
    if(Spieler[playerid][pDeath] == 1)return SendClientMessage(playerid,GRAU,"Du bist verletzt.");
    if(Spieler[playerid][pJailed] != 0)return SendClientMessage(playerid,GRAU,"Du bist im Gefängnis.");
    if(Spieler[playerid][pTazerd] == 1)return SendClientMessage(playerid,GRAU,"Du bist K.O/getazert.");
    if(Spieler[playerid][pCuffed] == 1)return SendClientMessage(playerid,GRAU,"Du bist gefesselt.");
    new cmd[25],query[256];
    if(!isPlayerAnAdmin(playerid,6))return SendClientMessage(playerid,GRAU,"Du bist kein "#SERVERTAG" Teammitglied./Du hast nicht den jeweiligen Adminrang.");
    if(sscanf(params,"s[25]",cmd))return SendClientMessage(playerid,WRONGCMD,"BENUTZE: /erstellen [Haus/Business/Schwarzmarkt]");
    if(strcmp(cmd,"Haus",true) == 0)
    {
    for(new haus=1;haus<MAX_HAUS;haus++)
    {
    if(HausInfo[haus][hauscreatet] != 1)
    {
    mysql_format(MySqlConnection,query,sizeof(query),"INSERT INTO "#SQLTAG"_properties (id) VALUES ('%d')",haus);
    mysql_function_query(MySqlConnection,query,false,"","");
    MakeHaus[playerid] = haus;
    GetPlayerPos(playerid,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]);
    HausInfo[haus][hauscreatet] = 1;
    strmid(HausInfo[haus][haus_besitzer],"Niemand",0,strlen("Niemand"),24);
    strmid(HausInfo[haus][haus_beschreibung],"Keine",0,strlen("Keine"),150);
    strmid(HausInfo[haus][haus_msg],"Keine",0,strlen("Keine"),64);
    HausInfo[haus][haus_Owned] = 0;
    HausInfo[haus][haus_innenraum] = 255;
    HausInfo[haus][haus_miete] = 0;
    HausInfo[haus][haus_locked] = 1;
    HausInfo[haus][haus_slots] = 0;
    HausInfo[haus][haus_eingemitetenzaehler] = 0;
    HausInfo[haus][haus_preis] = 0;
    HausInfo[haus][haus_level] = 0;
    HausInfo[haus][haus_geldkasse] = 0;
    for(new i=0;i<MAX_HAUSSAFEINV;i++)
    {
    HausInfo[haus][haus_inv][i] = 0;
    }
    HausInfo[haus][haus_heal] = 0;
    HausInfo[haus][haus_armour] = 0;
    HausInfo[haus][haus_hatheal] = 0;
    HausInfo[haus][haus_hatarmour] = 0;
    HausInfo[haus][hausmull] = 0;
    for(new i=0;i<4;i++)
    {
    if(i < 3) HausInfo[haus][haus_garagepos][i] = 0.0;
    HausInfo[haus][haus_garagevehspawn][i] = 0.0;
    }
    HausInfo[haus][haus_havegarage] = 0;
    HausInfo[haus][haus_garagelocked] = 1;
    HausLabel[haus] = Create3DTextLabel("HAUS ERSTELLUNG",HAUSCOLOR,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z] +1,20.0,0,1);
    HausInfo[haus][haus_pickup] = CreatePickup(NOTOWNEDHAUSPICKUP,1,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]);
    ShowPlayerDialog(playerid,HCREATE_DIALOG_PREIS,DIALOG_STYLE_INPUT,"Hauserstellung Schritt 1","Gib den Preis an,\nfür den das Haus zum verkauf freigestellt werden soll:","Weiter","Abbrechen");
    return 1;
    }
    }
    return SendClientMessage(playerid,GRAU,"Die maximale Anzahl an erstellten Häusern ist erreicht!");
    }
    return 1;
    }


    und hier wenn ich es zu ende mich durchgeklickt habe durch die Dialoge..


    case HDIA_ENDERSTELLUNG:
    {
    new string[700];
    if(response == 0)
    {
    format(string,sizeof(string),"Hauserstellungs Fortschritt:\nPreis: %i$\nLevel zum kauf: %i\nMieter Slots: %i\nInterior Spawn: X=%i\nY=%i\nZ=%i\nInterior-ID: %i\nVirtual-World-ID: %i\nGebe nun die Beschreibung ein die am Haus stehen soll:",
    HausInfo[MakeHaus[playerid]][haus_preis],HausInfo[MakeHaus[playerid]][haus_level],HausInfo[MakeHaus[playerid]][haus_slots],Homestore[HausInfo[MakeHaus[playerid]][haus_innenraum]][Hx],Homestore[HausInfo[MakeHaus[playerid]][haus_innenraum]][Hy],Homestore[HausInfo[MakeHaus[playerid]][haus_innenraum]][Hz],Homestore[HausInfo[MakeHaus[playerid]][haus_innenraum]][Hint],MakeHaus[playerid]);
    ShowPlayerDialog(playerid,HCREATE_DIALOG_HAUSBESCHREIBUNG,DIALOG_STYLE_INPUT,"Hauserstellung Schritt 5",string,"Weiter","Zurück");
    return 1;
    }
    if(response == 1)
    {
    SendClientMessage(playerid,GELB,"Hauserstellung beendet! (Haus erstellt)");
    SaveOnlyOneHaus(MakeHaus[playerid]);
    MakeHaus[playerid] = 0;
    return 1;
    }
    }


    Hier das Enum:
    enum haus_daten
    {
    hauscreatet,
    Float:haus_x,
    Float:haus_y,
    Float:haus_z,
    haus_heal,
    haus_armour,
    haus_hatheal,
    haus_hatarmour,
    haus_level,
    haus_slots,
    haus_besitzer[24],
    haus_Owned,
    haus_miete,
    haus_preis,
    haus_innenraum,
    haus_beschreibung[150],
    haus_eingemitetenzaehler,
    haus_pickup,
    haus_locked,
    haus_inv[MAX_HAUSSAFEINV],
    haus_geldkasse,
    haus_waffenschrank,
    haus_gun[13],
    haus_gunammo[13],
    hausmull,
    haus_msg[64],
    Float:haus_garagepos[3],
    Float:haus_garagevehspawn[4],
    haus_havegarage,
    haus_garagepickup,
    haus_garagelocked
    }

    Einmal editiert, zuletzt von tayson87 ()

  • Während ich die Debug Meldungen eingebaut habe und den Timer etwas aufgeräumt habe ist mir der Fehler aufgefallen.
    Du hast die Textdraws immer gehidet, wenn man nicht nahe einem Haus war das existiert, sprich wenn man nicht am letzten Haus war, hat man kein Textdraw gezeigt bekommen.


    So sollte es passen:


    //Eine Sekunden Timer
    forward GrandTimer();
    public GrandTimer()
    {
    printf("Starte GrandTimer.");
    new string[300], query[128];
    for(new i;i<MAX_PLAYERS;i++)
    {
    if(!IsPlayerConnected(i))continue;
    if(IsPlayerNPC(i))continue;
    printf("i: %d", i);
    //Haussystem Textdraw
    new bool:shown;
    for(new haus=1;haus<MAX_HAUS;haus++)
    {
    printf("haus: %d", haus);
    if(HausInfo[haus][hauscreatet] != 0)
    {
    printf("Haus existiert. Range: %d", IsPlayerInRangeOfPoint(i,2,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]));
    if(IsPlayerInRangeOfPoint(i,2,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]))
    {
    printf("Zeige Haus %d an.", haus);
    if(GetString(HausInfo[haus][haus_besitzer],"Niemand"))
    {
    format(string,sizeof(string),"Besitzer: ~w~Haus zum Verkauf");
    }
    else
    {
    format(string,sizeof(string),"Besitzer: ~w~%s",HausInfo[haus][haus_besitzer]);
    }
    PlayerTextDrawSetString(i,HausLabelTD[i][1],string);
    format(string,sizeof(string),"Hausnummer: %i",haus);
    PlayerTextDrawSetString(i,HausLabelTD[i][9],string);
    format(string,sizeof(string),"Kosten: ~w~%i$",HausInfo[haus][haus_preis]);
    PlayerTextDrawSetString(i,HausLabelTD[i][2],string);
    format(string,sizeof(string),"Miete: ~w~%i$",HausInfo[haus][haus_miete]);
    PlayerTextDrawSetString(i,HausLabelTD[i][3],string);
    format(string,sizeof(string),"Level: ~w~%i",HausInfo[haus][haus_level]);
    PlayerTextDrawSetString(i,HausLabelTD[i][4],string);
    format(string,sizeof(string),"Mieter Slots: ~w~%i/%i",HausInfo[haus][haus_eingemitetenzaehler],HausInfo[haus][haus_slots]);
    PlayerTextDrawSetString(i,HausLabelTD[i][5],string);
    mysql_format(MySqlConnection,query,sizeof(query),"SELECT * FROM "#SQLTAG"_account_main WHERE `HausMieter` = '%d'", haus);
    mysql_function_query(MySqlConnection,query,true,"LoadHouseRentFinish","siii",query,_SQL_HOUSEMIETER_LOAD,0,MySqlConnection);
    for(new x = 0; x < 10; x++) PlayerTextDrawShow(i,HausLabelTD[i][x]);
    shown = true;
    break;
    }
    }
    }
    if(!shown)
    {
    printf("Verstecke Textdraws.");
    for(new x = 0; x < 10; x++) PlayerTextDrawHide(i,HausLabelTD[i][x]);
    }
    }
    for(new i = 0;i < MAX_BOMBS; i ++)
    {
    if(i < MAX_BOMBS)
    {
    BombTimerTL(i);
    }
    }
    return 1;
    }


    Wenn nicht, poste bitte was im Server Log steht.
    Wenn es klappt, dann kannst du die printf's wieder entfernen.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen