Fehler bei Login/Register System

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
  • Ich habe mir ein Login/Register System gescriptet und folgende Fehler bekommen
    C:\Users\Paul\Desktop\Reallife Server\gamemodes\Reallife.pwn(55) : warning 219: local variable "name" shadows a variable at a preceding levelC:\Users\Paul\Desktop\Reallife Server\gamemodes\Reallife.pwn(261) : warning 217: loose indentationC:\Users\Paul\Desktop\Reallife Server\gamemodes\Reallife.pwn(262) : warning 217: loose indentationC:\Users\Paul\Desktop\Reallife Server\gamemodes\Reallife.pwn(527) : warning 219: local variable "name" shadows a variable at a preceding levelC:\Users\Paul\Desktop\Reallife Server\gamemodes\Reallife.pwn(612) : warning 219: local variable "name" shadows a variable at a preceding levelC:\Users\Paul\Desktop\Reallife Server\gamemodes\Reallife.pwn(626) : warning 219: local variable "name" shadows a variable at a preceding levelC:\Users\Paul\Desktop\Reallife Server\gamemodes\Reallife.pwn(645) : warning 219: local variable "name" shadows a variable at a preceding levelC:\Users\Paul\Desktop\Reallife Server\gamemodes\Reallife.pwn(667) : warning 219: local variable "name" shadows a variable at a preceding levelC:\Users\Paul\Desktop\Reallife Server\gamemodes\Reallife.pwn(679) : error 001: expected token: "-identifier-", but found "("C:\Users\Paul\Desktop\Reallife Server\gamemodes\Reallife.pwn(682) : error 021: symbol already defined: "GetPlayerName"C:\Users\Paul\Desktop\Reallife Server\gamemodes\Reallife.pwn(683) : error 010: invalid function or declarationC:\Users\Paul\Desktop\Reallife Server\gamemodes\Reallife.pwn(686) : warning 203: symbol is never used: "name"Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


    3 Errors.


    Wollte wissen wieso uund ob man das beheben kann
    Script

    #include <a_samp>#include <Ocmd>#include <dini>
    #define weiß 0xFAFAFAFF#define rot 0xFF0005FF#define SpielerName #define BLAU 0x0087FFFF#define ROT 0xE10000FF#define DIALOG_REGISTER 1//das ist das Dialog was kommt wenn man sich Regestriert#define DIALOG_LOGIN 2//das ist das Dialog wenn man sich einloggen möchte






    main(){ print("\n----------------------------------"); print(" Script by funy888"); print("----------------------------------\n");}


    public OnGameModeInit(){


    SetGameModeText("Reallife Server"); AddPlayerClass(95,1714.2986,-1911.9281,13.5667,276.4668,0,0,0,0,0,0); AddStaticVehicle(409,1716.4517,-1862.2272,13.3765,92.6735,1,1); 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){PlayAudioStreamForPlayer(playerid, "http://www.youtube.com/watch?v=5Vp0GehysT4");if(IsPlayerNPC(playerid))return 1;new Spielerdatei[64];new name[MAX_PLAYER_NAME];GetPlayerName(playerid,name,sizeof(name));format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);if(dini_Exists(Spielerdatei)){ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein.","Login","Abbrechen");}else{ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Gib bitte das gewünschte Passwort ein:","Register","Abbrechen");}return 1;}




    public OnPlayerDisconnect(playerid, reason){if(GetPVarInt(playerid,"loggedin")==1){SpielerSpeichern(playerid);}return 1;}
    public OnPlayerSpawn(playerid){
    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[]){ if (strcmp("/help", cmdtext, true, 10) == 0) {
    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[])
    {if(dialogid==DIALOG_LOGIN){if(response==0){ SendClientMessage(playerid,BLAU,"Du hast den Vorgang abgebrochen."); Kick(playerid); return 1;}if(response==1){ if(!strlen(inputtext)) { SendClientMessage(playerid,BLAU,"Das Passwort war nicht lang genug."); ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein.","Login","Abbrechen"); return 1; } else { Login(playerid,inputtext); return 1;}}}if(dialogid==DIALOG_REGISTER){if(response==0){ SendClientMessage(playerid,BLAU,"Du hast den Vorgang abgebrochen."); Kick(playerid); return 1;}if(response==1){ if(!strlen(inputtext)) { SendClientMessage(playerid,BLAU,"Das Passwort war nicht lang genug."); ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Gib bitte das gewünschte Passwort ein:","Register","Abbrechen"); return 1; } else { Register(playerid,inputtext); return 1;}}}return 1;}public OnPlayerClickPlayer(playerid, clickedplayerid, source){ return 1;}
    ocmd:heal(playerid,params[]){ new pID,string[128],string2[128]; if(!IsPlayerConnected(playerid))return SendClientMessage(playerid,rot,"Dieser Spiler ist nich Online !"); if(sscanf(params,"u",pID))return SendClientMessage(playerid,rot, "USAGE: /heal [ID]"); SetPlayerHealth(playerid,100.00); format(string,sizeof(string),"Du hast %s geheilt",SpielerName(pID)); format(string2,sizeof(string2),"Du wurdest vom Admin %s geheilt",SpielerName(playerid)); SendClientMessage(playerid,weiß,string2); SendClientMessage(pID,weiß,string2); return 1;}ocmd:spawn(playerid,params[]){ new pID,string[128],string2[128]; if(!IsPlayerConnected(playerid))return SendClientMessage(playerid,rot,"Dieser Spiler ist nich Online !"); if(sscanf(params,"u",pID))return SendClientMessage(playerid,rot, "USAGE: /spawn [ID]"); SetPlayerPos(playerid,1714.2986,-1911.9281,13.5667); format(string,sizeof(string),"Du hast %s gespawnt",SpielerName(pID)); format(string2,sizeof(string2),"Du wurdest vom Admin %s gespawnt",SpielerName(playerid)); SendClientMessage(playerid,weiß,string2); SendClientMessage(pID,weiß,string2); return 1;}/*----------------------------------------------------------------------------*-Function: sscanfParams: string[] - String to extract parameters from. format[] - Parameter types to get. {Float,_}:... - Data return variables.Return: 0 - Successful, not 0 - fail.Notes: A fail is either insufficient variables to store the data or insufficient data for the format string - excess data is disgarded.
    A string in the middle of the input data is extracted as a single word, a string at the end of the data collects all remaining text.
    The format codes are:
    c - A character. d, i - An integer. h, x - A hex number (e.g. a colour). f - A float. s - A string. z - An optional string. pX - An additional delimiter where X is another character. '' - Encloses a litteral string to locate. u - User, takes a name, part of a name or an id and returns the id if they're connected.
    Now has IsNumeric integrated into the code.
    Added additional delimiters in the form of all whitespace and an optioanlly specified one in the format string.-*----------------------------------------------------------------------------*/
    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;}stock Register(playerid,key[]){new Spielerdatei[64];new name[MAX_PLAYER_NAME];GetPlayerName(playerid,name,sizeof(name));format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);dini_Create(Spielerdatei);dini_Set(Spielerdatei,"Passwort",key);SendClientMessage(playerid,BLAU,"Erfolgreich registriert.");SetPlayerScore(playerid,0);SetPVarInt(playerid,"loggedin",1);return 1;}
    stock Login(playerid,key[]){new Spielerdatei[64];new name[MAX_PLAYER_NAME];GetPlayerName(playerid,name,sizeof(name));format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false)){LoadAccount(playerid);SendClientMessage(playerid,BLAU,"Erfolgreich eingeloggt.");return 1;}else{SendClientMessage(playerid,BLAU,"Falsches Passwort.");ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein.","Login","Abbrechen");return 1;}}stock LoadAccount(playerid){new Spielerdatei[64];new name[MAX_PLAYER_NAME];GetPlayerName(playerid,name,sizeof(name));format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));SetPVarInt(playerid,"Fraktion",dini_Int(Spielerdatei,"Fraktion"));SetPVarInt(playerid,"Baned",dini_Int(Spielerdatei,"Baned"));if(GetPVarInt(playerid,"Baned")==1){SendClientMessage(playerid,ROT,"Du bist vom Server gebannt.");Kick(playerid);}SetPVarInt(playerid,"loggedin",1);return 1;}
    stock SpielerSpeichern(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,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));dini_IntSet(Spielerdatei,"Fraktion",GetPVarInt(playerid,"Fraktion"));dini_IntSet(Spielerdatei,"Baned",GetPVarInt(playerid,"Baned"));}return 1;}
    stock SpielerName(playerid){new name[MAX_PLAYER_NAME];GetPlayerName(playerid,name,sizeof(name));return name;}