Echt nice 10/10
Weihnachtsbäume!!
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
-
-
Naja, was bringt mir das. Nach jeden Neustart vom Server muss ich die Bäume neu setzen, bau ein das sie gespeichert werden dann ist es schon nützlicher
-
das kann man eigentlich schnell selber machen, das er die speichert oder du baust die im script ein
-
Hey Leute,
ich werde wahrscheinlich keine Safe Funktion machen, da dies sehr einfach ist selbst zu machen und mir die Zeit dafür zu kostbar ist.
Außerdem könnt Ihr eure Pos. inGame speichern und den Baum fest ins Script einbauen.Wenn das include einer weiter entwickeln möchte bitte kurze PN an mich.
Liebe Grüße
-
sagt mal, theoretisch wenn man es bissl umschreibt könnte man es doch sogar in einen Filterscript packen oder nicht?
-
Easy, aber nützlich Aufjedenfall passt es gerade so zu Weihnachten.
Ich könnte die Include gerne weiter entwickeln wenn ich die Erlaubnis dazu bekomme, zb. könnte ich die Save Funktion einbauen. -
Hmm ich werde mich gleich mal ran setzen. Cobyrights werde ich auf jedenfall drinnen lassen.
LG
-
-
Ich hab es schon auf MySQL Basis umgeschrieben, so das die Bäume gespeichert und geladen werden. Und natürlich auch löschbar, ob ich diese Release überleg ich mir noch. Da es derzeit für meinen kommenden Server gescriptet wurde.
-
Die sind echt gut geworden
9/10
-
-
-
Ich hab es schon auf MySQL Basis umgeschrieben, so das die Bäume gespeichert und geladen werden. Und natürlich auch löschbar, ob ich diese Release überleg ich mir noch. Da es derzeit für meinen kommenden Server gescriptet wurde.
Dann release ich es wenn ich von Arbeit zuhause bin^^ ZONK ;PVerstehe nurnoch warum wegen ein paar Weihnachtsbäume so eine geschrei ausbricht xD , vorallem weils nur 1 Objekt ist welches erstellt bzw gelöscht wird...
-
Wie füge ich sowas ein ?
-
Gamemode Öffnen -> Im Skript die Include einfügen Fertig.
-
Die weihnachtsbäume sind sehr schön gestaltet...
Sehr Gutes Include.8/10 Brotfischen.
-
so ich hab mich gerade hingesetzt und hab ein w_baum FS gemacht
ich danke Prepear(mein Kumpel) für die Idee und für den Anfang
ZUM FILTERSCRIPT
-es würd gespeichert
-mit /wbaum kann man ein baum erstellen
-beim beenden würd jeder baum gelöscht bleibt aber noch in der datei drin
-in scriptfiles muss ein ordner mit (w_baum) sein wo die bäume in je ne datei gespeichter würd
nächtes update würd warscheinlich sein das man einzelde bäume löschen kann oder auch allemuss ich mal sehen ob ich das in meine freizeit noch schafe
also viel spass damit
hier downloadlink :::: http://www.megaupload.com/?d=OTNU9UY5
und hier der Quellcode
#include <a_samp>
#include <dini>
#include <ocmd>#define MAX_Baum 450
enum haus_info
{
//AUSSEN
Float:haus_x,
Float:haus_y,
Float:haus_z,
haus_pickup,
}
new HausInfo[MAX_Baum][haus_info];
public OnFilterScriptInit()
{
//CreateObject(19076,23,0,0,1000,99);
for(new haus=1;haus<MAX_Baum;haus++)
{
LoadHaus(haus);
}
return 1;
}public OnFilterScriptExit()
{
for(new haus=1;haus<MAX_Baum;haus++)
{
KillHaus(haus);
}
return 1;
}ocmd:wbaum(playerid,params[])
{
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
CreateHaus(x,y,z);
SetPlayerPos(playerid,x+2,y+2,z);
return 1;
}
stock LoadHaus(hausid)
{
new pfad[50];
format(pfad,50,"/w_Baum/%d.txt",hausid);
if(!fexist(pfad))return 0;
HausInfo[hausid][haus_x] = dini_Float(pfad,"x");//
HausInfo[hausid][haus_y] = dini_Float(pfad,"y");//
HausInfo[hausid][haus_z] = dini_Float(pfad,"z");//
HausInfo[hausid][haus_pickup] = CreateObject(19076,HausInfo[hausid][haus_x],HausInfo[hausid][haus_y],HausInfo[hausid][haus_z]-1,0,0,0); //erstellt ein Pickup an den Hauskoordinaten
return 1;//CreateObject(19076, x, y - 0.7, z - 1, 0.0, 0.0, a - 90.0);
}
stock KillHaus(hausid)
{
return DestroyObject(HausInfo[hausid][haus_pickup]);
}
stock CreateHaus(Float:x,Float:y,Float:z) // die ersten 3 Werte sind die Koordinaten, der 4. der Preis und der 5. der Besitzer
{
new pfad[50];
for(new haus=1;haus<MAX_Baum;haus++)
{
format(pfad,50,"/w_Baum/%d.txt",haus);
if(!fexist(pfad))
{
dini_Create(pfad);
dini_FloatSet(pfad,"x",x);
dini_FloatSet(pfad,"y",y);
dini_FloatSet(pfad,"z",z);
return LoadHaus(haus);
}
}
return 1;
}
stock sscanf(sstring[], format[], {Float,_}:...)
{
#if defined isnull
if (isnull(sstring))
#else
if (sstring[0] == 0 || (sstring[0] == 1 && sstring[1] == 0))
#endif
{
return format[0];
}
#pragma tabsize 4
new
formatPos = 0,
sstringPos = 0,
paramPos = 2,
paramCount = numargs(),
delim = ' ';
while (sstring[sstringPos] && sstring[sstringPos] <= ' ')
{
sstringPos++;
}
while (paramPos < paramCount && sstring[sstringPos])
{
switch (format[formatPos++])
{
case '\0':
{
return 0;
}
case 'i', 'd':
{
new
neg = 1,
num = 0,
ch = sstring[sstringPos];
if (ch == '-')
{
neg = -1;
ch = sstring[++sstringPos];
}
do
{
sstringPos++;
if ('0' <= ch <= '9')
{
num = (num * 10) + (ch - '0');
}
else
{
return -1;
}
}
while ((ch = sstring[sstringPos]) > ' ' && ch != delim);
setarg(paramPos, 0, num * neg);
}
case 'h', 'x':
{
new
num = 0,
ch = sstring[sstringPos];
do
{
sstringPos++;
switch (ch)
{
case 'x', 'X':
{
num = 0;
continue;
}
case '0' .. '9':
{
num = (num << 4) | (ch - '0');
}
case 'a' .. 'f':
{
num = (num << 4) | (ch - ('a' - 10));
}
case 'A' .. 'F':
{
num = (num << 4) | (ch - ('A' - 10));
}
default:
{
return -1;
}
}
}
while ((ch = sstring[sstringPos]) > ' ' && ch != delim);
setarg(paramPos, 0, num);
}
case 'c':
{
setarg(paramPos, 0, sstring[sstringPos++]);
}
case 'f':
{new changestr[16], changepos = 0, strpos = sstringPos;
while(changepos < 16 && sstring[strpos] && sstring[strpos] != delim)
{
changestr[changepos++] = sstring[strpos++];
}
changestr[changepos] = '\0';
setarg(paramPos,0,_:floatstr(changestr));
}
case 'p':
{
delim = format[formatPos++];
continue;
}
case '\'':
{
new
end = formatPos - 1,
ch;
while ((ch = format[++end]) && ch != '\'') {}
if (!ch)
{
return -1;
}
format[end] = '\0';
if ((ch = strfind(sstring, format[formatPos], false, sstringPos)) == -1)
{
if (format[end + 1])
{
return -1;
}
return 0;
}
format[end] = '\'';
sstringPos = ch + (end - formatPos);
formatPos = end + 1;
}
case 'u':
{
new
end = sstringPos - 1,
id = 0,
bool:num = true,
ch;
while ((ch = sstring[++end]) && ch != delim)
{
if (num)
{
if ('0' <= ch <= '9')
{
id = (id * 10) + (ch - '0');
}
else
{
num = false;
}
}
}
if (num && IsPlayerConnected(id))
{
setarg(paramPos, 0, id);
}
else
{
#if !defined foreach
#define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
#define __SSCANF_FOREACH__
#endif
sstring[end] = '\0';
num = false;
new
name[MAX_PLAYER_NAME];
id = end - sstringPos;
foreach (Player, playerid)
{
GetPlayerName(playerid, name, sizeof (name));
if (!strcmp(name, sstring[sstringPos], true, id))
{
setarg(paramPos, 0, playerid);
num = true;
break;
}
}
if (!num)
{
setarg(paramPos, 0, INVALID_PLAYER_ID);
}
sstring[end] = ch;
#if defined __SSCANF_FOREACH__
#undef foreach
#undef __SSCANF_FOREACH__
#endif
}
sstringPos = end;
}
case 's', 'z':
{
new
i = 0,
ch;
if (format[formatPos])
{
while ((ch = sstring[sstringPos++]) && ch != delim)
{
setarg(paramPos, i++, ch);
}
if (!i)
{
return -1;
}
}
else
{
while ((ch = sstring[sstringPos++]))
{
setarg(paramPos, i++, ch);
}
}
sstringPos--;
setarg(paramPos, i, '\0');
}
default:
{
continue;
}
}
while (sstring[sstringPos] && sstring[sstringPos] != delim && sstring[sstringPos] > ' ')
{
sstringPos++;
}
while (sstring[sstringPos] && (sstring[sstringPos] == delim || sstring[sstringPos] <= ' '))
{
sstringPos++;
}
paramPos++;
}
do
{
if ((delim = format[formatPos++]) > ' ')
{
if (delim == '\'')
{
while ((delim = format[formatPos++]) && delim != '\'') {}
}
else if (delim != 'z')
{
return delim;
}
}
}
while (delim > ' ');
return 0;
}
euer Diavolonew -
Ey das ist ja nach Haxlers Haus System gemacht
Man könnte es etwas umschreiben anstatt Haus WBaum etc.
-
kommt vieleicht im nächsten update mit der removefunktion zusammen
hab aber diese woche nicht soviel zeit sonst hätte ich es auch geändert
//Edit vom 25.11.2014
Habe gerade gesehen, dass die Include noch sehr oft verwendet wird, daher kommt ein Großes Update
Nun zur Frage, wollte ihr es per dini, mySQL oder SQL? oder mehrere zusammen?
Ich würde mich Morgen bzw. Übermorgen ransetzen. -
Eigentlich könntest du doch auch einfach 3 Versionen anfertigen?
Das wäre das leichteste. Somit wäre für jeden was dabei -
Mach es via defines das jeder das hat was er will.
Achja, "MySQL oder SQL" ? SQL ist die sprache, MySQL die Datenbanksoftware, du meinst sicher SQLite.