Create3DTextLabel bzw CreatePlayer3DTextLabel Problem

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
  • Moin und so


    Ich habe 2 Probleme mit dem Create3DTextLabel bzw CreatePlayer3DTextLabel


    1. problem:
    Ich habe es so geändert das Häuser, biz und sBiz nicht mehr per Gametext sondern mit 3dtext angezeigt werden.
    unter public OnGameModeInit():
    new stringh[256];
    for(new h = 0; h < sizeof(HouseInfo); h++)
    {
    if(HouseInfo[h][hOwned] == 0)
    {
    format(stringh, sizeof(stringh), "Dieses Haus ist zu Verkaufen\nBeschreibung: %s\nPreis: $%d\nLevel: %d\nBenutze /buyhouse um es zu kaufen",HouseInfo[h][hDiscription],HouseInfo[h][hValue],HouseInfo[h][hLevel]);
    Create3DTextLabel(stringh,0xFFFFFFAA,HouseInfo[h][hEntranceX], HouseInfo[h][hEntranceY], HouseInfo[h][hEntranceZ]+1.0,20.0,0,1);
    AddStaticPickup(1273, 1, HouseInfo[h][hEntranceX], HouseInfo[h][hEntranceY], HouseInfo[h][hEntranceZ], -1);
    pickups++;
    }
    if(HouseInfo[h][hOwned] == 1)
    {
    if(HouseInfo[h][hRentabil] == 0)
    {
    format(stringh, sizeof(stringh), "Dieses Haus gehoert: %s\nLevel : %d",HouseInfo[h][hOwner],HouseInfo[h][hLevel]);
    }
    else
    {
    format(stringh, sizeof(stringh), "Dieses Haus gehoert: %s\nMiete: $%d\nLevel: %d\nBenutze /rentroom, um ein Zimmer zu mieten",HouseInfo[h][hOwner],HouseInfo[h][hRent],HouseInfo[h][hLevel]);
    }
    Create3DTextLabel(stringh,0xFFFFFFAA,HouseInfo[h][hEntranceX], HouseInfo[h][hEntranceY], HouseInfo[h][hEntranceZ]+1.0,20.0,0,1);
    AddStaticPickup(1239, 1, HouseInfo[h][hEntranceX], HouseInfo[h][hEntranceY], HouseInfo[h][hEntranceZ], -1);
    pickups++;
    }
    }
    for(new h = 0; h < sizeof(BizzInfo); h++)
    {
    if(BizzInfo[h][bOwned] == 0)
    {
    format(stringh, sizeof(stringh), "%s Dieses Business ist zu verkaufen Preis: $%d\nLevel: %d\nBenutze /buybiz um das Biz zu kaufen",BizzInfo[h][bMessage],BizzInfo[h][bBuyPrice],BizzInfo[h][bLevelNeeded]);
    Create3DTextLabel(stringh,0xFFFFFFAA,BizzInfo[h][bEntranceX], BizzInfo[h][bEntranceY], BizzInfo[h][bEntranceZ]+1.0,20.0,0,1);
    AddStaticPickup(1272, 1, BizzInfo[h][bEntranceX], BizzInfo[h][bEntranceY], BizzInfo[h][bEntranceZ], -1);
    pickups++;
    }
    if(BizzInfo[h][bOwned] == 1)
    {
    format(stringh, sizeof(stringh), "%s\nInhaber: %s\nTeilhaber: %s\nEintrittspreis: $%d\nLevel: %d\nBenutze /enter zum betreten",BizzInfo[h][bMessage],BizzInfo[h][bOwner],BizzInfo[h][bExtortion],BizzInfo[h][bEntranceCost],BizzInfo[h][bLevelNeeded]);
    Create3DTextLabel(stringh,0xFFFFFFAA,BizzInfo[h][bEntranceX], BizzInfo[h][bEntranceY], BizzInfo[h][bEntranceZ]+1.0,20.0,0,1);
    AddStaticPickup(1239, 1, BizzInfo[h][bEntranceX], BizzInfo[h][bEntranceY], BizzInfo[h][bEntranceZ], -1);
    pickups++;
    }
    }
    for(new h = 0; h < sizeof(SBizzInfo); h++)
    {
    if(SBizzInfo[h][sbOwned] == 0)
    {
    format(stringh, sizeof(stringh), "%s\nDieses Business ist zu verkaufen\nPreis $%d\nLevel : %d\nBenutze /buybiz um das Biz zu kaufen",SBizzInfo[h][sbMessage],SBizzInfo[h][sbBuyPrice],SBizzInfo[h][sbLevelNeeded]);
    Create3DTextLabel(stringh,0xFFFFFFAA,SBizzInfo[h][sbEntranceX], SBizzInfo[h][sbEntranceY], SBizzInfo[h][sbEntranceZ]+1.0,20.0,0,1);
    AddStaticPickup(1272, 1, SBizzInfo[h][sbEntranceX], SBizzInfo[h][sbEntranceY], SBizzInfo[h][sbEntranceZ], -1);
    pickups++;
    }
    if(SBizzInfo[h][sbOwned] == 1)
    {
    format(stringh, sizeof(stringh), "%s\nInhaber: %s\nTeilhaber: %s\nEintrittspreis: $%d\nLevel: %d\nBenutze /enter zum betreten",SBizzInfo[h][sbMessage],SBizzInfo[h][sbOwner],SBizzInfo[h][sbExtortion],SBizzInfo[h][sbEntranceCost],SBizzInfo[h][sbLevelNeeded]);
    Create3DTextLabel(stringh,0xFFFFFFAA,SBizzInfo[h][sbEntranceX], SBizzInfo[h][sbEntranceY], SBizzInfo[h][sbEntranceZ]+1.0,20.0,0,1);
    AddStaticPickup(1239, 1, SBizzInfo[h][sbEntranceX], SBizzInfo[h][sbEntranceY], SBizzInfo[h][sbEntranceZ], -1);
    pickups++;
    }
    }
    Der text wird auch angezeigt ABER die Pickups + texte sind nicht da wo sie hin gehören sondern bei den coords 0,0,0 also unter diesem bauernhof da. In der Propertys.cfg ist aber alles richtig eingetstellt deshalb weiss ich nicht woran das liegen könnte -.-


    2. problem:
    Ich habe mich dann auch an einen /spec befehl gesetzt, wenn man ihn benutzt beobachtet man halt den Spieler, was auch funktioniert. Allerdings wollte ich einen 3dtext an den spieler binden der beobachtet wird wo dann informationen wie hp,geld etc angezeigt werden. Nur leider wird mir der 3dtext nicht angezeigt.
    Hier mal der befehl:
    if(strcmp(cmd,"/spec",true)==0)
    {
    if(PlayerInfo[playerid][pAdmin] >= 1)
    {
    tmp = strtok(cmdtext,idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GREEN, "Benutze: /spec [ID]");
    return 1;
    }
    new PlayerText3D:playertextid;
    if(strcmp("off", tmp, true, strlen(tmp)) == 0)
    {
    Spectate[playerid] = 253;
    GameTextForPlayer(playerid, "~w~ TV~n~~r~ Aus", 5000, 6);
    PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
    DeletePlayer3DTextLabel(playerid,playertextid);
    return 1;
    }
    //spielerr = ReturnUser(tmp);
    giveplayerid = ReturnUser(tmp);
    if(IsPlayerConnected(giveplayerid))
    {
    TogglePlayerSpectating(playerid, 1);
    PlayerSpectatePlayer(playerid, giveplayerid);
    new Float:X, Float:Y, Float:Z;
    GetPlayerPos(giveplayerid, X, Y, Z );
    new Float:health;
    GetPlayerHealth(giveplayerid, health);
    new name[MAX_PLAYER_NAME];
    //new string[256];
    GetPlayerName(giveplayerid, name, sizeof(name));
    new cash = GetPlayerMoney(giveplayerid);
    //format(string, sizeof(string), "Recon: (%d) %s $%d H:%.0f",Spectate[playerid],giveplayer,cash,health);
    format(string, sizeof(string), "ID: %d\nName: %d\nHealth: %d\nGeld: %d",giveplayerid,name,health,cash);
    playertextid = CreatePlayer3DTextLabel(playerid,string,0x008080FF,X,Y,Z,40.0,giveplayerid,INVALID_VEHICLE_ID,1);
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREEN, "Spieler nicht online !");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREEN, "Du bist kein Admin!");
    }
    return 1;
    }


    Weiss jmd woran das liegen könnte?


    Mfg.

    The fact is, I am right. And if you think I'm wrong, you are wrong.

    Einmal editiert, zuletzt von maddin ()

  • beim ersten problem kann ich dir nicht helfen :(
    beim zweiten aber glaub ich schon... ich würde es so machen (hab sowas ähnliches bei mir gemacht deshalb weiss ich dass diese methode funzen sollte :) :(


    format(string, sizeof(string), "ID: %d\nName: %d\nHealth: %d\nGeld: %d",giveplayerid,name,health,cash);
    playertextid = Create3DTextLabel(string,0x008080FF,X,Y,Z,40.0,0,1);
    Attach3DTextLabelToPlayer(playertextid, giveplayerid, 0.0, 0.0, 0.1);
    ungetestet, sollte aber gehen :D


    was ich noch sagen wollte... ich glaube der spieler wird merken dass ihm irgendein text übern kopf hängt oder?

  • deshalb ja das CreatePlayer3DTextLabel damit nur ich bzw der Admin der /spec benutzt den 3dtext sieht. ^^


    Ich werd gleich ma aus probieren danke


    Mfg.


    //Edit: Klappt nich, bekomme immer warning 213: tag mismatch. Ist aber auch nicht so wichtig wie das erste problem mit den Häusern -.-^^

    The fact is, I am right. And if you think I'm wrong, you are wrong.

    Einmal editiert, zuletzt von maddin ()