er meinte ein label
Beiträge von Slash™
-
-
ein 3d laybel
ein befehl und ein timer und bisschen hirn
probiere immer erst selber auszuprobieren, besser als von anderen vorgeben lassen -
bei der sscanf meldung unten das ins script
stock sscanf(string[], format[], {Float,_}:...)
{
#if defined isnull
if (isnull(string))
#else
if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
#endif
{
return format[0];
}
#pragma tabsize 4
new
formatPos = 0,
stringPos = 0,
paramPos = 2,
paramCount = numargs(),
delim = ' ';
while (string[stringPos] && string[stringPos] <= ' ')
{
stringPos++;
}
while (paramPos < paramCount && string[stringPos])
{
switch (format[formatPos++])
{
case '\0':
{
return 0;
}
case 'i', 'd':
{
new
neg = 1,
num = 0,
ch = string[stringPos];
if (ch == '-')
{
neg = -1;
ch = string[++stringPos];
}
do
{
stringPos++;
if ('0' <= ch <= '9')
{
num = (num * 10) + (ch - '0');
}
else
{
return -1;
}
}
while ((ch = string[stringPos]) > ' ' && ch != delim);
setarg(paramPos, 0, num * neg);
}
case 'h', 'x':
{
new
num = 0,
ch = string[stringPos];
do
{
stringPos++;
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 = string[stringPos]) > ' ' && ch != delim);
setarg(paramPos, 0, num);
}
case 'c':
{
setarg(paramPos, 0, string[stringPos++]);
}
case 'f':
{new changestr[16], changepos = 0, strpos = stringPos;
while(changepos < 16 && string[strpos] && string[strpos] != delim)
{
changestr[changepos++] = string[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(string, format[formatPos], false, stringPos)) == -1)
{
if (format[end + 1])
{
return -1;
}
return 0;
}
format[end] = '\'';
stringPos = ch + (end - formatPos);
formatPos = end + 1;
}
case 'u':
{
new
end = stringPos - 1,
id = 0,
bool:num = true,
ch;
while ((ch = string[++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
string[end] = '\0';
num = false;
new
name[MAX_PLAYER_NAME];
id = end - stringPos;
foreach (Player, playerid)
{
GetPlayerName(playerid, name, sizeof (name));
if (!strcmp(name, string[stringPos], true, id))
{
setarg(paramPos, 0, playerid);
num = true;
break;
}
}
if (!num)
{
setarg(paramPos, 0, INVALID_PLAYER_ID);
}
string[end] = ch;
#if defined __SSCANF_FOREACH__
#undef foreach
#undef __SSCANF_FOREACH__
#endif
}
stringPos = end;
}
case 's', 'z':
{
new
i = 0,
ch;
if (format[formatPos])
{
while ((ch = string[stringPos++]) && ch != delim)
{
setarg(paramPos, i++, ch);
}
if (!i)
{
return -1;
}
}
else
{
while ((ch = string[stringPos++]))
{
setarg(paramPos, i++, ch);
}
}
stringPos--;
setarg(paramPos, i, '\0');
}
default:
{
continue;
}
}
while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
{
stringPos++;
}
while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
{
stringPos++;
}
paramPos++;
}
do
{
if ((delim = format[formatPos++]) > ' ')
{
if (delim == '\'')
{
while ((delim = format[formatPos++]) && delim != '\'') {}
}
else if (delim != 'z')
{
return delim;
}
}
}
while (delim > ' ');
return 0;
}
bei den anderen heißt das das es undefiniert is, also oben definieren, weiß aber leider nicht wie, da ich das script nicht kenne
oder im m_bot sehen ob da ob du die defines siehst und die in den GM kopieren -
Hey
undzwar hab ich die frage ob man erstellte query accounts irgendwo anzeigen lassen kann, und die dann löschen kann.
danke im vorraus.MfG
-
wann wird der server eig eröffnet?
-
Ich hoffe am 12.05.2013
wird es da auch schon die lite geben? -
falscher bereich
-
ok habs hinbekommen, kleiner denkfehler.
-
was soll es beinhalten?
-
Hey, ich hab das banksystem aus dem tutorial SoulMan angesehen und scheitere an der MySQL abspeicherung, ich hab keinen plan wie ich es angehen soll,
GUI-Banksystem by SoulManwie sol ich das abspeichern?
MfG
-
Ich würd dir erstmal das Tutorial von maddin ansehen, da wird dir alles erklärt,
[ SCRIPTING ] MySQL (Installation, Zugriff, Einstellungen, Login & Register Beispiel)
-
int ist integer, da wird eine zahl gespeichert
bei float wird ein wert mit einem punbkt also 100.0 wie bei dem heal,aber mach doch einfach ein textdokument und mach am ende statt .txt .sql drauß. öffne es mit notpad++
und bau die tabelle so aufDROP TABLE IF EXISTS `accounts`;
CREATE TABLE `accounts` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`Name` varchar(24) NOT NULL, //für int
`Heal` float(24) NOT NULL, //für floats
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=220 DEFAULT CHARSET=latin1; -
also dz erstellst die sql tabelle aus dem script, probiere sie mal per "hand" zu erstellen
-
okay, danke dir
-
IPTables; Also jemanden auf die Firewall setzen.
iptables -A INPUT -s 123.45.67.89 -j DROP
und wie kann man das wieder entfernen? -
Guten Morgen ihr lieben,
Ich möchte einen GTA -San Andreas "SA:MP" Reallife Server eröffnen.Nur da ich bis Dato zu dumm war zum Scripten und ich Nemesus,MrMonatTutorials Runtergeladen und gebrannt habe damit ich sie mir immer wieder anschauen kann.Das hat mir allerdings auch nicht weitergeholfen.Die Grundlagen habe ich bisschen Drauf mein lehrer müsste mir nur erklären wie ich frakkautos z.b nicht im script bunkere sondern in einer Datei,Wie man Fraktionen Erstellt(Ordentlich),Wie man Gang fight Gebiete erstellt,Gang Gebiete,usw.Da ich aber kein geld habe würde ich mich sehr freuen wenn einer sich erbahmen würde und mit mir ein RL Script aufsetzten Würde oder mir einfach sagen was ich dahinschreiben soll und dann erklären was es mir bringt.
ansehen ist schlecht, les dir mal paar tuts hier im fprum durch, und probiere selber aus. und wenn du die grundlagen hast sehe dir die funktionen auf samp wiki an.
da lernt man einiges mehr durchs ansehen -
schreib es mal direkt unter dem showtread, sniper antwortet da eig recht schnell
-
wenn du mit mysql arbeitest müsste das in etwa so aussehen, ungetestet
forward armygII();
ocmd:rangeban(playerid,params[])
{
if(IstSpielerAdmin(playerid, 5))//anpassen
{
new pID, reason[128], string[128]; //die defines die wir später brauchen
if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid, 0xAFAFAFAA, "Benutze: /prison [ID] [Grund]");
format(string,sizeof(string),"[ADMCMD]: %s wurde von Admin %s ins Admin Prison geschickt Grund: %s", SpielerName(pID),SpielerName(playerid),reason);
SendClientMessageToAll(0xFF4122FF,string);
SetPlayerPos(i,//koordinate vom AP);
SetTimer("Prison",60000,true);//timer geht 60 min
SpielerInfo[i][Prison]=1;
}
else
{
SendClientMessage(playerid,0xAFAFAFAA,"Du bist kein Admin!");
}
return 1;}
so jetzt brauchst du noch das es abgespeichert wird und was passiert
unten im script machst du den.public prison()
{
SpielerInfo[i][Prisontime]+=1; //in die spieler datei wird jeweils jede minute +1 gemacht
{
if(SpielerInfo[i][Prisontime]==60) //ist dann der wert auf 60 kommt dies
{
SetPlayerPos(i,//koordinaten zum rauskommen);
SpielerInfo[i][Prisontime]=0;
SpielerInfo[i][Prison]=0;
}
}
return 1;
}dann noch in dein enum das es abgespeichert wird
Prison,
Prisontime,nun muss du es noch laden und speichern
beim ladenstock machst du
SpielerInfo[playerid][Prison] = mysql_GetInt("accounts", "Prison", "Name", SpielerInfo[playerid][pName]);
SpielerInfo[playerid][Prisontime] = mysql_GetInt("accounts", "Prisontime", "Name", SpielerInfo[playerid][pName]);beim speicherstock
mysql_SetInt("accounts", "Prison", SpielerInfo[playerid][Prison], "Name", SpielerInfo[playerid][pName]);
mysql_SetInt("accounts", "Prisontime", SpielerInfo[playerid][Prisontime], "Name", SpielerInfo[playerid][pName]);dann noch bei onplayerconnect
if(SpielerInfo[playerid][Prison]==1)
{
Kick(playerid);
}
else
{}wiegesagt ungetestet söllte aber funktionieren.
falls du mit Dini arbeitest einfach uimschereiben
MfG Music4You
-
meinst du wenn sie neuconnecten?
-
mir solltest du es nicht erklären ich weiß es.
Ich meinte es Generell.
Wenn ihr schon sagt das es einfacher geht und ressoursensparender , dann schreib doch auch direkt nen beispiel dabei oder erklärt es.
Aber nicht nur schreiben : Es geht auch einfacher........naja, vieleicht denkst du /ihr ja beim nächsten mal daran
Mfg
PullDown
find ich auch aber naja hauptsache es geht, so versteh ich das wenigstens