Großes Problem. Binco System

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
  • Hallo,


    ich habe ein selbstgemachtest skinauswahl dings. Aber wenn ich auf weiter oder zurueck klicke ändert sich nicht der skin:


    public OnPlayerClickTextDraw(playerid,Text:clickedid)
    {
    if(clickedid == SkinAuswahl[0]) //ZURUECK
    {
    if(sInfo[playerid][AmUmkleiden]==1)
    {
    if(GetPlayerVirtualWorld(playerid) != 0)
    {
    sInfo[playerid][Skin]--;
    if(sInfo[playerid][Skin] < 0) sInfo[playerid][Skin] = sizeof(BincoSkins);
    SetPlayerSkin(playerid,BincoSkins);
    }
    }
    }


    if(clickedid == SkinAuswahl[2]) //WEITER
    {
    if(sInfo[playerid][AmUmkleiden]==1)
    {
    if(GetPlayerVirtualWorld(playerid) != 0)
    {
    sInfo[playerid][Skin]--;
    if(sInfo[playerid][Skin] > 0) sInfo[playerid][Skin] = sizeof(BincoSkins);
    SetPlayerSkin(playerid,BincoSkins);/*[sInfo[playerid][Skin]][Skinid]*/
    }
    }



    }
    return 1;
    }


    new BincoSkins[][Binco_daten] =//{Skinid,SkinPreis}
    {
    {1,20},{2,20}
    };



    der befehl: ocmd:umkleiden(playerid,params[])
    {
    if(sInfo[playerid][eingelogt]==0)return SendClientMessage(playerid,COLOR_RED,"Du bist nicht eingeloggt!");
    {
    if(IsPlayerInRangeOfPoint(playerid,10.0,207.737991,-109.019996,1005.132812))
    {
    SetPlayerPos(playerid,217.5389,-98.0512,1005.2578);
    SetPlayerCameraPos(playerid, 217.1823, -101.6069, 1005.3817);
    SetPlayerCameraLookAt(playerid, 217.2095, -100.6087, 1005.3627);
    TextDrawShowForPlayer(playerid,SkinAuswahl[0]);
    SelectTextDraw(playerid, 0xFFFFFFFF);
    TextDrawShowForPlayer(playerid,SkinAuswahl[1]);
    SelectTextDraw(playerid, 0xFFFFFFFF);
    TextDrawShowForPlayer(playerid,SkinAuswahl[2]);
    SelectTextDraw(playerid, 0xFFFFFFFF);
    TogglePlayerControllable(playerid,1);
    }
    }
    return 1;
    }

  • Sehe auf dem ersten Blick kein Fehler, hab aber eine Frage:
    Wieso, benutzt du sInfo[playerid][Skin]--; sowohl bei weiter, als auch bei zurück? Müsste man nicht bei einem ++ und bei einem -- verwenden? Oder verstehe ich die Funktionen falsch?

    Hast du richtig verstanden.
    Bei dem //Weiter kommt bei sInfo[playerid][Skin]++; und das andere bleibt.
    Somit sollte die SkinID ein höher gesetzt werden und der Skin sich somit ändern.

  • Ürgendwie kann ich auf das Textdraw Weiter > nicht klicken ?


    Textdraw:
    Skinauswahl[2] = TextDrawCreate(379.000000, 369.000000, "Weiter >");
    TextDrawBackgroundColor(Skinauswahl[2], 255);
    TextDrawFont(Skinauswahl[2], 1);
    TextDrawLetterSize(Skinauswahl[2], 0.500000, 1.000000);
    TextDrawColor(Skinauswahl[2], 16711935);
    TextDrawSetOutline(Skinauswahl[2], 0);
    TextDrawSetProportional(Skinauswahl[2], 1);
    TextDrawSetShadow(Skinauswahl[2], 1);
    TextDrawSetSelectable(Skinauswahl[2], 0);


    Befehl: ocmd:umkleiden(playerid,params[])
    {
    if(sInfo[playerid][eingelogt]==0)return SendClientMessage(playerid,COLOR_RED,"Du bist nicht eingeloggt!");
    {
    if(IsPlayerInRangeOfPoint(playerid,10.0,207.737991,-109.019996,1005.132812))
    {
    SetPlayerPos(playerid,217.5389,-98.0512,1005.2578);
    SetPlayerCameraPos(playerid, 217.1823, -101.6069, 1005.3817);
    SetPlayerCameraLookAt(playerid, 217.2095, -100.6087, 1005.3627);
    TextDrawShowForPlayer(playerid,Skinauswahl[0]);
    TextDrawShowForPlayer(playerid,Skinauswahl[1]);
    TextDrawShowForPlayer(playerid,Skinauswahl[2]);
    SelectTextDraw(playerid, 0xFFFFFFFF);
    TogglePlayerControllable(playerid,1);
    }
    }
    return 1;
    }


    Das andere public OnPlayerClickTextDraw(playerid,Text:clickedid)
    {
    if(clickedid == Skinauswahl[0]) //ZURUECK
    {
    if(sInfo[playerid][AmUmkleiden]==1)
    {
    if(GetPlayerVirtualWorld(playerid) != 0)
    {
    sInfo[playerid][Skin]--;
    if(sInfo[playerid][Skin] < 0) sInfo[playerid][Skin] = sizeof(BincoSkins);
    SetPlayerSkin(playerid,BincoSkins[sInfo[playerid][Skin]][Skinid]);
    }
    }
    }
    if(clickedid == Skinauswahl[2]) //WEITER
    {
    SendClientMessage(playerid,Weiß,"sadsad");
    if(sInfo[playerid][AmUmkleiden]==1)
    {
    if(GetPlayerVirtualWorld(playerid) != 0)
    {
    sInfo[playerid][Skin]++;
    if(sInfo[playerid][Skin] > sizeof(BincoSkins)) sInfo[playerid][Skin] = 0;
    SetPlayerSkin(playerid,BincoSkins[sInfo[playerid][Skin]][Skinid]);
    }
    }
    }
    return 1;
    }

  • Du kannst das ja auch nicht anklicken, wenn du dort keine Box hast. Du musst dort eine Box erstellen, die du unsichtbar (0x00000000) oder sichbar machen kannst. Danach musst du mit TextDrawTextSize arbeiten, damit du den Anklick-Bereich hast.
    Bei Fragen melde dich.