Tank Biz

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
  • Hey,
    Ich versuche momentan ein TankBiz
    Mit Dini zumachen aber ich bekomme
    Es irgendwie null hin
    Ich möchte das das TankBiz beim Serverstart geladen wird
    Und es 100Produkte hat
    Ich habe bisher den Enum und sehr viel müll
    enum Tankstelle
    {
    Besitzer[MAX_PLAYER_NAME],
    Erpresser[MAX_PLAYER_NAME],
    Produkte,
    TankPreis,
    BesitzLevel
    }
    new TankInfo[][Tankstelle];
    Weil ich es nicht hinbekommen habe
    Ich fände es super wenn es mir wer zeigen könnte
    Mit freundlichen Grüßen

  • Nun, stoßen wir nicht in die Tür, sondern beginnen ganz langsam, Schritt für Schritt mit Köpfchen.


    Dein enum ist doch schon mal ein guter Weg zum Ziel. Aber wie machen wir es, dass etwas beim Serverstart ausgeführt wird? OnGameModeInit (Wiki) ist hier das Stichwort! Fangen wir direkt an:


    #define Function%0(%1) forward%0(%1); public%0(%1)


    #define MAX_TBIZ 10


    enum tInfo
    {
    tBesitzer[MAX_PLAYER_NAME],
    tLevel,
    tErpresser[MAX_PLAYER_NAME],
    tProdukte,
    tPrice
    };
    new TBizInfo[MAX_TBIZ][tInfo];


    Function OnGameModeInit()
    {
    // Hier rufen wir nun eine Funktion auf, die das Business lädt und die Produkte auf 100 setzt.

    LoadTBiz();
    return 1;
    }


    Function LoadTBiz()
    {
    // Erstellen eines Icons, Labels, etc. pp.

    for(new tbiz = 0; tbiz < MAX_TBIZ; tbiz++) // Bedingte Wiederholung zum Setzen aller Variablen
    {
    // weitere Variablen setzen


    TBizInfo[tbiz][tProdukte] = 100; // Variable auf den Wert 100 setzen
    }
    return 1;
    }



    Diese Funktion könnte folgendermaßen aussehen. Wenn du noch Hilfe brauchst, oder etwas unklar ist, melde dich einfach.

  • Mit Dini arbeitest du, oder? Sieh dich mal in der dini.inc (Include) um und setze dich mit dem Funktionsumfang auseinander. Ziemlich selbsterklärend, was dort zu lesen ist :).


    Hier passend: Eine Kombination aus Dini_Exists und Dini_Create in simplen if-Abfragen direkt in der Loadfunktion (sollte es sich um das gleiche Problem bzgl. Tank-Business handeln), um eine gewisse Übersicht zu wahren.

  • Wir haben hier unser enum, in welchem die Werte gespeichert sind:


    enum tInfo
    {
    tBesitzer[MAX_PLAYER_NAME],
    tLevel,
    tErpresser[MAX_PLAYER_NAME],
    tProdukte,
    tPrice
    };
    new TBizInfo[MAX_TBIZ][tInfo];


    Nun sprichst du über die Business-ID der Tankstelle die richtige Variable an, z.B.:


    // In diesem Beispiel die Tankstellen-ID "1"


    TBizInfo[1][tBesitzer] = GetPlayerNameEx(playerid); // Setzt den Inhalt des Arrays "tBesitzer" auf den Namen der playerid - Dies dient als Beispile für die Verwendung.


    Hier lege ich dir wieder ans Herz, da du den Funktionsumfang von Dini und dessen Gebrauch, so scheint es, nicht kennst, dich mit dieser Include ausreichend zu befassen!

  • Ist es soweit so richig??


    Function LoadTBiz()
    {
    CreatePickup(1242, 2, 1206.5465,-1361.3884,13.3608, -1);
    new string[124];
    format(string,sizeof(string),"/Biz/TankBiz.ini");
    if(dini_Exists(string))
    {
    for(new tbiz = 0; tbiz < MAX_TBIZ; tbiz++)
    {
    format(TBizInfo[tbiz][tBesitzer],32,"%s",dini_Get(string,"TankStellenBesitzer"));
    TBizInfo[tbiz][tBesitzer] = dini_Int(string,"TankStellenBesitzer");
    TBizInfo[tbiz][tProdukte] = dini_Int(string,"TankProdukte");
    TBizInfo[tbiz][tLevel] = dini_Int(string,"TankBesitzLevel");
    TBizInfo[tbiz][tErpresser] = dini_Int(string,"TankBesitzErpresser");
    TBizInfo[tbiz][tPrice] = dini_Int(string,"TankPreis");
    format(string,sizeof(string),"TankBiz\n Besitzer: %s\n Erpresser: %s\n Produkte: %d\n Level:%d",TBizInfo[tbiz][tBesitzer],TBizInfo[tbiz][tErpresser],TBizInfo[tbiz][tProdukte],TBizInfo[tbiz][tLevel]);
    Create3DTextLabel(string,0xFFFFFFFF, 1206.5465,-1361.3884,13.3608,30.0,0,0); //erstellt ein Label an den Hauskoordinaten
    }
    }
    else
    {
    for(new tbiz = 0; tbiz < MAX_TBIZ; tbiz++)
    {
    dini_Create(string);
    dini_Set(string, "TankStellenBesitzer",TBizInfo[tbiz][tBesitzer]);
    dini_Set(string, "TankProdukte",TBizInfo[tbiz][tProdukte]);
    dini_Set(string, "TankBesitzLevel",TBizInfo[tbiz][tLevel]);
    dini_Set(string, "TankBesitzErpresser",TBizInfo[tbiz][tErpresser]);
    dini_Set(string, "TankPreis",TBizInfo[tbiz][tPrice]);
    TBizInfo[tbiz][tPrice] = 100;
    }
    }
    return 1;
    }

  • Owei ... wie bringen wir dir das jetzt am besten bei :S . Melde dich mal bei mir und dann halten wir eine kleine TS-3-Session.