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
Tank Biz
- Mr.Undercover
- Geschlossen
- 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
-
-
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 setzenTBizInfo[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.
-
Wie mach ich es das wenn der Server startet Abfragt ob es die ini gibt Wenn nicht soll er die erstellen Und wie das wenn das Bit keinem gehört das dort bei besitzer niemand steht?
-
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.
-
Wie Speicher ich Namen in der Ini
-
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 . Melde dich mal bei mir und dann halten wir eine kleine TS-3-Session.
-
breadfish.de
Hat das Thema geschlossen.