oder winkt er durchgehend?
Wenn du es richtig machst, winkt er durchgehend... ![]()
oder winkt er durchgehend?
Wenn du es richtig machst, winkt er durchgehend... ![]()
Wenn man alle irrelevante Sachen streicht, schreibst du:
"Ich suche ein System, was könnt ihr mir empfehlen?"
...kommen dir da nicht selbst ein paar Fragen auf? ![]()
Wie z.B. für was ist dieses System gedacht...was sollte dieses System beinhalten..worum geht es eigentlich?! ![]()
ist es bei Java genauso einfach wie bei SA:MP Variablen "zeitweise" für jeden Nutzer zu speichern?
Es ist sogar noch viel einfacher ![]()
Player[] online = Bukkit.getServer().getOnlinePlayers();
String[] VAR_XY = new String[online.length];
VAR_XY[playerid] = 1;
mfg. ![]()
Wird mir es so angezeigt
Poste mal deinen SetTimer?! ![]()
if(!IsPlayerConnected(i)
!isEingeloggt(i)) continue;
Da ich im anderen Thread gesehen habe, wie du es machst, muss es bei dir so heißen:
if(!IsPlayerConnected(i) || !SpielerInfo[i][pEingeloggt]) continue;
mfg. ![]()
Was sagt n der MySQL-Log? ![]()
Ist das der richtige den du haben willst
Nein...suche mal nach INSERT INTO ![]()
Dann zeig uns evtl mal deinen Code...oder sollen wir jetzt raten? ![]()
Kaliber:
Wird die Zeit auch mitgezählt wenn man im Login bereich ist
Momentan ja...aber du hast bestimmt eine Variable die prüft ob man eingeloggt ist oder nicht...
und beim Timer schreibst du dann hin:
if(!IsPlayerConnected(i) || !IsLoggedIn[i]) continue;
mfg. ![]()
Entschuldigung das ich so blöd frage. Aber wie muss ich das machen
Die solltest dich echt erstmal mit den Basics einer Programmier-Sprache auseinander setzen ![]()
stock PayDay(playerid)
{
SpielerInfo[playerid][pRespekt]++; //Hier bekommt er 1nen Respekt Punkt
if(IsVIP(playerid)) SpielerInfo[playerid][pRespekt]++; //Wenn er VIP ist bekommt er noch einen Respekt Punkt
//Hier dein Zins-System:
new Float:zinsen;
if(kein Haus && kein VIP) zinsen = 0.05;
else if(Haus && kein VIP) zinsen = 0.08;
else if(Haus && VIP) zinsen = 0.1;
Bankkonto += Bankkonto * zinsen;
//Die Nachrichten für den PayDay sollteng genau hier hin..(damit man unten doch mit return arbeiten kann)
//Einfach unten dran das Level System:
new level = GetPlayerScore(playerid);
if(SpielerInfo[playerid][pRespekt] < level*4) return 1;
if(GetPlayerMoney(playerid) < level*5000) return SCM(playerid,-1,"Sie brauchen mehr Geld für das LevelUp"); //Hier hat er zu wenig Geld (pro Level 5000..sprich level 1 = 5.000$...level 2 = 10.000$...level 3 = 15.000$)
//Dann hier paar Messages
GivePlayerMoney(playerid,-(level*5000)); //Hier auch das Geld für das Level abziehen..
GivePlayerMoeny(playerid,500); //Hier z.B. 500$ für LevelUp
SetPlayerScore(playerid, level+1); //Hier level up
SpielerInfo[playerid][pRespekt] = 0; //Hier wieder Resetten
return 1;
}
mfg. ![]()
Sondern wenn man 4/4 Respektpunkten hat. Etwas Geld bekommt und Level 1 hoch
Natürlich, dann füge die if-Abfragen unter der PayDay Funktion ein... (aber da kein return verwenden) ![]()
Das tuhe ich bereits mit PayDayZeit
Dann ersetze in meinem System pPunkte durch PayDayTimer...
Wenn du richtig liest, sind das eh alles nur fiktive Namen um dir das zu verdeutlichen ![]()
Okay. Mein kleines Problem ist. Wie mache ich das mit den Levelpunkten(Respektpunkten) und pro Level 2 mehr?
Naja, denk einfach mal nach auf welche Werte sich diese Respektpunkte beziehen, nämlich auf Geld und Level.
enum spieler //Hier dein Spieler-Enum
{
pRespekt, //Einfach mal Hier rein
pPunkte, //Das auch einfach mal hier rein
}
new SpielerInfo[MAX_PLAYERS][spieler]; //Ich nenne deine Variable mal SpielerInfo zur Verdeutlichung
//Timer
SetTimer("Server_Timer",1000*60,1);
forward Server_Timer(); //Wird jede Minute aufgerufen
public Server_Timer()
{
for(new i; i<MAX_PLAYERS; i++) //Die Schleife geht alle Spieler durch
{
if(!IsPlayerConnected(i)) continue; //Wer nicht online ist, kann übersprungen werden
SpielerInfo[i][pPunkte]++;
if(SpielerInfo[i][pPunkte] != 60) continue;//Wenn noch keine Stunde online war..gehts weiter
PayDay(i); //Hier gibts dann einen PayDay
SpielerInfo[i][pPunkte] = 0; //Wieder die Zeit auf 0 setezn
}
return 1;
}
stock PayDay(playerid)
{
SpielerInfo[playerid][pRespekt]++; //Hier bekommt er 1nen Respekt Punkt
if(IsVIP(playerid)) SpielerInfo[playerid][pRespekt]++; //Wenn er VIP ist bekommt er noch einen Respekt Punkt
//Hier dein Zins-System:
new Float:zinsen;
if(kein Haus && kein VIP) zinsen = 0.05;
else if(Haus && kein VIP) zinsen = 0.08;
else if(Haus && VIP) zinsen = 0.1;
Bankkonto += Bankkonto * zinsen;
return 1;
}
//Und dann unter deinem BuyLevel Command:
new level = GetPlayerScore(playerid);
if(SpielerInfo[playerid][pRespekt] < level*4) return SCM(playerid,-1,"Sie haben nicht genügend Respektpunkte!"); //Hier hat er nicht genug Respektpunkte (pro Level 4..sprich level 1 = 4..level 2 = 8..level 3 = 12)
if(GetPlayerMoney(playerid) < level*5000) return SCM(playerid,-1,"Sie besitzen zu wenig Geld!"); //Hier hat er zu wenig Geld (pro Level 5000..sprich level 1 = 5.000$...level 2 = 10.000$...level 3 = 15.000$)
//Dann hier paar Messages
SetPlayerScore(playerid, level+1); //Hier level up
SpielerInfo[playerid][pRespekt] = 0; //Hier wieder Resetten
Hoffe das hilft dir ein wenig ![]()
ch möchte das ihr mir zeigt wie man sowas anfertigt. Das ich dies auch bald alleine kann.
Genau deshalb schaut man mal nach Tutorials..die einem Zeigen wie soetwas funktioniert!
[ SCRIPTING ] Individuellen Payday Scripten [Updated]
[ SCRIPTING ] Individuellen Payday
http://gta-sa-mp.de/forum/3-sa…257-individuellen-payday/
Kaliber: Ich kapier von deinem Code garnix.
Das sollte dich beunruhigen ![]()
Ich finde es echt hilfsbereit wenn ihr mir helft ein individuelles PayDay System zu machen.
Was erwartest du jetzt von uns? ![]()
Wir können dir schlecht helfen, da wir überhaupt nicht wissen, wie du deine Spieler speicherst, wie weit du mit deinem System schon bist...?! ![]()
Desweiteren, google doch mal nach individuellem PayDay, dann weißt du schonmal so grob wie du das alles zu erstellen hast (Timer + Callback + Variablen)...und das mit dem Zinssystem ist doch nur eine simple if-Abfrage:
new Float:zinsen;
if(kein Haus && kein VIP) zinsen = 0.05;
else if(Haus && kein VIP) zinsen = 0.08;
else if(Haus && VIP) zinsen = 0.1;
Bankkonto += Bankkonto * zinsen;
mfg. ![]()
warum hat dann jeder spieler 5 Treuepunkte bekommen? beide gehen nicht
Rufst du den Timer evtl öfters auf? ![]()
if(!IsPlayerConnected(i)) continue;
Ja, das bedeutet, wenn der Spieler nicht online ist ...continue (sprich mache mit der Schleife weiter)
mfg. ![]()
Kaliber: hat da einen kleinen Fehler gemacht.
Nein habe ich nicht...mein Code ist schon richtig ![]()
Kann ich die Funktion SetGravity auch nur für bestimmte Spieler erstellen?
Es gibt da viele Möglichkeiten, entweder du nutzt YSF oder Advanced Functions
mfg. ![]()
Alles anzeigenKaliber:
Nein, wirkungslos ist sie nicht, es wird dann die nächste Zeile genommen, als würde sie dahinter stehen.
if(a == 1) print("a");
print("b");
ist das Selbe wie:
if(a == 1)
print("a");
print("b");
Beides mal wird "a" nur geprintet, wenn a == 1 ist.
Hab nicht gelesen was drüber stand...
Ich dachte er hat sowas gemeint:
if(!IsPlayerAdmin(playerid)) { } //und das wäre nutzlos
else {
}
mfg. ![]()
Also ist die if Abfrage dann eigentlich wirkungslos wenn nichts dahinter steht oder?
Richtig..ist logisch oder? ![]()
und wenn man return 0 dahinter schreibt? Oder muss return 1 hin?
In diesem Fall egal.
Und ist es besser mit case zu arbeiten?
Ja ![]()
Noch was kleines, in den Tutorials habe ich immer gesehen dass Funktionen ohne stock erstellt werden? Für was braucht man diese dann überhaupt?
stock ist ein Wort für den Compiler, sobald stock vor einer Funktion oder Variable steht und diese nicht verwendet wird, wird sie vom Compiler ignoriert ![]()
mfg. ![]()