Hey,
wie kann man überprüfen, ob der Spieler sich bewegt? Egal ob er W,A,S,D drückt, oder Sprint, etc...
Gruß
Hey,
wie kann man überprüfen, ob der Spieler sich bewegt? Egal ob er W,A,S,D drückt, oder Sprint, etc...
Gruß
mach das größer als zu einem kleiner als
@Keslo also kostet der Preis pro Ware 500$?
Jup, kannst die 500 ja beliebig ändern
//edit:"Wie bestimme ich eine Kapazität z.B das er Max. 300 Kaufen kann?"
Das machst du so:
Da du bestimmt mehrmals die Waren brauchst und sie per Spieler festgelegt werden soll:
ganz oben:
new PilotWaren[MAX_PLAYERS];
onplayerconnect:
PilotWarenn[playerid] = 0;
ocmd:getwaren(playerid,params[])
{
if(!IsPlayerInRangeOfPoint(playerid,10.0,1894.9570,-2631.3894,13.5469,1.6058))return SendClientMessage(playerid,RED,"Du bist nicht in der Nähe vom Punkt.");
new Waren;
if(sscanf(params, "u", Waren))return SendClientMessage(playerid,GELB,"Tippe /getwaren [Anzahl an Waren]");
new string [128];
if(Waren < 0 || Waren > 300) { SendClientMessage(playerid, RED, "* Die Waren dürfen nicht unter 0 und über 300 sein."); return 1; }
if(Waren && PilotWaren[playerid] > 300)
{
SendClientMessage(playerid,RED,"Die Maximale Kapazität beträgt 300.");
}
else
{
new preis = waren*500;
format(string,sizeof(string), "Du hast dir %d Waren für %d$ gekauft!",Waren,preis);
SendClientMessage(playerid,GREEN,string);
SetPlayerCheckpoint(playerid,-1243.9681,-95.5739,14.1484,48.6373,5.5);
SendClientMessage(playerid,GELB,"Fliege nun zum SF Airport um deine Waren für hochwertigere Waren umzutauschen um mehr Profit zu erlangen!");
return 1;
}
}
probiers mal so aus
ocmd:getwaren(playerid,params[])
{
if(!IsPlayerInRangeOfPoint(playerid,10.0,1894.9570,-2631.3894,13.5469,1.6058))return SendClientMessage(playerid,RED,"Du bist nicht in der Nähe vom Punkt.");
new Waren;
if(sscanf(params, "u", Waren))return SendClientMessage(playerid,GELB,"Tippe /getwaren [Anzahl an Waren]");
new string [128];
new preis = waren*500;
format(string,sizeof(string), "Du hast dir %d Waren für %d$ gekauft!",Waren,preis);
SendClientMessage(playerid,GREEN,string);
SetPlayerCheckpoint(playerid,-1243.9681,-95.5739,14.1484,48.6373,5.5);
SendClientMessage(playerid,GELB,"Fliege nun zum SF Airport um deine Waren für hochwertigere Waren umzutauschen um mehr Profit zu erlangen!");
return 1;
}
There you go
@Keslo Vielen Dank m8
Gerne
Alles anzeigenstock SpielerSpeichern(playerid)
{
new Spieler[64];
new Sname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Sname,sizeof(Sname));
format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
if(dini_Exists(Spieler))
{
dini_IntSet(Spieler,"Adminlevel",sSpieler[playerid][Adminlevel]);
dini_IntSet(Spieler,"Suplvl",sSpieler[playerid][Suplvl]);
dini_IntSet(Spieler,"level",sSpieler[playerid][level]);
dini_IntSet(Spieler,"Rang",sSpieler[playerid][Rang]);
dini_IntSet(Spieler,"Fraktion",sSpieler[playerid][Fraktion]);
dini_IntSet(Spieler,"Alter",sSpieler[playerid][Alter]);
dini_IntSet(Spieler,"Geschlecht",sSpieler[playerid][Geschlecht]);
dini_IntSet(Spieler,"Skin",sSpieler[playerid][Skin]);
dini_IntSet(Spieler,"PaydayZeit",sSpieler[playerid][PaydayZeit]);
dini_IntSet(Spieler,"Gangjailticket",sSpieler[playerid][Gangjailticket]);
dini_IntSet(Spieler,"Bauerticket",sSpieler[playerid][Bauerticket]);
dini_IntSet(Spieler,"Bankguthaben",sSpieler[playerid][Bankguthaben]);
dini_IntSet(Spieler,"Bargeld",GetPlayerMoney(playerid));
dini_IntSet(Spieler,"FestgeldTime",sSpieler[playerid][FestgeldTime]);
}
return 1;
}
stock SpielerSpeichern(playerid)
{
new Spieler[64];
new Sname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Sname,sizeof(Sname));
format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
if(dini_Exists(Spieler))
{
dini_IntSet(Spieler,"Adminlevel",sSpieler[playerid][Adminlevel]);
dini_IntSet(Spieler,"Suplvl",sSpieler[playerid][Suplvl]);
dini_IntSet(Spieler,"level",sSpieler[playerid][level]);
dini_IntSet(Spieler,"Rang",sSpieler[playerid][Rang]);
dini_IntSet(Spieler,"Fraktion",sSpieler[playerid][Fraktion]);
dini_IntSet(Spieler,"Alter",sSpieler[playerid][Alter]);
dini_IntSet(Spieler,"Geschlecht",sSpieler[playerid][Geschlecht]);
dini_IntSet(Spieler,"Skin",sSpieler[playerid][Skin]);
dini_IntSet(Spieler,"PaydayZeit",sSpieler[playerid][PaydayZeit]);
dini_IntSet(Spieler,"Gangjailticket",sSpieler[playerid][Gangjailticket]);
dini_IntSet(Spieler,"Bauerticket",sSpieler[playerid][Bauerticket]);
dini_IntSet(Spieler,"Bankguthaben",sSpieler[playerid][Bankguthaben]);
dini_IntSet(Spieler,"Bargeld",GetPlayerMoney(playerid));
dini_IntSet(Spieler,"FestgeldTime",sSpieler[playerid][FestgeldTime]);
}
return 1;
}
So müsste es klappen
Alles anzeigenHey Breadfishler!
Ich bekomme einfach das Geld nicht richtig Geladen in der Dini datei kann ich mir Geld setten aber es wird beim Server restart z.B wieder von der Dini ausgelsen trotz Geld ausgegeben oder Hinzugefügt wie bekomme ich das hin?
Vielen Dank im Vorraus!
Zeig uns doch mal alles, wo du das Geld deklarierst, abspeicherst und laden tust
Danke dir erstmal, werde es nachher testen
Wie sieht es aus, wenn ich zb ein Event Ingame erstellen will und die Zeit bzw Datum angebe, wann das Event beendet werden soll?
Ingame sollte dann zb stehen: "Event läuft in 5 Tagen und 22 Stunden aus"... dort eine idee?:D
Push
Hallo,
wie kann ich Abfragen, ob der Spieler steht und sich nicht bewegt?
Sagen wir, es soll ein Befehl geben, der nur im Stand möglich ist....
Gruß
Kevin
new Year, Month, Day, String[11];
getdate(Year, Month, Day);
format(String,sizeof(String),"%02d.%02d.%d", Day, Month, Year);
TextDrawSetString(Datum,String);
So müsste es auch funktionieren
Herzlich Willkommen
Hey, ich hätte ein kleines Problem. Und zwar Erscheint während des Tutorials die Einblendung "<< - >> - Spawn" Dies sollte allerdings nicht sein. Wenn man nichts drückt, spawnt man nicht. Wenn man "Spawn" drückt, spawnt der Spieler und das Tutorial ist unterbrochen.
Über eine hilfreiche Antwort würde ich mich sehr freuen!
Hey,
also ich habe es deaktiviert, in dem ich mit TogglePlayerSpectating arbeite.
Ich setze es bei OnplayerConnect auf 1,
Sobald der Spieler spawnt, musst du es auf 0 setzen.
Ebenfalls wenn er spawnt, musst du mit SetSpawnInfo arbeiten. Aber dies nur einmalig
Also SetSpawnInfo hab ich zb wenn er sich registriert und einloggt...
Alles anzeigenstock GetFracName(playerid)
{
new fname[32];
if(PlayerInfo[playerid][pLeader] == 0)
{
switch(PlayerInfo[playerid][pMember])
{
case 0:{fname="Zivilist";}
case 1:{fname="Los Santos Police Department";}
case 2:{fname="Federal Bureau of Investigation";}
case 3:{fname="United States of Army";}
case 4:{fname="Notdienst";}
case 5:{fname="La Cosa Nostra";}
case 6:{fname="Yakuza";}
case 7:{fname="Regierung";}
case 8:{fname="Hitman Agency";}
case 9:{fname="Center News Network";}
case 10:{fname="Taxi Company";}
case 11:{fname="Fahrschule";}
case 12:{fname="Triaden";}
case 13:{fname="Grove Street Family";}
case 14:{fname="Front Yard Ballas";}
case 15:{fname="Biker Club";}
case 16:{fname="Vagos";}
case 17:{fname="Atzecas";}
case 18:{fname="Rifas";}
case 19:{fname="Red Soldiers";}
case 20:{fname="Terrorist";}
case 21:{fname="Wheelman Agency";}
case 22:{fname="SWAT";}
case 23:{fname="Ordnungsamt";}
}
}
Da fehlt meiner Ansicht nach noch ein return 1; am Ende...
entfern das Komma vor WHERE id = '%d'
Das , vor dem WHERE muss weg
Danke, hat funktioniert.... dann hatte ich davor noch ein Fehler drin
Wie sieht es eig aus, wenn die Query, also der string, zu lang wird?
Hatte ich auch schon, kein Unterschied
Könnte jemand bei MySQL helfen?
Folgender Error:
[03:48:45 11/26/16] [ERROR] CMySQLQuery::Execute[] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE id = '102'' at line 1 (Query: "UPDATE users SET registriert = '1', skin = '1', level = '5', money = '1000000', adminlevel = '5', fraktion = '2', vteam = '0', rang = '12', wanteds = '0', wantedgrund = '', muted = '0', mutetime = '0', spielzeit = '0', email = '', jailtime = '0', jailed = '0', jailtype = '0',morde = '14', tode = '8', verbrechen = '76', premium = '0', donator = '0', contractgeld = '0', changeteamzeit = '0', carkey = '1', eventmann = '0', ooctog = '1', pntog = '1', killstreaksoundtog = '1', hitsoundtog = '1', connecttog = '1', advertisetog = '1', mitgliedertog = '1', ffcd = '0', lottonr = '0', paydaypoints = '1319',copexp = '0', copmaxexp = '0',ziviexp = '0', zivimaxexp = '0', spawnchange = '3', fishskill = '0', fishexp = '0', bauerskill = '0', bauerexp = '0', anwaltskill = '0', anwaltexp = '0', drugs = '2', safedrugs = '998', WHERE id = '102'")
[03:48:45 11/26/16] [DEBUG] CMySQLQuery::Execute[] - error will be triggered in OnQueryError
stock SaveUserStats(playerid)
{
/*new all[1300];
strcat(all,"");
strcat(all,"");
strcat(all,"");
strcat(all,"");
ShowPlayerDialog(playerid,DIALOG_COPHELP,DIALOG_STYLE_MSGBOX,"{FF6E00}Information",all,"Schließen","");*/
if(!Spieler[playerid][Eingeloggt]) return 1;
new query[1000];
mysql_format(handle, query, sizeof(query), "UPDATE users SET registriert = '%d', skin = '%d', level = '%d', money = '%d', adminlevel = '%d', fraktion = '%d', vteam = '%d', rang = '%d', wanteds = '%d', wantedgrund = '%s', muted = '%d', mutetime = '%d', spielzeit = '%d', email = '%s', jailtime = '%d', jailed = '%d', jailtype = '%d',",
Spieler[playerid][Registriert],
Spieler[playerid][Skin],
Spieler[playerid][Level],
GetPlayerMoney(playerid),
Spieler[playerid][Adminlevel],
Spieler[playerid][Fraktion],
Spieler[playerid][vTeam],
Spieler[playerid][Rang],
Spieler[playerid][Wanteds],
Spieler[playerid][WantedGrund],
Spieler[playerid][Muted],
Spieler[playerid][MuteTime],
Spieler[playerid][Spielzeit],
Spieler[playerid][Email],
Spieler[playerid][JailTime],
Spieler[playerid][Jailed],
Spieler[playerid][JailType]);
mysql_format(handle, query, sizeof(query),"%smorde = '%d', tode = '%d', verbrechen = '%d', premium = '%d', donator = '%d', contractgeld = '%d', changeteamzeit = '%d', carkey = '%d', eventmann = '%d', ooctog = '%d', pntog = '%d', killstreaksoundtog = '%d', hitsoundtog = '%d', connecttog = '%d', advertisetog = '%d', mitgliedertog = '%d', ffcd = '%d', lottonr = '%d', paydaypoints = '%d',",
query,
Spieler[playerid][Morde],
Spieler[playerid][Tode],
Spieler[playerid][Verbrechen],
Spieler[playerid][Premium],
Spieler[playerid][Donator],
Spieler[playerid][ContractGeld],
Spieler[playerid][ChangeteamZeit],
Spieler[playerid][Carkey],
Spieler[playerid][Eventmann],
Tog[playerid][OOCTog],
Tog[playerid][PNTog],
Tog[playerid][KillstreakSoundTog],
Tog[playerid][HitsoundTog],
Tog[playerid][ConnectTog],
Tog[playerid][Advertise],
Tog[playerid][Mitglieder],
Spieler[playerid][FFChangeDone], //ffcd = FirstFrakChangeDone <--- allgemein
Spieler[playerid][pLottoNr],
Spieler[playerid][PayPoints]);
mysql_format(handle, query, sizeof(query),"%scopexp = '%d', copmaxexp = '%d', ziviexp = '%d', zivimaxexp = '%d', spawnchange = '%d', fishskill = '%d', fishexp = '%d', bauerskill = '%d', bauerexp = '%d', anwaltskill = '%d', anwaltexp = '%d', drugs = '%d', safedrugs = '%d', WHERE id = '%d'",
query,
Spieler[playerid][CopExp],
Spieler[playerid][CopMaxExp],
Spieler[playerid][ZiviExp],
Spieler[playerid][ZiviMaxExp],
Spieler[playerid][Spawnchange],
Spieler[playerid][Fishskill],
Spieler[playerid][FishExp],
Spieler[playerid][Bauerskill],
Spieler[playerid][BauerExp],
Spieler[playerid][Anwaltskill],
Spieler[playerid][AnwaltExp],
Spieler[playerid][Drugs],
Spieler[playerid][SafeDrugs],
Spieler[playerid][p_id]);
mysql_pquery(handle, query);
return 1;
}
wenn er der Fraktion erfolgreich beigetreten ist, musst du das Pvar "inv_fraktid" für den spieler mit setpvarint auf 0 setzten
//bin am handy
Hey,
Ich wollte /quitjob per befehl machen.
Wollte folgendes einbaun das man den Job Kündigen kann aber widerrum auch die Kündigung zurückziehen kann wie kann ich das machen?
CMD:quitjob(playerid)
{
if(Spieler[playerid][pJob] == 0)
{
SendClientMessage(playerid, COLOR_GREY, "** Du kannst nicht kündigen, da du keinen Beruf hast!");
}
if(Spieler[playerid][pQuitJob] == 0)
{
Spieler[playerid][pQuitJob] = 1;
SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Du hast soeben die Kündigung eingereicht.");
SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Bis zum nächsten Zahltag kannst du noch deinen jetzigen Beruf ausführen.");
}
else if(Spieler[playerid][pQuitJob] == 1)
{
Spieler[playerid][pQuitJob] = 0;
SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Du hast soeben die Kündigung zurückgezogen.");
}
return 1;
}
//e So müsste es funktionieren
//e2 kleinen denkfehler behoben
Hey,
ich habe verschiedenes vor, die mit dem Player passieren sollen, wenn sie offline sind.
Beispiel: Logout Pickup, wenn er Offline ist, soll das Pickup beispielsweise nach einer Minute gelöscht werden.
Aber wie kann es denn gelöscht werden, wenn er offline ist? ich kann doch nicht mehr playerid benutzen, oder? Wie würde man dies denn richtig machen?
Genauso, wenn ich eine Art "Schutzfunktion" für den Spieler einfüge. Sagen wir, er hat irgendwas gemacht, wenn sich ausloggt/crashed hat er 2min Zeit sich wieder einzuloggen
ansonsten ist es weg, was er angefangen hat. Jemand dazu eine Idee?
Gruß
Kevin