Beiträge von varrez
-
-
Wenn du in der Tabelle ganze Zahlen, statt Kommazahlen angezeigt bekommst, hast du den falschen Datentyp für die Spalte gesetzt. Verstehe sowieso nicht ganz, wieso du als Datentyp Float nutzt? Wie soll man denn beispielsweise 0.3 Schuss schaffen? Finde da einen Float irgendwie unsinnig, würde da zum normalen Integer greifen.
Funktioniert bereits 1A, danke trotzdem für ansehen!

Wenn ich viel am rum probieren bin und nichts klappt, kommt immer gerne mal was völlig anderes dabei raus
Gruß
-
Mit floatround bekommst du einen Integer zurück welchen du als float darstellen willst. %d oder %i verwenden dann sollten die Ergebnisse stimmen.
Bin scheinbar mal wieder total durch den Wind, hättest du evtl. Lust und Zeit mir über TeamViewer zu helfen?
-
Würde gerne die Hitrate, die gesamten Schüsse und alle Treffer berechnen und Speichern - würde mich freuen wenn da mal jemand drüber schauen und mir sagen könnte, ob ich was falsch gemacht habe. In meiner Tabelle erhalte ich bei Shots und Hits Einträge wie "1318930000"..
//im enum//..
Float:Shots
Float:Hits,
Float:Hitrate,//...//OnPlayerConnect
PlayerInfo[playerid][Hits] = 0.0;
PlayerInfo[playerid][Shots] = 0.0;
PlayerInfo[playerid][Hitrate] = 0.0;//OnUserLogin
PlayerInfo[playerid][Shots] = cache_get_field_content_float(0, "shots");
PlayerInfo[playerid][Hits] = cache_get_field_content_float(0, "hits");
PlayerInfo[playerid][Hitrate] = cache_get_field_content_float(0, "hitrate");//Save
Float:shots = PlayerInfo[playerid][Shots],
Float:hits = PlayerInfo[playerid][Hits],
Float:hitrate = PlayerInfo[playerid][Hitrate],mysql_format(handle, query, sizeof(query), "UPDATE users SET shots = '%f', hits = '%f', hitrate = '%f' WHERE id = '%d'", shots, hits, hitrate, pID);mysql_pquery(handle, query);
//OnPlayerWeaponShot
PlayerInfo[playerid][Shots] += 1.0;
if(hittype == BULLET_HIT_TYPE_PLAYER){
PlayerInfo[playerid][Hits] += 1.0;
}//Stats Rechnung + Anzeige
PlayerInfo[playerid][Hitrate] = PlayerInfo[playerid][Hits] * 100 / PlayerInfo[playerid][Shots];
new Float:hitrate = PlayerInfo[playerid][Hitrate];Shots: %0.2f Hits: %0.2f Hitrate: %0.2f", floatround(shots), floatround(hits), floatround(hitrate));
-
Zuallererst
SendClientMessage(0x00489184,handle,string);
zu
SendClientMessageToAll(0x00489184, string);
Außedem gibst du string in deinem mysql_format an, welcher mit der Kick Meldung gefüllt ist.
Nutz am besten query (new query[256];) -
Ich arbeite momentan zufällig an solch einem Script (fast 1zu1 nach deiner Vorstellung), ist aber auf MySQL und wird letztendlich einiges mehr an Features besitzen. 150€ wären mir allerdings zu wenig.
-
Die für mich einfachste aber nicht beste Methode:
stock PlayerName(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
return name;
}Dann kannst du immer PlayerName(playerid) bzw. PlayerName(pid) benutzen.
-
So sollte es jetzt eigentlich erstmal funktionieren:
ocmd:makeadmin(playerid,params[])
{
if(!isAdmin(playerid,4))return SendClientMessage(playerid,color_rot,"Dazu bist du nicht befugt!");
new pid,level;
if(sscanf(params,"ui",pid,level))return SendClientMessage(playerid,color_rot,"Verwendung: /makeadmin [ID/NAME] [LEVEL]");
new aname[MAX_PLAYER_NAME], pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, aname, sizeof(aname));
GetPlayerName(pid, pname, sizeof(pname));
new string[128];
format(string, sizeof(string), "Admin %s hat dir das Adminlevel %d gegeben.", aname, level);
SendClientMessage(pid,color_rot,string);
format(string, sizeof(string), "Du hast %s das Adminlevel %d gegeben.", pname, level);
SendClientMessage(playerid,color_rot,string);
sInfo[pid][pAdmin]=level;
return 1;
} -
Womit ließt du denn woanders den Spielername aus? (Tust du das Überhaupt?)
Gruß
-
ocmd:makeadmin(playerid,params[])
{
if(!isAdmin(playerid,4))return SendClientMessage(playerid,color_rot,"Dazu bist du nicht befugt!");
new pid,level;
if(sscanf(params,"ui",pid,level))return SendClientMessage(playerid,color_rot,"Verwendung: /makeadmin [ID/NAME] [LEVEL]");
new string[128];
format(string, sizeof(string), "Admin %s hat dir das Adminlevel %d gegeben.", SpielerName(playerid), level);
SendClientMessage(pid,color_rot,string);
format(string, sizeof(string), "Du hast %s das Adminlevel %d gegeben.", SpielerName(pid), level);
SendClientMessage(playerid,color_rot,string);
sInfo[pid][pAdmin]=level;
return 1;
}Jenachdem ob du SpielerName() verwendest, anpassen an das was du nutzt.
-
Wie lädt man bei diesem MySQL Plugin beim Login strings? cache_get_field_content?
-
Ich werfe ein Osterei in den Pott und nehme damit teil,
hoffentlich kommt der Osterhase noch mal zu mir, denn sonst fehlt mir ein Ei.
Ich würde mich sehr freuen über ein Webspace Ares,
wenn's das gäbe, gerne auch was Bares.
Gut, ich sehs ein, Bares wär dann schon zuviel,
deswegen würde ich mich auch freuen, über nen Spiel.
"Ich nehme Teil" oder "bin dabei" zu schreiben find ich zu wenig,
die meistens die Teilnehmen, kriegen eh nichts.
Ich hoffe das ich mich mit meinen Reimen nicht blamier,
dafür aber ordentlich was kassier.
Ich wünsche jedem der hier teilnimmt Glück,
aber auch nur ein kleines Stück

-
Beides endet in einem Error, hab einfach PlayerInfo[playerid][IP] als Parameter angegeben statt pIP, nun klappt es.
Danke trotzdem an euch beide!Gruß
-
new pIP = PlayerInfo[playerid][IP];
zu:
new pIP[32] = PlayerInfo[playerid][IP];error 008: must be a constant expression; assumed zero
-
Hallo, ich seh wahrscheinlich mal den Wald vor lauter Bäumen nicht.. Jedenfalls wird die IP nicht gespeichert:
PlayerInfo:
IP[32],OnPlayerConnect
new playerip[32];
GetPlayerIp(playerid, playerip, sizeof(playerip));
strmid(PlayerInfo[playerid][IP], playerip, 0, strlen(playerip), 255);Save public:
new pIP = PlayerInfo[playerid][IP];im mysql_format
ip = '%s' //anschließender Parameter "pIP"Datenbank:
Name: ip
Typ: varchar(32)
Kollation: latin1_swedish_ci
Null: Ja
Standart: 0Sieht jemand mein Fehler?
-
unter enum SpielerDaten
new SpielerInfo[MAX_PLAYERS][SpielerDaten];
evtl. nach `ID`='%d'", Zeilenumbruch und einmal Tab probieren
-
Hattest du meine Korrektur aus Post #6 auch probiert?
mysql_format(Handle, Query, sizeof(Query), "UPDATE `Spieler` SET `IP`='%s', `Admin`='%d', `VIP`='%d', `Morde`='%d', `Tode`='%d', `Level`='%d', `Geld`='%d' WHERE `ID`='%d'", IP[playerid], SpielerInfo[playerid][Admin], SpielerInfo[playerid][VIP], SpielerInfo[playerid][Morde], SpielerInfo[playerid][Tode], GetPlayerScore(playerid), SpielerInfo[playerid][Geld], SpielerInfo[playerid][ID]);
-
Der Fehler bleibt weiterhin bestehen er soll in Folgender Zeile sitzen
mysql_format(Handle, Query, sizeof(Query), "UPDATE `Spieler` SET `IP`='%s', `Admin`=%d, `VIP`=%d, `Morde`=%d, `Tode`=%d, `Level`=%d, `Geld`=%d WHERE `ID`=%d",\ IP[playerid], SpielerInfo[playerid][Admin], SpielerInfo[playerid][VIP], SpielerInfo[playerid][Morde], SpielerInfo[playerid][Tode], GetPlayerScore(playerid), SpielerInfo[playerid][Geld], SpielerInfo[playerid][ID]);Du hast ein "\" nach `ID`="%d", schätze das gehört nicht dort hin
Gruß
-
mysql_tquery(Handle, Query, "", "");
zu
mysql_tquery(Handle, Query, "OnAccountCheck", "i", playerid);
Edit: bzw probier das auch mal:
mysql_format(Handle, Query, sizeof(Query), "UPDATE `Spieler` SET `IP`='%s', `Admin`=%d, `VIP`=%d, `Morde`=%d, `Tode`=%d, `Level`=%d, `Geld`=%d WHERE `ID`=%d",
IP[playerid], SpielerInfo[playerid][Admin], SpielerInfo[playerid][VIP], SpielerInfo[playerid][Morde], SpielerInfo[playerid][Tode], GetPlayerScore(playerid), SpielerInfo[playerid][Geld], SpielerInfo[playerid][ID]); -
Da ich 2 Domains besitze, welche ich nicht benötige, "verschenke" ich diese. Die Domains werden nicht übertragen, bleiben also in meinem Besitz. Sie können am Ende der Laufzeit von euch übernommen werden, oder ich übergebe Sie an euch, wenn ich denke das die Domain bei euch in den richtigen Händen liegt. Das heißt, ihr "erhaltet" erstmal eine Weiterleitung. Beide Domains habe ich bei Nitrado registriert.
Domain 1: vailya.de
Restliche Laufzeit: 246 TageDomain 2: hardwaregeneral.de
Restliche Laufzeit: 201 TageWer Interesse hat, kann mich Privat kontaktieren, oder hier im Thread einen Beitrag hinterlassen, warum und wofür er die jeweilige Domain gerne hätte.
Gruß
varrez