Was ist an der Nachricht falsch?
Wie sollte es denn eigentlich aussehen?
Beiträge von Jeffry
-
-
Schau mal, das beinhaltet alles was du haben willst:
http://forum.sa-mp.com/showthread.php?t=321388Kannst es entweder verwenden, oder nachbauen, indem du immer wieder einen Blick in den Code wirfst.
-
-
-
Ich weiß.
Registriere dich mal, dann schaue in die Datenbank, wenn alles auf 0 ist logge dich aus der Datenbank aus und wieder ein. Ist dann noch immer alles auf 0?
Falls ja, schließe das Spiel. Wie sieht es dann aus? -
Dann musst du nur die Ansicht in der Datenbank aktualisieren, weil die Daten stehen ja drin, sonst würden sie ja nicht geladen

-
Das sieht alles gut aus. Hast du die Ansicht der Tabelle mal aktualisiert?
Bekommst du das Geld und den Score wieder, wenn du dich einloggst wieder, also das Start Geld? Wenn ja, dann liegt es nur an der Ansicht, aber in der Datenbank steht es. -
Füge einfach
SpielerSpeichern(playerid);
dort ein, wo die Registration abgeschlossen ist. Dann wird der Spieler direkt danach gespeichert und die Stats die du ihm bei der Registration gibst sind gleich drin. -
http://stackoverflow.com/quest…-10061-after-installation
http://stackoverflow.com/quest…server-on-localhost-10061Schau mal ob dir die zwei Lösungen weiterhelfen. Den Fehler gibt es tausendfach zu finden, aber es gibt genau so viele Lösungen und die Hälfte der Threads die man irgendwo findet sind unbeantwortet, bzw. ungelöst.

-
Wenn du sie jedes mal neu erstellst, dann musst du sie auch jedes mal danach wieder löschen.
Wenn du sie bei OnPlayerConnect erstellst, dann musst du sie bei OnPlayerDisconnect löschen.
-
Steht ja auch zwei mal drin.

Mach es so:
if(GetPVarInt(playerid,"Eingeloggt") == 1)
{
new string[128], gehalt = GiveFrakGehalt(playerid);
SendClientMessage(playerid,info,"|____________Zahltag___________|");
format(string, sizeof(string), "Gehalt: %i",gehalt);//nehme ich das raus bekomme ich es nur 1x
SendClientMessage(playerid,hinweis,string);
SetPVarInt(playerid, "pLevelPunkte", GetPVarInt(playerid, "pLevelPunkte")+1);
SpielerInfo[playerid][pPayday] = 0;
SpielerInfo[playerid][Kontostand] += gehalt; -
Wenn du sie nicht mehr brauchst, ja.
-
Eine Liste mit allen Objekten und Bildern findest du hier:
http://gta-sa-mp.de/forum/index.php?page=ObjectsVielleicht findest du es damit, falls es die 3013 / 3016 nicht ist.
-
Waffenkiste?
Das da? 3013 / 3016 ?Ansonsten versuche mal ein Bild zu finden, wie das Teil aussieht.
-
Meinst du das?
http://forum.sa-mp.com/showthread.php?t=346154Du kannst einfach die Objekt-ID bei CreatePickup angeben. Jedes Objekt kann auch als Pickup erstellt werden.
-
new heiler[MAX_PLAYERS];
new heilerp[MAX_PLAYERS];
//_______________//
ocmd:heilen(playerid,params[])
{
new string[128], pID;
if(SpielerInfo[playerid][pTeam] != 2) return SendClientMessage(playerid,error,"Diesen Befehl kannst du nicht nutzen. Benötigter Beruf: {medic}Sanitäter");
{
if(sscanf(params,"ud",pID,heilerp[playerid]))return SendClientMessage(playerid,Color_Green,"/Heilen ID Preis");
format(string, sizeof(string), "%s hat dir ein Angebot gemacht, dich für %d$ zu heilen!",SpielerName(playerid),heilerp[playerid]);
ShowPlayerDialog(pID,DIALOG_MEDIC,DIALOG_STYLE_MSGBOX,"%s möchte dich Heilen",string,"Bestätigen","Abbrechen");
heiler[pID] = playerid;
}
return 1;
}
//________________//
if(dialogid == DIALOG_MEDIC)
{
if(response == 1)
{
new string[128];
format(string, sizeof(string), "Du hast %s für %d$ geheilt",SpielerName(heiler[playerid]),heilerp[heiler[playerid]]);
SendClientMessage(heiler[playerid], info, string);
format(string, sizeof(string), "Du wurdest von %s für %d$ geheilt",SpielerName(heiler[playerid]),heilerp[heiler[playerid]]);
SendClientMessage(playerid, erfolg, string);
GivePlayerMoney(playerid, -heilerp[heiler[playerid]]);
}
else if(response == 0)
{
SendClientMessage(playerid,Color_Red ,"Du hast den Vorgang abgebrochen!");
}
return 1;
} -
Rufst du es vielleicht in einer Schleife auf und nimmst playerid anstatt i?
Wie sieht die GiveFrakGehalt jetzt aus? -
Das kann ja auch nichts werden was ihr da macht.
if(treue[i] == 120) sInfo[i][treue] ++,treue[i] = 0;
Wie soll denn das richtig sein? Die Bezeichnung aus dem enum ist genau gleich wie das Array.@Stormi25:
Unter die Includes:
new pTreue[MAX_PLAYERS];Bei OnPlayerConnect:
pTreue[playerid] = 0;Ganz unten im Gamemode:
forward MinutenTimer();
public MinutenTimer()
{
for(new i; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
pTreue[i]++;
if(pTreue[i] == 120) //Nach 2 Stunden wäre das.
{
sInfo[i][treue]++;
pTreue[i] = 0;
}
}
}
return 1;
}Unter OnGameModeInit:
SetTimer("MinutenTimer", 60000, true); //1 Minute -
Du musst format benutzen, du kannst in SendClientMessage keine Platzhalter einfügen.
-
stock GiveFrakGehalt(frak, rang)
zu:
stock GiveFrakGehalt(playerid)Und:
new Geld;
zu:
new Geld, frak, rang;
frak = SpielerInfo[playerid][pFrak];
rang = SpielerInfo[playerid][pRang];Und dann beim PayDay so aufrufen wie du gesagt hast.