Hallo alle zuammen! CIh weiss gar nciht so genau ob cih hier im richtigem Thema bin !?
Aber egal ich habe ein Problem mit meinem Login Script, den ich mit Hilfe von Tutorials gebastelt hab!
Problem steht unten!
#include <a_samp>
#include <a_players>
#include <dini>
#include <Dudb>
new bool:loggedin[MAX_PLAYERS];
#define S2 dini_Get(spielerdatei,"password")
main()
{
print("\n----------------------------------");
print(" GamerTreff RolePlay by Marvin371");
print("----------------------------------\n");
}
public OnGameModeInit()
{
SetGameModeText("GamerTreff RolePlay");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
return 1;
}
public OnGameModeExit()
{
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 pName[256], spielerdatei[256];
GetPlayerName(playerid, pName, sizeof(pName));
format(spielerdatei,sizeof(spielerdatei),"/Spieler/%s.ini",pName);
if (dini_Exists(spielerdatei))
{
SendClientMessage (playerid, 0xFFFFFFFF, "Herzlich Willkommen auf GamerTreff RolePlay!");
SendClientMessage (playerid, 0xFFFFFFFF, "Dieser Name ist bereits regestriert!");
SendClientMessage (playerid, 0xfff493AA, "Bitte logge dich mit /login [PASSWORT] ein!");
GivePlayerMoney(playerid,dini_Int(spielerdatei,"money"));
SetPlayerSkin(playerid,dini_Int(spielerdatei,"skin"));
}
else
if (!dini_Exists(spielerdatei))
{
SendClientMessage (playerid, 0xFFFFFFFF, "Herzlich Willkommen auf GamerTreff RolePlay!");
SendClientMessage (playerid, 0xFFFFFFFF, "Dieser Name ist noch nicht regstriert!");
SendClientMessage (playerid, 0xfff493AA, "Du kannst dich mit /register [PASSWORT] registrieren!");
}
return;
}
public OnPlayerDisconnect(playerid, reason)
{
new pName[256], spielerdatei[256];
GetPlayerName(playerid, pName, sizeof(pName));
format(spielerdatei,sizeof(spielerdatei),"/Spieler/%s.ini",pName);
if(dini_Exists(spielerdatei))
{
dini_IntSet(spielerdatei,"money",GetPlayerMoney(playerid));
dini_IntSet(spielerdatei,"skin",GetPlayerSkin(playerid));
loggedin[playerid] = false;
}
return 1;
}
public OnPlayerSpawn(playerid)
{
new pName[256], spielerdatei[256];
GetPlayerName(playerid, pName, sizeof(pName));
format(spielerdatei,sizeof(spielerdatei),"/Spieler/%s.ini",pName);
if(loggedin[playerid] == false)
{
SendClientMessage(playerid, 0xAA3333AA, "Du musst dich Einloggen bevor du spawnst!");
Kick(playerid);
}
SetPlayerSkin(playerid,dini_Int(spielerdatei,"skin"));
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
return 1;
}
public OnVehicleSpawn(vehicleid)
{
return 1;
}
public OnVehicleDeath(vehicleid, killerid)
{
return 1;
}
public OnPlayerText(playerid, text[])
{
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
new pName[256], spielerdatei[256];
GetPlayerName(playerid, pName, sizeof(pName));
format(spielerdatei,sizeof(spielerdatei),"/Spieler/%s.ini",pName);
if(strcmp(strget(cmdtext,0), "/login", true) == 0)
{
if(dini_Exists(spielerdatei))
{
if(strval(S2)==udb_hash(strget(cmdtext,1)))
{
loggedin[playerid] = true;
SendClientMessage(playerid, 0x33CCFFAA, "Du hast dich erfolgreich eingeloggt");
SpawnPlayer(playerid);
}
else
{
SendClientMessage(playerid, 0xAA3333AA, "Passwort Falsch!");
}
}
return 1;
}
if (strcmp("/register", cmdtext, true, 10) == 0)
{
if (!dini_Exists(spielerdatei))
{
dini_Create(spielerdatei);
dini_IntSet(spielerdatei,"password",udb_hash(strget(cmdtext,1)));
SendClientMessage (playerid, 0xFFFFFFFF, "Du hast dich erfolgreich registriert!");
SendClientMessage (playerid, 0xFFFFFFFF, "Logge dich nun mit /login [PASSWORT] ein!");
}
else
if (dini_Exists(spielerdatei))
{
SendClientMessage (playerid, 0xAA3333AA, "Dieser Account ist bereits registriert!");
return 1;
}
}
return 0;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
return 1;
}
public OnPlayerEnterCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveCheckpoint(playerid)
{
return 1;
}
public OnPlayerEnterRaceCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveRaceCheckpoint(playerid)
{
return 1;
}
public OnRconCommand(cmd[])
{
return 1;
}
public OnPlayerRequestSpawn(playerid)
{
return 1;
}
public OnObjectMoved(objectid)
{
return 1;
}
public OnPlayerObjectMoved(playerid, objectid)
{
return 1;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
return 1;
}
public OnVehicleMod(playerid, vehicleid, componentid)
{
return 1;
}
public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
return 1;
}
public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
return 1;
}
public OnPlayerSelectedMenuRow(playerid, row)
{
return 1;
}
public OnPlayerExitedMenu(playerid)
{
return 1;
}
public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
return 1;
}
public OnRconLoginAttempt(ip[], password[], success)
{
return 1;
}
public OnPlayerUpdate(playerid)
{
return 1;
}
public OnPlayerStreamIn(playerid, forplayerid)
{
return 1;
}
public OnPlayerStreamOut(playerid, forplayerid)
{
return 1;
}
public OnVehicleStreamIn(vehicleid, forplayerid)
{
return 1;
}
public OnVehicleStreamOut(vehicleid, forplayerid)
{
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
return 1;
}
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
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;
}
So... mein Problem ist, dass wenn man den Befehl Login+pw oder register+pw eingibt erst eine fehlermeldung kommt!;
wenn man dann aber wieder login oder register OHNEdas PW dahinter eingibt nimmt er den login/den register an, mit dem zuvor eingegebenen passwort!?
schon beim Kompielieren gibt er warnungen aus!
C:\Dokumente und Einstellungen\Marvin\Desktop\Selfmade Mod\gamemodes\reallife.pwn(126) : warning 217: loose indentation
C:\Dokumente und Einstellungen\Marvin\Desktop\Selfmade Mod\gamemodes\reallife.pwn(136) : warning 217: loose indentation
C:\Dokumente und Einstellungen\Marvin\Desktop\Selfmade Mod\gamemodes\reallife.pwn(164) : warning 217: loose indentation
C:\Dokumente und Einstellungen\Marvin\Desktop\Selfmade Mod\gamemodes\reallife.pwn(319) : warning 203: symbol is never used: "ret_memcpy"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
4 Warnings.
Kann mir da einer helfen?