mach mal pName dahin, wo es auch benutzt wird.
new pName[256];
@surrender geh woanders weiter spammen.
mach mal pName dahin, wo es auch benutzt wird.
new pName[256];
@surrender geh woanders weiter spammen.
new pName[256];
strtok wird benötigt.
ganz unten im script einfügen:
strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
index++;
}
new offset = index;
new result[20];
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}
Zitatwarning 219: local variable "save" shadows a variable at a preceding level
du hast die save 3x definiert.
#include <a_samp>
#include <dini>
#include <Dudb>
new save[128];
#if defined FILTERSCRIPT
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" Blank Filterscript by your name here");
print("--------------------------------------\n");
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
#else
main()
{
print("\n----------------------------------");
print(" Blank Gamemode by your name here");
print("----------------------------------\n");
}
#endif
enum Info
{
passwort[128], // 128 steht für die maximale länge des passworts
skin,
};
new pInfo[MAX_PLAYERS][Info];
new bool:loggedin[MAX_PLAYERS];
public OnGameModeInit()
{
// Don't use these lines if it's a filterscript
SetGameModeText("Blank Script");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
return 1;
}
public OnPlayerConnect(playerid)
{
new name[128]; // Dies machen wir um den Namen vom Spieler aufzuschreiben || Hiermit können wir sagen, dass etwas gespeichert werden soll
GetPlayerName(playerid,name,sizeof(name)); // Dies sagt, er soll( vom Spieler, den namen, in der größe name aufschreiben)
format(save,sizeof(save),"/Spieler/%s.ini",name); // Hier wird gechekt, wo der Spieler gespeichert ist, bzw. wo ein Spieler angelegt werden soll.
if(dini_Exists(save)) // Hier wird geprüft, ob die Datei des Spielers schon existiert.
{ // Wenn ja, sende einen Text und lade den Skin und das Geld
SendClientMessage(playerid, 0x33CCFFAA, "Willkommen bei SA:MP 0.3 Server");
SendClientMessage(playerid, 0xFFFFFFAA, "Dein Account wurde wiedererkannt.");
SendClientMessage(playerid, 0xFFFFFFAA, "Du kannst dich jetzt einloggen.");
SendClientMessage(playerid, 0xFFFFFFAA, "Benutze dazu /login [passwort].");
GivePlayerMoney(playerid,dini_Int(save,"Geld")); // Hier wird das geld dem Spieler gegeben, was er vorher hatte
SetPlayerSkin(playerid,dini_Int(save,"Skin")); // Hier wird der Skin des Spielers geladen
}
else
{
if(!dini_Exists(save)) // Wenn kein Spieler mit dem Namen existiert
{ //Sende einen Text
SendClientMessage(playerid, 0x33CCFFAA, "Willkommen bei SA:MP 0.3 Server");
SendClientMessage(playerid, 0xFFFFFFAA, "Du hast noch keinen Account.");
SendClientMessage(playerid, 0xFFFFFFAA, "Du kannst dich jetzt registrieren.");
SendClientMessage(playerid, 0xFFFFFFAA, "Benutze dazu /register [passwort].");
}
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
new name[128];// Gleiche
GetPlayerName(playerid,name,sizeof(name)); // wie
format(save,sizeof(save),"/Spieler/%s.ini",name);// oben
if(dini_Exists(save)) // steht
{
dini_IntSet(save,"Geld",GetPlayerMoney(playerid)); // speichert das aktuelle Geld, was der Spieler zum schluss hatte
dini_IntSet(save,"Skin",GetPlayerSkin(playerid)); // speichert den aktuellen Skin, welchne der Spieler zum schluss hatte
}
return 1;
}
public OnPlayerSpawn(playerid)
{
new name[128];// Gleiche
GetPlayerName(playerid,name,sizeof(name)); // wie
format(save,sizeof(save),"/Spieler/%s.ini",name);// oben
if(loggedin[playerid] == false) //Wenn er nicht eingeloggt ist
{
SendClientMessage(playerid, 0xAA3333AA, "Du musst dich Einloggen bevor du spawnst!");
Kick(playerid); // Kicke den Spieler
}
SetPlayerSkin(playerid,dini_Int(save,"Skin")); //lade und setze den gespeicherten Skin
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
new spieler[MAX_PLAYER_NAME];
if(strcmp(strget(cmdtext,0), "/register", true) == 0)
{
new save[40]; // Erstelle einen neuen String "save", wobei 40 Wörter verwendet werden können.
GetPlayerName(playerid,spieler,sizeof(spieler));
format(save, sizeof(save),"Spieler/%s.ini",spieler); //Speicherort
if(!dini_Exists(save)) // wenn der Spieler sich regestriert und es noch keine .ini Datei mit seinem Namen gibt
{
dini_Create(save); // Erstelle eine Neue .ini Datei
dini_IntSet(save,"passwort",udb_hash(strget(cmdtext,1))); // Setze in die .ini Datei(save,"dass passwort", welches er eingegeben hat) || das udb_hash verschlüsselt das Passwort in der .ini. Dazu benötigen wir die oben angegebene Include DUBD.
SendClientMessage(playerid, 0x33AA33AA, "***Dein Account wurde erfolgreich registriert***");
SendClientMessage(playerid, 0x33AA33AA, "***Nutze /login [Passwort] um dich einzuloggen***");
}
else
{
if(dini_Exists(save)) // Wenn beim regestrieren die Datei schon besteht
{
SendClientMessage(playerid, 0xAA3333AA, "Der Account ist bereits registriert");
}
}
return 1;
}
if(strcmp(strget(cmdtext,0), "/login", true) == 0)
{
new save[40], s2[256]; //gleiche wie oben
GetPlayerName(playerid,spieler,sizeof(spieler));
format(save,sizeof(save),"Spieler/%s.ini",spieler);
if(dini_Exists(save)) // wenn Datei existiert
{
s2=dini_Get(save,"passwort"); // lade das Passwort
if(strval(s2)==udb_hash(strget(cmdtext,1))) // wenn die Eingabe nach /login mit dem Passwort von der registration übereinstimmt
{
loggedin[playerid] = true; //sage dem Server, dass der Spieler eingeloggt ist.
SendClientMessage(playerid, 0x33CCFFAA, "***Du hast dich erfolgreich eingeloggt***");
SpawnPlayer(playerid);
}
else // wenn das passwort nicht stimmt
{
SendClientMessage(playerid, 0xAA3333AA, "Passwort Falsch!");
}
}
return 1;
}
stock strget(strx[], pos, search = ' ')
{
new arg, ret[128], idxx;
for (new i = 0; i < strlen(strx); i++)
{
if(strx[i] == search || i == strlen(strx) || strx[i + 1] == 10)
{
arg++;
if (arg == pos + 1)
{
ret[i-idxx] = EOS;
return ret;
}
else if (arg == pos)
idxx= i+1;
}
else if (arg == pos)
ret[i - idxx] = strx[i];
}
return ret;
}
Also ich bekomme nichts zu Weihnachten.
wozu denn das überhaupt?
naja, 2/10
benutzt du vista?? oder windows 7?
mach mal rechtsklick auf mta-race dann als administrator ausführen, dann deine map nochmal save, dann müsste es da sein.
man jetzt nerv nicht mit deiner religion rum.
wie dogzone gesagt hatte, sonst verjagst du satan und seine maps.
aber wie auch immer, "WIR SIND KEINE KIRCHE."
Das ist sehr kurz gefasst , ich kenne mich zwar nicht gut aus , aber naja:
Als erstes kommt oben (glaube ich) #define FILTERSCRIPT
spam woanders weiter.
Stefan benutz das hier: http://convertffs.com/objects/
man die kiddies heut zu tage, benutz mal die sufu.
extra bedeutung: suchfunktion.
wenn du scripten willst, dann schau weiter tutorials an. ansonsten kanns du dir scripts im showroom ansehen.
kann ich nicht gebrauchen, aber gut für noobs. 2/10
falscher bereich du könntest sammelthread scripting fragen thread benutzen.
poste mal deine errors
du musst nur das if isplayeradmin entfernen.
kann ich zwar nicht gebrauchen, aber trotzdem nicht schlecht, 8/10
gab es schon nicht diesen thread?
na endlich mal jemand, der nicht den bsn genommen hat.
8/10
Tiarad daran gedacht?
ZitatSchnacke meint mit "down" auch die Seite auf der der Client geuppt war (gtamp.de) und nicht den GTA:U MP
Ich habs für euch mal geuppt, den Client
naja nicht so mein fall, 6/10
kann ich nicht gebrauchen, aber naja 6/10