Was sagt n der MySQL-Log? ![]()
Beiträge von Kaliber
-
-
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 ResettenHoffe 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 Functionsmfg.

-
Alles anzeigen
Kaliber:
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.

-
999999.9, -999999.9, 999999.9, -999999.9
Die Default Werte reichen zum resetten:SetPlayerWorldBounds(playerid, 20000.0000, -20000.0000, 20000.0000, -20000.0000);
-
Wäre für hilfe dankbar.
1. Lässt du die Animation Preloaden?
Wenn nicht schreibe mal unter OnPlayerRequestClass (ganz nach oben in die 1. Zeile:)
ApplyAnimation(playerid,"MEDIC","null",0.0,0,0,0,0,0);
2. Schreibe das mal so:
ocmd:wiederbeleben(playerid)
{
if(!IsPlayerInRangeOfPoint(playerid,5,tx[i],ty[i],tz[i]))return SendClientMessage(playerid,error,"Du bist nicht in der Nähe einer Leiche!");
if(GetPlayerAnimationIndex(playerid) != 0) return SendClientMessage(playerid,error,"Du reanimierst bereits eine Person!");
for(new i; i<MAX_PLAYERS; i++) {
if(!IsPlayerConnected(i))continue;
if(SpielerInfo[i][pTot] == 0)continue;
new string[MAX_PLAYER_NAME + 34];
format(string,sizeof(string),"'%s' begint mit deiner Reanimation.",SpielerName(playerid));
SendClientMessage(i,hinweis,string);
ApplyAnimation(playerid,"MEDIC","CPR",4.1,1,1,1,0,888*10,1);
SetTimerEx("reanimation",888*10,false,"i",playerid);
break;
}
return 1;
}mfg.

-
Also, ich habe mir mal dein Skript angeschaut...und da sind einige Fehler drinnen

Zum einen, erstelle die Objekte unter OnGameModeInit und nicht unter OnPlayerConnect.
Desweiteren nutze am besten einen Streamer..
und leggen könnte es höchstens wegen dem AutoSave oder weil jemand gerade den Server connected hatte...
Aber ansonsten sieht das ok aus

mfg.

-
Kann mir da jemand helfen?
Hier ist eine Liste aller ComponentIDs: http://wiki.sa-mp.com/wiki/Car_Component_IDRechts in der Spalte "Cars" stehen die Autos für die die jeweilige componentID gültig ist

oder ob man Warnings bekommt
Normalerweise bekommt man da keine Warnings, sie werden nur nicht erstellt. (außer man nutzt ungültige component ids)
mfg.

-
Einfach so schreiben:
new treue[MAX_PLAYERS];
//Unter OnPlayerConnect
treue[playerid] = 0;forward Minut();
public Minut()
{
for(new i; i<MAX_PLAYERS; i++) {
if(!IsPlayerConnected(i)) continue;
treue[i]++;
if(treue[i] == 120) sInfo[i][treue] ++,treue[i] = 0;
}
}mfg.
