[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
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
  • Da ich für diese Sache kein Thema erstellen wollte, einfach mal hier nebenbei gefragt:


    Gibt es eine andere Möglichkeit - z.B. über eine Definierung oben im Script - so eine Fehlermeldung zu schicken?
    Denn ich würde den Public gerne löschen nur möchte ich die Fehlermeldung beibehalten.



    public OnPlayerCommandText(playerid, cmdtext[])
    {
    return SendClientMessage(playerid,COL_WHITE,"FEHLER");
    }

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Hat jemand eine Lösung, wie ich die Farben und den Paintjob eines Fahrzeuges abspeichern öassen kann?
    Habs schon bei OnVehicleRespray versucht aber hat leider nicht funktioniert...aber irgendwie muss es ja gehen.


    Wäre echt nett von euch ?(

  • Nunja, ich verwende z.Z. ZCMD und schreibe aktuell wenige Befehle in den Public OnPlayerCommandText.
    Zudem wird, wenn ich ein falschen Befehl eingegeben habe, die Fehlermeldung nicht angezeigt sondern "Unknow Command".


    Bei zcmd funktioniert kein OnPlayerCommandText mehr. Siehe dazu den Hinweis von ZeeX:

    Zitat

    Important: Since v0.3 OnPlayerCommandText cannot be used anymore (also ZCMD_NO_CALLBACK option has been removed), but there are two new callbacks instead


    Dafür werden diese beiden genutzt:


    OnPlayerCommandReceived(playerid, cmdtext[]) //Wenn ein Spieler einen Befehl sendet
    und
    OnPlayerCommandPerformed(playerid, cmdtext[], success) //Wenn ein Befehl von einem Spieler ausgeführt wurde.


    Hierbei kannst du bei dem zweiten Callback dies nutzen:


    OnPlayerCommandPerformed(playerid,cmdtext[],success)
    {
    if(!success) // Befehl existiert nicht
    {
    SendClientMessage(playerid,COL_WHITE,"FEHLER");
    }
    return 1;
    }


    Mehr zum Include solltest du dir in dem entsprechenden Thema rauslesen: zcmd Topic

  • Hab jetzt ein Register-System erstellt, ich komm aber einfach nicht weiter :/



    C:\Users\ANONYM\Desktop\GTA San Andreas\Selfmade Script\gamemodes\NER.pwn(371) : error 001: expected token: ";", but found "-identifier-"
    C:\Users\ANONYM\Desktop\GTA San Andreas\Selfmade Script\gamemodes\NER.pwn(381) : error 017: undefined symbol "unputtext"
    C:\Users\ANONYM\Desktop\GTA San Andreas\Selfmade Script\gamemodes\NER.pwn(397) : error 017: undefined symbol "name"
    C:\Users\ANONYM\Desktop\GTA San Andreas\Selfmade Script\gamemodes\NER.pwn(397) : error 017: undefined symbol "name"
    C:\Users\ANONYM\Desktop\GTA San Andreas\Selfmade Script\gamemodes\NER.pwn(397) : error 029: invalid expression, assumed zero
    C:\Users\ANONYM\Desktop\GTA San Andreas\Selfmade Script\gamemodes\NER.pwn(397) : fatal error 107: too many error messages on one line


    Hier die Pawn-Textquellen:


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == REGISTER)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,sonderrot,"ACHTUNG: Registrierung abgebrochen & du wurdest gekickt!")
    371 -> Kick(playerid);
    return 1;
    }
    if(response == 1)
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_INPUT,"Registerierung","Bitte wähle ein sicheres Passwort:","Registrieren","Abbrechen");
    return 1;
    }
    381 -> Register(playerid,unputtext);
    return 1;
    }
    }
    return 1;
    }


    public OnPlayerClickPlayer(playerid, clickedplayerid, source)
    {
    return 1;
    }


    stock Register(playerid,key[])
    {
    new Accounts[64];
    new Sname[MAX_PLAYER_NAME];
    397 ->GetPlayerName(playerid,name,sizeof(name));
    format(Accounts,sizeof(Accounts),"/Accounts/%s.txt",Sname);
    dini_Create(Accounts);
    dini_Set(Accounts,"Passwort",key);
    SendClientMessage(playerid,sonderrot,"Du hast dich erfolgreich auf Night Evolution Roleplay registriert!");
    return 1;
    }

    >> I want you <<
    >> We can bring it on the floor <<
    >> You’ve never danced like this before <<
    >> We don’t talk about it <<
    >> Dancin' on doin' the boogie all night long <<
    >> Stoned in paradise <<
    >> Shouldn’t talk about it <<


    3 Mal editiert, zuletzt von MisterDubstepHD ()

  • public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == REGISTER)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,sonderrot,"ACHTUNG: Registrierung abgebrochen & du wurdest gekickt!"); //; vergessen
    371 -> Kick(playerid);
    return 1;
    }
    if(response == 1)
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_INPUT,"Registerierung","Bitte wähle ein sicheres Passwort:","Registrieren","Abbrechen");
    return 1;
    }
    381 -> Register(playerid,inputtext); // Es heißt inputtext, nicht unputtext
    return 1;
    }
    }
    return 1;
    }


    public OnPlayerClickPlayer(playerid, clickedplayerid, source)
    {
    return 1;
    }


    stock Register(playerid,key[])
    {
    new Accounts[64];
    new Sname[MAX_PLAYER_NAME];
    397 -> GetPlayerName(playerid,Sname,sizeof(Sname)); //Bin mir hier ned sicher, mache nix mit GetPlayerName
    format(Accounts,sizeof(Accounts),"/Accounts/%s.txt",Sname);
    dini_Create(Accounts);
    dini_Set(Accounts,"Passwort",key);
    SendClientMessage(playerid,sonderrot,"Du hast dich erfolgreich auf Night Evolution Roleplay registriert!");
    return 1;
    }

  • Danke sehr :D , aber jetzt habe ich noch ein Problem :/


    C:\Users\ANONYM\Desktop\GTA San Andreas\Selfmade Script\gamemodes\NER.pwn(484) : error 017: undefined symbol "Accounts"
    C:\Users\ANONYM\Desktop\GTA San Andreas\Selfmade Script\gamemodes\NER.pwn(484) : error 017: undefined symbol "Accounts"
    C:\Users\ANONYM\Desktop\GTA San Andreas\Selfmade Script\gamemodes\NER.pwn(484) : error 029: invalid expression, assumed zero
    C:\Users\ANONYM\Desktop\GTA San Andreas\Selfmade Script\gamemodes\NER.pwn(484) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.


    Die PAWN Textquellen:



    stock AccountLaden(playerid)
    {
    new Accunts[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Accounts,sizeof(Accounts),"/Accounts/%s.txt",Sname); <-- 484
    if(dini_Exists(Accounts))
    {
    sSpieler[playerid] [Adminlevel] = dini_Get(Accounts,"Adminlevel");
    sSpieler[playerid] [Level] = dini_Get(Accounts,"Level");
    sSpieler[playerid] [Respektpunkte] = dini_Get(Accounts,"Respektpunkte");
    sSpieler[playerid] [Fraktion] = dini_Get(Accounts,"Fraktion");
    sSpieler[playerid] [Rang] = dini_Get(Accounts,"Rang");
    }
    return 1;
    }


    Ich habe das schon im Register-/ Login- & AccountSpeichern-Stock, aber da funktioniert es.
    Die Enums sind Adminlevel, Level, Respektpunkte, Fraktion & Rang.

    >> I want you <<
    >> We can bring it on the floor <<
    >> You’ve never danced like this before <<
    >> We don’t talk about it <<
    >> Dancin' on doin' the boogie all night long <<
    >> Stoned in paradise <<
    >> Shouldn’t talk about it <<


  • stock AccountLaden(playerid)
    {
    new Accounts[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Accounts,sizeof(Accounts),"/Accounts/%s.txt",Sname); <-- 484
    if(dini_Exists(Accounts))
    {
    sSpieler[playerid] [Adminlevel] = dini_Get(Accounts,"Adminlevel");
    sSpieler[playerid] [Level] = dini_Get(Accounts,"Level");
    sSpieler[playerid] [Respektpunkte] = dini_Get(Accounts,"Respektpunkte");
    sSpieler[playerid] [Fraktion] = dini_Get(Accounts,"Fraktion");
    sSpieler[playerid] [Rang] = dini_Get(Accounts,"Rang");
    }
    return 1;
    }


    Die Variable Accounts hast du falsch geschrieben
    Du solltest versuche Warnings zuverstehen