ich habe eine frage wie kann ich machen das die bäume sich speichern auch wenn ich ein restart mache
if(strcmp(cmd, "/Addbaum", true) == 0)
{
if(PlayerInfo[playerid][pAdmin] >= 2000)
{
AddBaum(playerid);
}
}
ich habe eine frage wie kann ich machen das die bäume sich speichern auch wenn ich ein restart mache
if(strcmp(cmd, "/Addbaum", true) == 0)
{
if(PlayerInfo[playerid][pAdmin] >= 2000)
{
AddBaum(playerid);
}
}
da sieht man auch so viel..
in der Funktion wo du den Baum erstellst, in einer Datei setzen und beim Serverstart wieder laden lassen
nur das steht in meinem script deswegen weiss ich nicht weiter
if(strcmp(cmd, "/Addbaum", true) == 0)
{
if(PlayerInfo[playerid][pAdmin] >= 2000)
{
AddBaum(playerid);
}
}
if(strcmp(cmd, "/removeBaum", true) == 0)
{
if(PlayerInfo[playerid][pAdmin] >= 2000)
{
RemoveBaum(playerid);
}
}
Womit speicherst du?
und der cmd hilft nicht, da er die funktion aus einer anderen funktion holt
wie meinst du womit ich speicher?
wie ist dein Speichersystem von dein Gamemode?
(sende mir ma bitte den link zu der W-Baum ich schreib dir da eben was um)
kein link das sind diese 2 befehle in mein gamemode drinne habe alles abgesucht was dazu passt nicht gefunden
Poste uns einfach mal deine AddBaum Funktion.
Das ist eine Include
Die gibt es hier aber finde den link nicht daher brauch ich den dann kann ich es dir eben umschreiben
habe das bei den include gefunden
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Credits:
// Script erstellt von Prepear
#define MAX_BAEUME 100 // Maximale Anzahl von Weihnachtsbäumen
enum eBaum {
ID, Float:BaumX, Float:BaumY, Float:BaumZ, nErstellt
};
new Baum[MAX_BAEUME][eBaum];
stock AddBaum(playerid) {
new Float:x, Float:y, Float:z, Float:a;
GetPlayerPos(playerid,x,y,z);
GetPlayerFacingAngle(playerid, a);
for(new i = 0; i < sizeof(Baum); i++) {
if(Baum[i][nErstellt] == 0) {
Baum[i][BaumX] = x;
Baum[i][BaumY] = y;
Baum[i][BaumZ] = z - 0.7;
Baum[i][nErstellt] = 1;
Baum[i][ID] = CreateObject(19076, x, y - 0.7, z - 1, 0.0, 0.0, a - 90.0);
return 1;
}
}
return 0;
}
stock RemoveBaum(playerid) {
for(new i = 0; i < sizeof(Baum); i++) {
if(IsPlayerInRangeOfPoint(playerid, 3, Baum[i][BaumX], Baum[i][BaumY], Baum[i][BaumZ])) {
if(Baum[i][nErstellt] == 1) {
Baum[i][nErstellt] = 0;
Baum[i][BaumX] = 0.0;
Baum[i][BaumY] = 0.0;
Baum[i][BaumZ] = 0.0;
DestroyObject(Baum[i][ID]);
return 1;
}
}
}
return 0;
}
Ja das meine ich ja
Und jetzt brauch ich noch das womit du dein acc oder so speicherst
wie mit z.B. dini/MySQL.....
glaube das dini
Schreib das mal in deiner Include rein den rest raus sollte so gehen
#include a_samp
#include dini
#define MAX_BAEUME 100 // Maximale Anzahl von Weihnachtsbäumen
enum eBaum {ID, Float:BaumX, Float:BaumY, Float:BaumZ, nErstellt};
new Baum[MAX_BAEUME][eBaum];
stock AddBaum(playerid)
{
new Float:x, Float:y, Float:z, Float:a, data[20];
GetPlayerPos(playerid,x,y,z);
GetPlayerFacingAngle(playerid, a);
for(new i = 0; i < sizeof(Baum); i++)
{
if(Baum[i][nErstellt] == 0)
{
format(data,sizeof data,"baum/%d.ini",i);
if(!dini_Exists(data))
{
dini_FloatSet(data,"X",x);
dini_FloatSet(data,"Y",x);
dini_FloatSet(data,"Z",x);
}
Baum[i][BaumX] = x;
Baum[i][BaumY] = y;
Baum[i][BaumZ] = z - 0.7;
Baum[i][nErstellt] = 1;
Baum[i][ID] = CreateObject(19076, x, y - 0.7, z - 1, 0.0, 0.0, a - 90.0);
return 1;
}
}
return 0;
}
stock RemoveBaum(playerid)
{
for(new i = 0; i < sizeof(Baum); i++)
{
if(IsPlayerInRangeOfPoint(playerid, 3, Baum[i][BaumX], Baum[i][BaumY], Baum[i][BaumZ]))
{
new data[20];
if(Baum[i][nErstellt] == 1)
{
format(data,sizeof data,"baum/%d.ini",i);
if(dini_Exists(data))dini_Remove(data);
Baum[i][nErstellt] = 0;
Baum[i][BaumX] = 0.0;
Baum[i][BaumY] = 0.0;
Baum[i][BaumZ] = 0.0;
DestroyObject(Baum[i][ID]);
return 1;
}
}
}
return 0;
}
forward _OnGameModeInit();
public OnGameModeInit()
{
new data[20];
for(new i;i<MAX_BAEUME;i++)
{
format(data,sizeof data,"baum/%d.ini",i);
if(dini_Exists(data))
{
Baum[i][BaumX] = dini_Float(data,"X");
Baum[i][BaumY] = dini_Float(data,"Y");
Baum[i][BaumZ] = dini_Float(data,"Z") - 0.7;
Baum[i][nErstellt] = 1;
Baum[i][ID] = CreateObject(19076, Baum[i][BaumX], Baum[i][BaumY], Baum[i][BaumZ] - 1, 0.0, 0.0, 90.0);
}
}
return CallLocalFunction("_OnGameModeInit", "");
}
#if defined _ALS_OnGameModeInit
#undef OnGameModeInit
#else
#define _ALS_OnGameModeInit
#endif
#define OnGameModeInit _OnGameModeInit
Bitte in deinen Scriptfiles Ordner ein neuen Ordner erstellen der den Namen:
hat
Beim stock Addbaum kansnt du mit DINI dir dann eine Datei erstellen lassen wo du die Bäume speicherst
Beim stock Addbaum kansnt du mit DINI dir dann eine Datei erstellen lassen wo du die Bäume speicherst
Eine sehr hilfreiche aussage
Erstellen kann er die Zwar aber das auslesen klappt dann wohl nicht so
@TE
gib bitte eine Antwort ob mein system klappt, da ich es nicht getestet habe
habs gemact speichern trozdem net aber danke für deine mühe
er müsste die datei eigendlich erstellen
hast du die Include auch nach meiner angepasst und hast du auch den Ordner erstellt?
ja habe ich ich versuche mal die include vom namen w_baum nur zu baum umzubennen sonnst fällt mir nix mehr an
lösch den Inhalt von deiner W-Baum und füg mein code da ein
alles gemacht klappt nicht falls es hilft es ist das WoS script oder so