Beiträge von c4k3

    Ich hab die Lösung für das Problem gefunden:
    So sollte es eig. aussehen:


    public OnPlayerConnect(playerid)
    {
    SetPVarInt(playerid, "Gemutet", 0);
    new Spieler[128];
    format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",getPlayerName(playerid));
    if(dini_Exists(Spieler))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Gib bitte dein Passwort ein:","Absenden","Abbrechen");
    return 1;
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_REGISTRIERUNG,DIALOG_STYLE_PASSWORD,"Registrierung","Gib hier dein zukünftiges Passwort ein:","Absenden","Abbrechen");
    return 1;
    }
    }


    public OnDialogResponse(playerid,dialogid,response,listitem,inputtext[])
    {
    if(dialogid == DIALOG_LOGIN)
    {
    if(response == 1)
    {
    new Spieler[128];
    format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",getPlayerName(playerid));
    if(strlen(inputtext) > 0)
    {
    if(strcmp(inputtext,dini_Get(Spieler,"Passwort"),false) == 0)
    {
    SendClientMessage(playerid,COLOR_GREEN,"Du hast dich erfolgreich eingeloggt!");
    loadPlayer(playerid);
    return 1;
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN_NOCHMAL,DIALOG_STYLE_PASSWORD,"Login (Letzter Versuch)","Das Passwort war falsch! Gib es bitte nochmal richtig ein:","Absenden","Abbrechen");
    return 1;
    }
    }
    ShowPlayerDialog(playerid,DIALOG_LOGIN_NOCHMAL_0,DIALOG_STYLE_PASSWORD,"Login (Letzter Versuch)","Du musst ein Passwort eingeben! Gib es bitte hier richtig ein:","Absenden","Abbrechen");
    return 1;
    }
    else if(response == 0)
    {
    Kick(playerid);
    return 1;
    }
    return 1;
    }
    if(dialogid == DIALOG_REGISTRIERUNG)
    {
    if(response == 1)
    {
    new Spieler[128];
    format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",getPlayerName(playerid));
    dini_Create(Spieler);
    dini_Set(Spieler,"Passwort",inputtext);
    dini_IntSet(Spieler,"Geld",1000);
    dini_IntSet(Spieler,"Level",1);
    dini_IntSet(Spieler,"Rang",0);
    SendClientMessage(playerid,COLOR_GREEN,"Du hast dich erfolgreich registriert.");
    loadPlayer(playerid);
    return 1;
    }
    else if(response == 0)
    {
    Kick(playerid);
    return 1;
    }
    return 1;
    }
    if(dialogid == DIALOG_LOGIN_NOCHMAL)
    {
    if(response == 1)
    {
    new Spieler[128];
    format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",getPlayerName(playerid));
    if(strlen(inputtext) > 0)
    {
    if(strcmp(inputtext,dini_Get(Spieler,"Passwort"),false) == 0)
    {
    SendClientMessage(playerid,COLOR_GREEN,"Du hast dich erfolgreich eingeloggt!");
    loadPlayer(playerid);
    return 1;
    }
    else
    {
    Kick(playerid);
    return 1;
    }
    }
    Kick(playerid);
    return 1;
    }
    else if(response == 0)
    {
    Kick(playerid);
    return 1;
    }
    }
    if(dialogid == DIALOG_LOGIN_NOCHMAL_0)
    {
    if(response == 1)
    {
    new Spieler[128];
    format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",getPlayerName(playerid));
    if(strlen(inputtext) > 0)
    {
    if(strcmp(inputtext,dini_Get(Spieler,"Passwort"),false) == 0)
    {
    SendClientMessage(playerid,COLOR_GREEN,"Du hast dich erfolgreich eingeloggt!");
    loadPlayer(playerid);
    return 1;
    }
    else
    {
    Kick(playerid);
    return 1;
    }
    }
    Kick(playerid);
    return 1;
    }
    else if(response == 0)
    {
    Kick(playerid);
    return 1;
    }
    }
    return 1;
    }


    So geht es bei mir.


    Trotzdem Danke für die sehr schnelle Hilfe
    c4k3

    Hallo Breadfish,
    ich habe ein kleines Problem.
    Ich wollte heute in einem Filterscript Mapicons anlegen.
    Das klappt auch alles ganz gut.
    Nur wollte ich heute das $ Zeichen rot färben.
    Ich weiß aber leider nicht wie.
    Ich habs schon mit dem color-code probiert,
    aber das geht auch nicht.
    Im englischen Wiki habe ich unter der Mapicons-Seite auch nichts dazu gefunden.
    Es wäre schön, wenn mir jemand helfen könnte.


    Dankeschön im Vorraus!
    c4k3

    Liebe Breadfish Gemeinde,
    ich bin noch ziemlich frisch in der Materie,
    und möchte mein Login-System so erweitern,
    dass man 2 Versuche hat sein Passwort einzugeben,
    und danach gekickt wird, allerdings funktioniert mein Code nicht.

    Was habe ich vergessen?


    public OnDialogResponse(playerid,dialogid,response,listitem,inputtext[])
    {
    if(dialogid == DIALOG_LOGIN)
    {
    if(response == 1)
    {
    new Spieler[128];
    format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",getPlayerName(playerid));
    if(strlen(inputtext) > 0)
    {
    if(strcmp(inputtext,dini_Get(Spieler,"Passwort"),false) == 0)
    {
    SendClientMessage(playerid,COLOR_GREEN,"Du hast dich erfolgreich eingeloggt!");
    loadPlayer(playerid);
    return 1;
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN_PASSWORT_FALSCH_NOCHMAL,DIALOG_STYLE_INPUT,"Login (Letzter Versuch)","Das Passwort ist falsch!\nProbier es nochmal:","Absenden","Abbrechen");
    {
    if(response == 1)
    {
    if(strlen(inputtext) > 0)
    {
    if(strcmp(inputtext,dini_Get(Spieler,"Passwort"),false) == 0)
    {
    SendClientMessage(playerid,COLOR_GREEN,"Du hast dich erfolgreich eingeloggt!");
    loadPlayer(playerid);
    return 1;
    }
    else
    {
    Kick(playerid);
    return 1;
    }
    }
    }
    if(response == 0)
    {
    Kick(playerid);
    return 1;
    }
    }
    }
    }
    }
    if(response == 0)
    {
    Kick(playerid);
    return 1;
    }
    return 1;
    }


    Danke für die Hilfe
    c4k3

    Ich hab nun alles so geändert, wie du es gesagt hast.
    Allerdings bleibt von den 3 Errors trotzdem einer übrig, wo ich nicht weiß, wie ich ihn beheben kann.


    public OnDialogResponse(playerid,dialogid,response,listitem,inputtext[])
    {
    if(dialogid==DIALOG_REGISTER){
    if(response)return Kick(playerid);
    new Spieler[25];
    format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",getPlayerName(playerid));
    dini_Create(Spieler);
    dini_Set(Spieler,"Passwort",inputtext);
    loadPlayer(playerid);
    return 1;
    }
    return 1;
    }
    if(response == 0)
    {
    Kick(playerid);
    }
    }


    Der Fehler ist in Zeile 16.


    Dankeschön für die Hilfe
    c4k3

    Dankeschön!
    Die stocks funktionieren nun!


    Nun sind aber immernoch 3 Fehler drinnen:


    Compiler Output:
    C:\Users\c4k3\Desktop\samp03z_svr_R1_win32\gamemodes\test.pwn(293) : error 010: invalid function or declaration
    C:\Users\c4k3\Desktop\samp03z_svr_R1_win32\gamemodes\test.pwn(296) : error 010: invalid function or declaration
    C:\Users\c4k3\Desktop\samp03z_svr_R1_win32\gamemodes\test.pwn(298) : error 010: invalid function or declaration
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    3 Errors.


    Fehler:


    public OnDialogResponse(playerid,dialogid,response,listitem,inputtext[])
    {
    if(dialogid == DIALOG_REGISTER){
    if(response)return Kick(playerid);
    new Spieler[25];
    format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",getPlayerName(playerid));
    dini_Create(Spieler);
    dini_Set(Spieler,"Passwort",inputtext);
    loadPlayer(playerid);
    return 1;
    }
    return 1;
    }
    if(response == 0)
    {
    Kick(playerid);
    return 1;
    }
    return 1;
    }

    Es sind nun deutlich weniger Fehler geworden.
    Allerdings werden die stocks immer noch nicht erkannt.


    stock getPlayerName(playerid)
    {
    new name[MAX_PLAYER_NAME];
    return GetPlayerName(playerid,name,sizeof(name));
    }


    stock loadPlayer(playerid)
    {
    new Spieler[25];
    format(Spieler,sizeof Spieler,"/Spieler/%s.txt",getPlayerName(playerid));
    playerD[playerid][geld] = dini_Int(Spieler,"Geld");
    playerD[playerid][level] = dini_Int(Spieler,"Level");
    setPlayerMoney(playerid,playerD[playerid][geld]);
    SetPlayerScore(playerid,playerD[playerid][level]);
    return 1;
    }


    stock setPlayerMoney(playerid,betrag)
    {
    return ResetPlayerMoney(playerid);
    GivePlayerMoney(playerid,betrag);
    }


    Hier mal ein Beispiel, wo es nicht erkannt wird:
    public OnPlayerConnect(playerid)
    {
    new Spieler[128];
    format(Spieler,sizeof(Spieler),"/scriptfiles/Spieler/%s.txt",getPlayerName(playerid));
    if(dini_Exists(Spieler))
    return 1;
    {
    //Spieler laden (Hier bin ich noch am entwickeln)
    }


    {
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrierung","Gib hier dein zukünftiges Passwort ein:","Absenden","Abbrechen");
    return 1;
    }


    oder:


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == DIALOG_REGISTER)
    {
    if(response == 1)
    {
    new Spieler[128];
    format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",getPlayerName(playerid));
    dini_Create(Spieler);
    dini_Set(Spieler,"Passwort",inputtext);
    loadPlayer(playerid);
    return 1;
    }
    if(response == 0)
    {
    Kick(playerid);
    return 1;
    }
    return 1;
    }


    Hier die Ausgabe des Compilers:
    C:\Users\*****\Desktop\samp03z_svr_R1_win32\gamemodes\test.pwn(103) : error 017: undefined symbol "getPlayerName"
    C:\Users\*****\Desktop\samp03z_svr_R1_win32\gamemodes\test.pwn(288) : error 017: undefined symbol "getPlayerName"
    C:\Users\*****\Desktop\samp03z_svr_R1_win32\gamemodes\test.pwn(291) : error 017: undefined symbol "loadPlayer"
    C:\Users\*****\Desktop\samp03z_svr_R1_win32\gamemodes\test.pwn(302) : warning 217: loose indentation
    C:\Users\*****\Desktop\samp03z_svr_R1_win32\gamemodes\test.pwn(302) : error 029: invalid expression, assumed zero
    C:\Users\*****\Desktop\samp03z_svr_R1_win32\gamemodes\test.pwn(302) : error 017: undefined symbol "getPlayerName"
    C:\Users\*****\Desktop\samp03z_svr_R1_win32\gamemodes\test.pwn(308) : warning 225: unreachable code
    C:\Users\*****\Desktop\samp03z_svr_R1_win32\gamemodes\test.pwn(308) : error 029: invalid expression, assumed zero
    C:\Users\*****\Desktop\samp03z_svr_R1_win32\gamemodes\test.pwn(308) : error 017: undefined symbol "loadPlayer"
    C:\Users\*****\Desktop\samp03z_svr_R1_win32\gamemodes\test.pwn(311) : error 017: undefined symbol "getPlayerName"
    C:\Users\*****\Desktop\samp03z_svr_R1_win32\gamemodes\test.pwn(314) : error 017: undefined symbol "setPlayerMoney"
    C:\Users\*****\Desktop\samp03z_svr_R1_win32\gamemodes\test.pwn(319) : warning 225: unreachable code
    C:\Users\*****\Desktop\samp03z_svr_R1_win32\gamemodes\test.pwn(319) : error 029: invalid expression, assumed zero
    C:\Users\*****\Desktop\samp03z_svr_R1_win32\gamemodes\test.pwn(319) : error 017: undefined symbol "setPlayerMoney"
    C:\Users\*****\Desktop\samp03z_svr_R1_win32\gamemodes\test.pwn(322) : warning 225: unreachable code
    C:\Users\*****\Desktop\samp03z_svr_R1_win32\gamemodes\test.pwn(322) : error 017: undefined symbol "betrag"
    C:\Users\*****\Desktop\samp03z_svr_R1_win32\gamemodes\test.pwn(324) : error 030: compound statement not closed at the end of file (started at line 283)
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    13 Errors.


    mit freundlichen Grüßen
    c4k3

    2.) Was genau funktioniert denn bei den anderen nicht? Ne genauere Problembeschreibung wäre hilfreich.

    In meinem gamemode verwende ich öfters "getPlayerName" und die anderen Sachen.
    Allerdings zeigt mir der Compiler an, das er die Sachen im gamemode nicht kennt, obwohl sie als stock eingetragen sind.


    Danke für die Hilfe!
    c4k3


    P.S. Ich bin Anfänger

    Hallo Breadfish Community,
    Könnt ihr mir bitte sagen, was an diesen stocks falsch sein soll?
    Denn sie funktionieren nicht.



    stock getPlayerName(playerid)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    return name;
    }


    stock loadPlayer(playerid);
    {
    new Spieler[128];
    format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",getPlayerName(playerid))
    playerD[playerid][geld] = dini_Int(Spieler,"Geld");
    playerD[playerid][level] = dini_Int(Spieler,"Level");
    setPlayerMoney(playerid,playerD[playerid][geld]);
    SetPlayerScore(playerid,playerD[playerid][level]);
    return 1;
    }


    stock setPlayerMoney(playerid, betrag)
    {
    new betrag;
    ResetPlayerMoney(playerid);
    GivePlayerMoney(playerid,betrag);
    return 1;
    }


    Dankeschön!
    c4k3

    Hallo Breadfish Community,
    ich habe heute im SA:MP Editor (nicht MTA) einige schöne Sachen gemappt (bin Anfänger)
    und möchte die nun in die Serverwelt einfügen.
    Leider weiß ich nicht, wo (in welchem Ordner/welcher Datei) ich nun den .pwn Code einfügen muss.
    Könnt ihr mir da bitte weiterhelfen?
    In google konnte ich bis jetzt dazu nichts verständliches finden.

    Danke im Vorraus für jede hilfe!
    c4k3