Beitrag von GUCCI ()
Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: geklärt ().
das ist ne ganz simple variable
new traktor;
Dann musst du es so machen:
new traktor[2];
traktor[0] = AddStaticVehicle(532,-72.7906,-74.4635,4.0844,44.5379,0,0);
traktor[1] = AddStaticVehicle(532,-64.5483,-61.9884,4.0948,64.5425,0,0);
Hey,
Mein Stats System zeigt dauerhaft im Server
Unknow Command an...
Code:
forward Stats(playerid);
// Public //
public Stats(playerid){
new statsstring[MAX_PLAYER_NAME];
new String[128];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
format(statsstring, sizeof(statsstring), "%s", name);
format(String, sizeof(String), "[Stats von %s]\nNickname: %s\nScore: %d\n Geld: %d", name, name); // Unsere (New's) die wir oben neu angelegt haben - immer mit einem , trennen :5
ShowPlayerDialog(playerid, DIALOG_STYLE_MSGBOX, DIALOG_STATS, "statsstring", String, "Weiter", "Weiter"); // Öffne das Dialog fenster beim Spieler
return 1;
}
// Command //
CMD:stats(playerid,params[])
{
Stats(playerid);
return 1;
}
Alles anzeigen
Versuche es so:
// Command //
CMD:stats(playerid,params[])
{
new string[128], name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string), "[Stats von %s]\nNickname: %s\nScore: %d\n Geld: %d", name, name, GetPlayerScore(playerid), GetPlayerMoney(playerid));
ShowPlayerDialog(playerid, DIALOG_STYLE_MSGBOX, DIALOG_STATS, name, string, "Weiter", "");
return 1;
}
Versuche es so:
// Command //CMD:stats(playerid,params[]){ new string[128], name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, sizeof(name)); format(string, sizeof(string), "[Stats von %s]\nNickname: %s\nScore: %d\n Geld: %d", name, name, GetPlayerScore(playerid), GetPlayerMoney(playerid)); ShowPlayerDialog(playerid, DIALOG_STYLE_MSGBOX, DIALOG_STATS, name, string, "Weiter", ""); return 1;}
Aber dann hab ich doch umsonst ein Public und Forward erstellt oder irre ich mich.
Aber dann hab ich doch umsonst ein Public und Forward erstellt oder irre ich mich.
Genau, das brauchst du hier nicht, das wäre nur unnötiger Aufwand.
Genau, das brauchst du hier nicht, das wäre nur unnötiger Aufwand.
Sprich dann könnte ich mit deiner Methode auch die MySQL Daten auslesen?
Sprich dann könnte ich mit deiner Methode auch die MySQL Daten auslesen?
Nein, die liest du ja auch dem Cache aus, und dieser muss erst separat aufgebaut werden, daher verlinkt man das in eine public-Funktion.
Da du hier aber nur einen Dialog anzeigst (nichts mit MySQL), ist das nicht notwendig.
Nein, die liest du ja auch dem Cache aus, und dieser muss erst separat aufgebaut werden, daher verlinkt man das in eine public-Funktion.Da du hier aber nur einen Dialog anzeigst (nichts mit MySQL), ist das nicht notwendig.
Nein, die liest du ja auch dem Cache aus, und dieser muss erst separat aufgebaut werden, daher verlinkt man das in eine public-Funktion.Da du hier aber nur einen Dialog anzeigst (nichts mit MySQL), ist das nicht notwendig.
Und da liegt mein Problem., Wollte ja die MySQL Sachen auslesen :'DD
Und da liegt mein Problem., Wollte ja die MySQL Sachen auslesen :'DD
Poste bitte dann ein Beispiel von deinem Login, wo du die Daten aus der Datenbank ausliest.
Poste bitte dann ein Beispiel von deinem Login, wo du die Daten aus der Datenbank ausliest.
public OnUserLogin(playerid)
{
if(cache_get_row_count() == 0)
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Anmeldung auf Fort Carson Roleplay", "Bitte logge Dich mit deinem gewähltem Passwort ein:\n{FF0000}Falsches Passwort!", "Ok", "Abbrechen");
}
else
{
new BanReason[128];
pInfo[playerid][pDB_ID] = cache_get_field_content_int(0, "id", dbhandle);
pInfo[playerid][pGeld] = cache_get_field_content_int(0, "Geld");
pInfo[playerid][pLevel] = cache_get_field_content_int(0, "Level", dbhandle);
pInfo[playerid][pAdmin] = cache_get_field_content_int(0, "Admin", dbhandle);
pInfo[playerid][pBan] = cache_get_field_content_int(0, "Ban", dbhandle);
//whitelisted = cache_get_field_content_int(0, "Whitelist", dbhandle);
pInfo[playerid][pSkin] = cache_get_field_content_int(0, "Skin", dbhandle);
pInfo[playerid][pBankKonto] = cache_get_field_content_int(0, "Bankkonto", dbhandle);
pInfo[playerid][pBankPin] = cache_get_field_content_int(0, "BankPIN", dbhandle);
pInfo[playerid][pBankGeld] = cache_get_field_content_int(0, "BankMoney", dbhandle);
pInfo[playerid][pArbeitslos] = cache_get_field_content_int(0, "Arbeitslos", dbhandle);
pInfo[playerid][pPerso] = cache_get_field_content_int(0, "Perso", dbhandle);
pInfo[playerid][pPayDay] = cache_get_field_content_int(0, "PayDay", dbhandle);
pInfo[playerid][pGehalt] = cache_get_field_content_int(0, "Gehalt", dbhandle);
pInfo[playerid][pJob] = cache_get_field_content_int(0, "Job", dbhandle);
pInfo[playerid][pJExp] = cache_get_field_content_int(0, "JExp", dbhandle);
//-------------------
pInfo[playerid][pLoggedIn] = true;
StopAudioStreamForPlayer(playerid);
SendClientMessage(playerid, 0x00FF00FF, "[Spieler-Account] Eingeloggt.");
loadPlayerCars(playerid);
SetCameraBehindPlayer(playerid);
SpawnPlayer(playerid);
SetTimerEx("wTimer", 1000*15, true, "d", playerid);
SetTimerEx("PayDay", 1000*60, true, "d", playerid);
//-------------------
/*if(whitelisted == 1)
{
ShowPlayerDialog(playerid, 9999, DIALOG_STYLE_MSGBOX, "Sie sind gekickt!", "Dieser Server hat eine Whitelist!!!\n\nDu stehst nicht auf dieser Liste somit darfst du diesen Server auch nicht betreten!", "Schliessen", "");
SetTimerEx("tKick", 1500, false, "d", playerid);
return 1;
}
*/
if(pInfo[playerid][pBan] == 1)
{
cache_get_field_content(0, "BanGrund", BanReason, dbhandle, 128);
new string[396];
format(string,sizeof(string),"Du bist auf diesem Server gebannt und kannst nicht dadrauf spielen!\n\n\nDer Grund dafür ist: %s", BanReason);
ShowPlayerDialog(playerid, 9999, DIALOG_STYLE_MSGBOX, "Sie sind gebannt!", string, "Schliessen", "");
SetTimerEx("tKick", 1500, false, "d", playerid);
return 1;
}
}
return 1;
}
Alles anzeigen
Neues Public:
public ShowStats(playerid,targetid)
{
if(IsPlayerConnected(playerid )&& IsPlayerConnected(targetid))
{
new cash = GetPlayerMoney(targetid);
new jtext[20];
if(pInfo[targetid][pJob] == 1) { jtext = "Busfahrer"; }
else if(pInfo[targetid][pJob] == 2) { jtext = "Geldlieferrant"; }
new statsstring[128];
new allesstring[3000];
new alevel = pInfo[targetid][pAdmin];
new Float:health;
new name[MAX_PLAYER_NAME];
GetPlayerName(targetid, name, sizeof(name));
GetPlayerHealth(targetid,health);
new Float:px,Float:py,Float:pz;
GetPlayerPos(targetid, px, py, pz);
format(statsstring,sizeof(statsstring),"%s",name);
format(allesstring,sizeof(allesstring),"Adminlevel: %d\nBargeld: %d",alevel, cash);
ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX,statsstring,allesstring,"Ok","");
}
}
Alles anzeigen
Dann kannst du in deinem Befehl einfach die Werte von z.B.
pInfo[playerid][pBankGeld]
nutzen, du musst nicht auf die Datenbank zugreifen. Das wäre nicht zu empfehlen.
Dann kannst du in deinem Befehl einfach die Werte von z.B.
pInfo[playerid][pBankGeld]
nutzen, du musst nicht auf die Datenbank zugreifen. Das wäre nicht zu empfehlen.
Ok ich versuch es mal ![]()
ich will nicht nerven aber die arrays sind irgendwie nicht einfach zu verstehen mein törichter versuch ![]()
if(IsPlayerInVehicle(playerid, traktor[0][1][2]))
if(IsPlayerInVehicle(playerid, traktor[0]) || IsPlayerInVehicle(playerid, traktor[1]) || IsPlayerInVehicle(playerid, traktor[2]))
ich wusste irgendein operator wird benötigt danke ![]()
Hey wo liegt mein Fehler es wird iwie nie
IsPlayerInRangeOfPoint geprintet obwohl ich direkt vor einem Car stehe
stock IsPlayerInRangeOfJobVehicle(playerid)
{
for(new i = 0; i < sizeof(Jobc); i++)
{
new Float:jfx,Float:jfy,Float:jfz;
GetVehiclePos(Jobc[i][v_ID],jfx,jfy,jfz);
printf("GetVehiclePos");
printf("%d",i);
if(IsPlayerInRangeOfPoint(playerid,5,jfx,jfy,jfz))
{
printf("IsPlayerInRangeOfPoint");
return i;
}
}
return 0;
}
Alles anzeigen
Hey wo liegt mein Fehler es wird iwie nie
IsPlayerInRangeOfPoint geprintet obwohl ich direkt vor einem Car steheCodeAlles anzeigenstock IsPlayerInRangeOfJobVehicle(playerid) { for(new i = 0; i < sizeof(Jobc); i++) { new Float:jfx,Float:jfy,Float:jfz; GetVehiclePos(Jobc[i][v_ID],jfx,jfy,jfz); printf("GetVehiclePos"); printf("%d",i); if(IsPlayerInRangeOfPoint(playerid,5,jfx,jfy,jfz)) { printf("IsPlayerInRangeOfPoint"); return i; } } return 0; }
Überprüf mal ob Jobc[ i ][v_ID] wirklich eine Fahrzeug ID ist.
Hab ich mal gemacht
ocmd:jlock(playerid)
{
new i = IsPlayerInRangeOfJobVehicle(playerid);
printf("übergabe %d",i);
if(i == 0) return SendClientMessage(playerid,ROT,"Du bist nicht an einem Jobfahrzeug.");
if(sInfo[playerid][pJob] != Jobc[i][Jobid]) return SendClientMessage(playerid,ROT,"Du hast kein Schlüssel für dieses Fahrzeug.");
return SendClientMessage(playerid,ROT,"In der Nähe und dein Car");
}
stock IsPlayerInRangeOfJobVehicle(playerid)
{
for(new i = 0; i < sizeof(Jobc); i++)
{
printf("Carid %d",Jobc[i][v_ID]);
new Float:jfx,Float:jfy,Float:jfz;
GetVehiclePos(Jobc[i][v_ID],jfx,jfy,jfz);
printf("GetVehiclePos");
printf("%d",i);
if(IsPlayerInRangeOfPoint(playerid,5,jfx,jfy,jfz))
{
printf("IsPlayerInRangeOfPoint");
return i;
}
}
return 0;
}
Alles anzeigen
[01/07/2016 16:57:24] Carid 1
[01/07/2016 16:57:24] GetVehiclePos
[01/07/2016 16:57:24] 0
[01/07/2016 16:57:24] Carid 1
[01/07/2016 16:57:24] GetVehiclePos
[01/07/2016 16:57:24] 1
[01/07/2016 16:57:24] Carid 1
[01/07/2016 16:57:24] GetVehiclePos
[01/07/2016 16:57:24] 2
[01/07/2016 16:57:24] Carid 1
[01/07/2016 16:57:24] GetVehiclePos
[01/07/2016 16:57:24] 3
[01/07/2016 16:57:24] Carid 1
[01/07/2016 16:57:24] GetVehiclePos
[01/07/2016 16:57:24] 4
[01/07/2016 16:57:24] Carid 1
[01/07/2016 16:57:24] GetVehiclePos
[01/07/2016 16:57:24] 5
[01/07/2016 16:57:24] Carid 1
[01/07/2016 16:57:24] GetVehiclePos
[01/07/2016 16:57:24] 6
[01/07/2016 16:57:24] Carid 1
[01/07/2016 16:57:24] GetVehiclePos
[01/07/2016 16:57:24] 7
[01/07/2016 16:57:24] Carid 1
[01/07/2016 16:57:24] GetVehiclePos
[01/07/2016 16:57:24] 8
[01/07/2016 16:57:24] übergabe 0
Alles anzeigen