Guten Tag,
Ich brauche ein Codeschnipsel der Kill´s und Tode Abspeichert und dann noch den Code um sie im /stats aufrufenzukönnen
Helft mir
Guten Tag,
Ich brauche ein Codeschnipsel der Kill´s und Tode Abspeichert und dann noch den Code um sie im /stats aufrufenzukönnen
Helft mir
Hast du denn schon ein Login / Register System?
Und einen /stats Befehl?
Mit Den Stats komme ich nicht klar
Aber Register und Login ja.
Dini oder was anderes?
Was benutzt du für die Spieler Infos?
Dini
Würdest du mir /stats scripten=
Dann machst du das so.
Du gehst in den Public OnPlayerDeath und erhöhst jeweils die Tod / Kill variable des Spielers um 1.
Das geht so:
SetPVarInt(playerid, "Tode", GetPVarInt(playerid, "Tode")+1);
SetPVarInt(killerid, "Kills", GetPVarInt(killerid, "Kills")+1);
Ja jetzt kommt es zum Abspeichern. Ich vermute mal das du eine Funktion hast um die Sachen speichern zu lassen.
Ich mach das jetzt mal so, du musst das halt anpassen wie es bei dir ist.
dini_IntSet(Pfad,"Tode",GetPVarInt(playerid,"Tode"));
dini_IntSet(Pfad,"Kills",GetPVarInt(playerid,"Kills"));
Beim Laden musst du das dann so machen:
SetPVarInt(playerid,"Tode",dini_Int(Pfad,"Tode"));
SetPVarInt(playerid,"Kills",dini_Int(Pfad,"Kills"));
Um das ganze dann in einem Dialog anzeigen zu können müssen wir jetzt erstmal den Befehl erstellen. Dazu gehen wir in den Public OnPlayerCommandText. Dort erstellen wir jetzt mal das Grundgerüst:
if(strcmp(cmdtext,"/stats",true) == 0)
{
return 1;
}
Jetzt brauchen wir erstmal folgende Dinge.
1. Einen Dialog
2. Die Funktion ShowPlayerDialog
3. Einen String den wir mit format dann formatieren können
Beginnen wir zunächst mit dem Dialog. Den Definieren wir oben bei den #include zeilen wie folgt:
#define Stats ID
Die ID musst du anpassen da ich ja nicht weiß welche ID´s du schon benutzt. Es ist wichtig das die ID´s sich nicht überschneiden da sonst der Befehl bzw. der Dialog nicht funktioniert.
Haben wir das gemacht können wir nun in den Command zurück gehen und beginnen einen String zu erstellen. Diese werden wir dann mit format formatieren. Zudem holen wir uns mit der Funktion GetPlayerName den Namen heraus, da ich den im Dialog auch anzeigen lassen will.
new dialogstring[50],sName[MAX_PLAYER_NAME];
GetPlayerName(playerid,sName,sizeof(sName));
format(dialogstring,sizeof(dialogstring),"Deine Stats %s.\n\nKills: %d\nTode: %d\n",sName,GetPVarInt(playerid,"Kills"),GetPVarInt(playerid,"Tode"));
Jetzt können wir mit ShowPlayerDialog den Dialog anzeigen lassen.
ShowPlayerDialog(playerid,Stats,DIALOG_STYLE_MGSBOX,"Stats",dialogstring,"Abbrechen","Abbrechen");
Und fertig hast du das.
Bei mir kommt 1 Error Help me :
C:\Users\Patrick\Desktop\Server\gamemodes\IRP-City.pwn(15) : warning 201: redefinition of constant/macro (symbol "DIALOG_STYLE_MSGBOX")
C:\Users\Patrick\Desktop\Server\gamemodes\IRP-City.pwn(210) : error 017: undefined symbol "DIALOG_STYLE_MGSBOX"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1 Error.
Hast du #define DIALOG_STYLE_MGSBOX gemacht?
Zeig mal die Zeile 15
Es sind keine Error´s und Keine Warning´s ich Probier es ma
///E
Da kommt sowas wie ein Einlogg fenster.
ZitatDa kommt sowas wie ein Einlogg fenster.
Wenn du den Befehl eingibst?
Jap Sofort danach
Dann hast du eine ID Überschneidung.
Gib der Dialog von den Stats mal die ID 50
Ist Immernoch du meintest doch die 999 bei #define
Da wo du den Dialog von den Stats Definiert hast, dahinter, also hinter dem Wort.
Ja also #define DIALOG_STYLE_MGSBOX 999
Nein du sollst nicht DIALOG_STYLE_MSGBOX definieren sondern den Dialog von den Stats.
Mach das weg und mach da dann folgendes hin:
#define Stats 50
Jetzt kommt das :
C:\Users\Patrick\Desktop\Server\gamemodes\IRP-City.pwn(15) : warning 201: redefinition of constant/macro (symbol "Stats")
C:\Users\Patrick\Desktop\Server\gamemodes\IRP-City.pwn(210) : error 017: undefined symbol "DIALOG_STYLE_MGSBOX"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1 Error.
Zeig mal was du alles an #defines hast.
Zitaterror 017: undefined symbol "DIALOG_STYLE_MGSBOX"
Das wird so geschrieben: DIALOG_STYLE_MSGBOX
#include <a_samp>
#include <dini>
#include <ocmd>
#define Stats 1
#define Fraktion
#define BLAU 0x0087FFFF
#define ROT 0xE10000FF
#define GRÜN 0x19FF00FF
#define DIALOG_TUTORIAL 1
#define DIALOG_REGISTER 2
#define DIALOG_LOGIN 3
#define DIALOG_STATS 4
#define Stats 50
Mach das "#define Stats 1" weg.