Also, du musst folgendes tun:
-Order names "Accounts" bei den Scriptfiles.
-Server starten & drauf gehen.
-Ganz wichtig -> Disconnecten nicht den Server stoppen. Bei einem Serverstop wird der Account nicht gespeichert.
-Dann kannst du dir im Ordner Accounts die .ini Datei mit einem normalen Editor öffnen & dein Adminlevel auf 5 setzen.
Mit Freundlichen Grüßen,
NoLimit
Beiträge von NoLimit
-
-
Welches System benutzt du zum Speichern/Laden?
-
Hol dir am besten mal den DayZ Commander. Damit kannst du dir easy die neuste Version holen.
-
Der Login/Register Bug sollte mit diesem Update gefixt sein.
Mit Freundlichen Grüßen,
NoLImit -
Alles anzeigen
Alles anzeigen
Ich werde den Fehler so schnell wie möglich beheben, nur war ich im Urlaub und hatte schon lange keine Lust mehr zu scripten. Spätestens übermorgen sollte der Fehler behoben sein.
-
Mach einfach mal:
GivePlayerMoney(playerid,Geldabheben); -
Du solltest es eigentlich einfach nur übersetzen:
!str(ing)c(o)mp(are)(key,dini_Get(Spielerdatei,"Passwort"),false))Heißt soviel wie: Er vergleicht das eingegebene mit dem richtigen Passwort. Wenn es falsch ist passiert das, was danach folgt (In deinem Fall: er lädt den Account)
-
SavePlayer Code
stock SavePlayer(playerid)
{
if(GetPVarInt(playerid,"loggedin")==1)
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
dini_IntSet(Spielerdatei,"Skin",GetPlayerSkin(playerid));
dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
dini_IntSet(Spielerdatei,"Banned",GetPVarInt(playerid,"Banned"));
}
return 1;
}OnPlayerDisconnect
public OnPlayerDisconnect(playerid, reason)
{
if(GetPVarInt(playerid,"loggedin")==1)
{
SavePlayer(playerid);
}
return 1;
} -
Du holst dir am besten den Samp Colour-Picker. Damit kannst du dir jede Farbe individuell selbst "erstellen". Also normale Hexcode Farben & HTML-Farben
Mfg,
Tim -
Hey,
Adde mich einfach mal in Skype (timgd1). Ich kann dir dann ab Sonntag helfen , da ich das Wochenende nicht Zuhause bin
Mfg,
Tim -
Vielen Dank für das Feedback
-
Du musst das Geld natürlich auch nache dem Loginprozess laden
-
Ich kann dir auch meins anbieten, siehe Signatur
-
Such einfach mal bei Google nach dem originalen Godfather Script.
-
Du musst bei Geld anstatt %s -> %i einbauen, sprich:
if(strcmp(cmdtext, "/stats", true)==0)
{
new string[128];
new fraktname[64];
new money=GetPlayerMoney(playerid);
switch(GetPVarInt(playerid,"Fraktion"))
{
case 0:{fraktname="Keine";}
case 1:{fraktname="SAPD";}
case 2:{fraktname="Army";}
}
SendClientMessage(playerid, Blau,string);
//1 Reihe
format(string,sizeof(string),"[Name: %s] [Level: %i] [Adminlevel: %i] [Fraktion: %s] [Geld: %i]",SpielerName(playerid),GetPlayerScore(playerid),GetPVarInt(playerid,"Adminlevel"),fraktname,money);
SendClientMessage(playerid, Blau, string);
return 1;
}Geld ist ja genauso wie Adminlevel & Level eine Zahl. Die musst du mit %i (Integer) wiedergeben
-
Das ist total einfach:
ShowPlayerDialog(playerid,DIALOG_DIALOG,DIALOG_STYLE_MSGBOX,"Handy","Möchtest du ein Handy kaufen?","Ja",""); -
Ich erkläre mich bereit dazu, melde dich einfach per PM bei mir.
Mit Freundlichen Grüßen,
Tim -
Also ich hätte hier ein Beispiel mit ocmd:
ocmd:afk(playerid,params)
{
if(GetPVarInt(playerid,"Afk")==1)
{
SendClientMessage(playerid,FARBE,"Du bist bereits Afk gemeldet. Benutze /back um alles wieder nutzen zu können.");
}
SetPVarInt(playerid,"Afk",1);
SendClientMessage(playerid,FARBE,"Du hast dich soeben Afk gemeldet. Benutze /back um alles wieder nutzen zu können.");
TogglePlayerControllable(playerid,1);
return 1;
}ocmd:back(playerid,params)
{
if(GetPVarInt(playerid,"Afk")==0)
{
SendClientMessage(playerid,FARBE,"Du bist nicht Afk gemeldet.");
}
SetPVarInt(playerid,"Afk",0);
SendClientMessage(playerid,FARBE,"Du bist soeben aus dem Afk-Zustand zurückgekehrt.");
TogglePlayerControllable(playerid,0);
return 1;
}Das wäre jetzt ein ziemlich einfaches Beispiel mit Dini & Ocmd.. umschreiben sollte nicht so schwer sein
Mit Freundlichen Grüßen,
NoLimit -
Danke für das Feedback!
Ich erinnere nochmal: Bei Ideen für Befehle oder sonstiges bitte bescheid sagenMit Freundlichen Grüßen
NoLimit/push1
-
Nimm dir am besten erstmal den Sccanf Code (Irgendwo ins Script(nicht unter einen Callback))
Spoiler anzeigen 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':
{Spoiler anzeigen 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;
}
Enum:
enum PlayerInfo
{
pVerheiratet
}
new PlayerInfo[MAX_PLAYERS][pInfo]Zum Command dann:
ocmd:setverheiratet(playerid,params[])
{
new pID; // Eine Variable die den Spieler definiert
if(sscanf(params,"u",pID))return SendClientMessage(playerid,FARBE,"Benutzung: /setverheiratet [Spielername]"); // Fangen wir vorne an. "u" steht dafür, dass man dann entweder eine ID oder aber den Spielernamen eines Spielers verwenden kann um ihn dann verheiratet zu setten. Danach wird die Variable "pID" mit "u" definiert. Heißt: Mit pID kann man nun Dinge an anderen Spielern verändern.
SpielerInfo[pID][pVerheiratet]==1;
return 1;
}Mit Freundlichen Grüßen,
NoLimit