Beiträge von Apokrate

    Funktioniert nicht.
    Was mache ich falsch?


    Mache es einfach so:


    Funktioniert nicht.
    Ich will es halt so machen, dass ich /create eingebe, dann stehen mir auswahlmöglichkeiten zur verfügung (Haus, Pickup, etc.)
    Wenn ich dann Pickup eingegeben hab, sollte eine neue Message kommen, für die entsprechenden Parameter

    Was wäre am sinnvollsten wenn ich z.B. Dailykills in einer Liste anzeigen möchte?
    Je Spieler die Daily Kills speichern oder in einer extra Variable.
    Wie würde ich das je Spieler dann pro Tag löschen?


    @Apokrate : Da wäre MySQL am sinnvollsten, das kannst du dann mit einem Query zurücksetzen.


    Ich verstehe nicht ganz was du meinst.
    Du musst es am Tageswechsel zurücksetzen. Dazu kannst du in einer Datei zum Beispiel den aktuellen Tag (Heute 14) speichern. Wenn dann der nicht mehr mit dem von gettime übereinstimmt (morgen dann 15), dann setzt du es zurück.

    Also quasi so:



    C
    void CheckTag()
    {
    if(heute != db_eintrag)
    {
    Heute neu setzen,
    Daily Zeug löschen
    }
    return 1;
    }

    Weiß nur nicht, wie ich das am besten speicher und wie man mit gettime() richtig arbeitet.

    Wie ist es möglich die Zeit in dem Format wiederzugeben: "Min:Sek"


    Habe es momentan nur so:

    C
    new e_Zeit = random(1)+1; //Soll Random 1 oder 2 Minuten sein
    Bonus[bonuszeit] = e_Zeit*60;
    format(String,sizeof(String),"Verbl. Zeit: %d", Bonus[bonuszeit]);
    TextDrawSetString(E_WeaponTD[2],String);


    Im Sekundentimer:

    C
    Bonus[bonuszeit]--;
    format(String,sizeof(String),"Verbl. Zeit: %d", Bonus[bonuszeit]*60);
    TextDrawSetString(E_WeaponTD[2],String);

    Funktioniert nicht.
    Was mache ich falsch?

    Ah! Kopiere den string einfach in eine temporäre Variable im stock (anstatt die aus dem Funktionskopf zu nehmen), dann geht es.
    Strings werden nämlich als Referenz übergeben, in PAWN.

    Habs nicht ganz verstanden :D


    Sein Code:

    Mit zu 100% deinem Code:



    cFarbe: EB0000FF
    str1: Ausgewählter Farbcode: EB0000FF
    str2: Ausgewählter Farbcode: 0xEB0000FF
    str3: Ausgewählter Farbcode: 0xEB0000FF


    Im Chat:
    Ausgewählter Farbcode: 0xEB0000FF


    /e


    Wenn ich jetzt noch

    C
    format(Clan[Spieler[playerid][Gang]][cFarbe], 12, "%s", inputtext);

    davor setze, dann klappt alles.


    Habe ich nämlich vor diesem Edit nicht.


    Log:

    Code
    [15:20:49] cFarbe: 0xEB0000FF
    [15:20:49] str1: Ausgewählter Farbcode: 0xEB0000FF
    [15:20:49] str2: Ausgewählter Farbcode: 0x0xEB0000FF
    [15:20:49] str3: Ausgewählter Farbcode: 0x0xEB0000FF


    //fehler gefunden

    Ich habe es jetzt mit "Zwischenspeicherung" versucht.


    Immer noch der selbe Aufbau:

    1. Schritt (Code):

    C
    format(Clanfarbe[playerid][Zwischen], 12,"%s",inputtext);
       printf("Zwischen: %s", Clanfarbe[playerid][Zwischen]);
    //GROßER DIALOG (Schritt 2 Dialog)
    format(str, sizeof(str),"Ausgewählter Farbcode: %s",Clanfarbe[playerid][Zwischen]);
    printf("str: %s", str);
    format(str, sizeof(str),"Ausgewählter Farbcode: 0x%s",Clanfarbe[playerid][Zwischen]);
    printf("str0x: %s", str);



    Ausgaben im Log:

    Zitat

    Zwischen: 0xEB0000FF


    str: Ausgewählter Farbcode: EB0000FF
    str0x: Ausgewählter Farbcode: 0xEB0000FF


    2. Schritt (Code):


    C
    format(Clan[Spieler[playerid][Gang]][cFarbe], 12, "%s", Clanfarbe[playerid][Zwischen]);
    printf("cFarbe: %s", Clan[Spieler[playerid][Gang]][cFarbe]);


    Ausgabe im Log:



    Zitat

    cFarbe: EB0000FF



    Das komische dabei ist ja, dass die Zwischenspeicherung richtig ist und auch im großen Dialog angezeigt wird.
    Im Kleinen dann wieder nicht und dieses dann auch so gespeichert wird.

    Das ist aber komisch.
    Versuche es mal so:

    C
    printf("cFarbe: %s", Clan[Spieler[playerid][Gang]][cFarbe]);
    format(str, sizeof(str),"Ausgewählter Farbcode: %s",Clan[Spieler[playerid][Gang]][cFarbe]);
    ShowPlayerDialog(playerid, DIALOG_CLAN_FARBE_ACCEPT, DIALOG_STYLE_MSGBOX, "Clanfarbe akzeptieren",str,"Akzeptieren","Zurück");
    printf("str: %s", str);
    format(str, sizeof(str),"Ausgewählter Farbcode: 0x%s",Clan[Spieler[playerid][Gang]][cFarbe]);
    printf("str: %s", str);
    SendClientMessage(playerid, COLOR_GREY, str);

    Was wird zum einen im Spiel angezeigt, und was wird zum anderen im Server Log geprintet? Mache vom Spiel mal einen Screenshot auf dem man Dialog und Nachricht sieht, und poste was im Server Log steht.

    Zitat

    cFarbe: 0xEB0000F


    str: Ausgewählter Farbcode: EB0000F
    str0x: Ausgewählter Farbcode: 0xEB0000F

    Was ich meinte, zeigt dir das SendClientMessage den Text korrekt an, wenn du es so machst?

    C
    format(str, sizeof(str),"Ausgewählter Farbcode: %s",Clan[Spieler[playerid][Gang]][cFarbe]);
    ShowPlayerDialog(playerid, DIALOG_CLAN_FARBE_ACCEPT, DIALOG_STYLE_MSGBOX, "Clanfarbe akzeptieren",str,"Akzeptieren","Zurück");
    SendClientMessage(playerid, COLOR_GREY, str);

    Getestet. Ebenfalls komischerweise ohne 0x

    C
    format(Clan[Spieler[playerid][Gang]][cFarbe], 10,"%s",inputtext);

    Inputtext ist z.B. 0x78BBC2FF


    Wenn ich Clan[Spieler[playerid][Gang]][cFarbe] in einem Dialog anzeige, dann zeigt er mir den inputtext richtig an


    C
    format(str, sizeof(str),"Ausgewählter Farbcode: %s",Clan[Spieler[playerid][Gang]][cFarbe]);
    ShowPlayerDialog(playerid, DIALOG_CLAN_FARBE_ACCEPT, DIALOG_STYLE_MSGBOX, "Clanfarbe akzeptieren",str,"Akzeptieren","Zurück");
    SendClientMessage(playerid, COLOR_GREY, Clan[Spieler[playerid][Gang]][cFarbe]);


    in dem sendclientmessage aber nur 78BBC2FF


    speicher ich die farbe in meine datenbank kommt auch nur 78BBC2FF an.


    Woran liegts?
    Es fehlt halt das 0x



    Es ist halt nicht nur beim speichern so, sondern auch wenn ich es mir als SendClientMessage ausgebe.
    Im Dialog, wie oben schon gesagt, funktioniert es ja bestens.


    VARCHAR 10 Zeichen angelegt.