Ein string kann noch weit aus mehr unterstützen. Das Problem ist hier(hab ich beobachtet), dass nach 2048 erstmal Sense ist, zumindest hab ich so dass Gefühl.
Bei sscanf kann man auch mittels p| trennen, da das pX(p für Trenner und X für den Delimiter) anzeigt, wo getrennt werden soll.
So kann man aus dem String
1|0|abc|1|2
mit sscanf auslesen:
sscanf(string, "ddsdd", int1, int2, string1, int3, int4);
Beiträge von HandsUpFreak
-
-
Word 2007 müsste doch eine Funktion inkl. haben um PDFs zu erstellen. Ansonsten probier mal den:
http://www.pdfforge.org/pdfcreator
Den hab ich auch lange Zeit genutzt, ist wirklich gut -
Hallo,
mich würde einfach mal interessieren, welches der oben 3 genannten Systeme am schnellsten bzw. besten ist.
Ich persönlich nutze zcmd und bin an sich sehr zufrieden.
Wie seht ihr das? Am besten direkt mit Fakten, weil Threads wie "dcmd ist gut." will niemand hier im Forum sehenDanke für eure Hilfe
-
Ja, stimmt schon, ist aber weit aus sicherer falls mal ein Root-Absturz passiert.
Mir ging es auch eigentlich einfach nur darum, zu wissen, ob SAMP mit zuvielen großen Strings nicht klarkommt. Ich habe nämlich auch mal ein Test gemacht und 8 Strings á 256 Länge befüllt und diese anschließend in einen großen String mit 2048 Länge per format reingequetscht. Danach hat der Server das gleiche Phänomen gezeigt und nichts mehr gemacht. -
Sowas kommt nicht in Server-Hilfe sondern in Scripting Base.
Wenn es kein Selfmade ist was ist es dann?
Und außerdem:Nur da fehlt autohaus ich habe alles die pwn datei und die amx datei kanne iner mit helfen das zu einfügen im script
Bitte
Was erhoffst du dir jetzt?
Das wir das gesamte Script(Was du uns nicht gegeben hast) inkl. fertig eingebautem Autohaus liefern?
Ein paar mehr Informationen wären schon gut. -
Naja, der DB-Server liegt auf einem anderen als der Gameserver. Daher möchte ich nicht soviele ausführen da es auch irgendwo müll ist soviele Querys hintereinander auszuführen. Der Server ist zwar ordentlich eingestellt und auch leistungsstark aber wenn da in der Stunde (nehmen wir mal den extremfall)100 Leute connecten und disconnecten dann sind das schon 14 Querys(Connect+Disconnect)*100 das sind dann 1400 Querys in der Stunde, nicht gerade gesund.
-
Also da kann ich 8ball nur recht geben, einen reallife Server zueröffnen lohnt sich nicht mehr, fang lieber an ein selfmade für iv:Mp zu scripten denn das hat wenigstens noch eine zukunft
Naja, das stimmt so auch nicht.
SA:MP hat denke ich noch mehr Zukunft da GTA IV sich nicht soviel verkauft hat und ein Leistungsfresser ist. -
Okay, ich möchte aber nicht 7 oder 8 Querys haben sondern eine, ist halt rescourcensparender. Da nehm ich lieber eine richtig dicke, die auch hoffentlich noch bald laufen wird^^
-
Ok danke, dass ist nett
-
Naja, ich denke mal meine Query würde hier beim posten den Rahmen sprengen. Ach egal, ich poste es einfach mal rein, aufpassen
new selectUserData[512], leftJoinData[512];
format(selectUserData, sizeof(selectUserData), "userv.playedtimeH, userv.playedtimeM, userv.kills, userv.death, rllicense.id_card, rluserv.id_card_id, rllicense.car_license, rllicense.scooter_license, rllicense.bike_license, rllicense.boat_license, rllicense.heli_license, rllicense.plane_license, rluserv.wanted_level, rluserv.handy, rluserv.handyName, groupusers.groupID, groupusers.groupRankID, groupranks.groupRankName, jail.jailActive, jail.jailTime, jail.jailReason, jail.jailerID");
format(leftJoinData, sizeof(leftJoinData), "LEFT JOIN rl_uservalues rluserv ON (rluserv.userID = user.id) LEFT JOIN rl_licenses rllicense ON (rllicense.userID = user.id) LEFT JOIN rl_group_users groupusers ON (groupusers.userID = user.id) LEFT JOIN rl_group_ranks groupranks ON (groupranks.groupRankID = groupusers.groupRankID AND groupranks.groupID = groupusers.groupID) LEFT JOIN rl_jail jail ON (jail.userID = user.id)");
format(sqlbig, sizeof(sqlbig),
"SELECT user.id, user.isAnAdmin, user.banned, user.banned_reason, user.password_md5, user.email, user.last_login_ip, language.languageid, %s FROM samp_user user LEFT JOIN samp_uservalues userv ON (userv.userID = user.id) LEFT JOIN samp_languages language ON (language.userID = user.id) %s WHERE user.playername = '%s'",
selectUserData,
leftJoinData,
GetPlayerName(playerid));
mysql_query(sqlbig);
mysql_store_result();
if(mysql_num_rows() == 1) {
PlayerStatus[playerid][getAccount] = 1;
PlayerStatus[playerid][ipAdress] = GetPlayerIp(playerid);
while(mysql_fetch_row(sqlbig)) {
sscanf(sqlbig, "p|dddssssdddddddddddddddsdddddsd",
PlayerInfo[playerid][userID],
AdminInfo[playerid][isAnAdmin],
PlayerStatus[playerid][banned],
PlayerStatus[playerid][bannedReason],
PlayerInfo[playerid][password_md5],
PlayerInfo[playerid][email],
PlayerInfo[playerid][last_login_ip],
PlayerInfo[playerid][playtimeH],
PlayerInfo[playerid][playtimeM],
PlayerInfo[playerid][kills],
PlayerInfo[playerid][deaths],
PlayerInfo[playerid][language],
RlInfo[playerid][ID_card],
RlInfo[playerid][ID_card_id],
RlInfo[playerid][Car_license],
RlInfo[playerid][Scooter_license],
RlInfo[playerid][MBike_license],
RlInfo[playerid][Boat_license],
RlInfo[playerid][Heli_license],
RlInfo[playerid][Plane_license],
RlInfo[playerid][Wanted_level],
RlInfo[playerid][Handy],
RlInfo[playerid][HandyName],
GroupInfo[playerid][groupID],
GroupInfo[playerid][groupRankID],
GroupInfo[playerid][groupRank],
JailInfo[playerid][jailed],
JailInfo[playerid][jailTime],
JailInfo[playerid][jailReason],
JailInfo[playerid][jailerID]);
}
print("");
print("==== userConnectData erfolgreich ! ================");
printf("...Spieler %s wurde in der Datenbank gefunden !");
printf("...UserID: %d - Banned: %d - E-Mail: %s - Admin: %d", PlayerInfo[playerid][userID], PlayerStatus[playerid][banned], PlayerInfo[playerid][email], AdminInfo[playerid][isAnAdmin]);
if(PlayerStatus[playerid][banned]) printf("Banreason: %s", PlayerStatus[playerid][bannedReason]);
if(!PlayerStatus[playerid][banned]) printf("GroupID: %d - GroupRankID: %d - GroupRank: %s", GroupInfo[playerid][groupID], GroupInfo[playerid][groupRankID], GroupInfo[playerid][groupRank]);
print("");
mysql_free_result();
userEditor("adminLogin", playerid);
return 1;
}
mysql_free_result();
Die hier auszuführende Query(Ja, ich musste sie leider aufteilen^^) lautet:SQLSELECT user.id, user.isAnAdmin, user.banned, user.banned_reason, user.password_md5, user.email, user.last_login_ip, language.languageid, userv.playedtimeH, userv.playedtimeM, userv.kills, userv.death, rllicense.id_card, rluserv.id_card_id, rllicense.car_license, rllicense.scooter_license, rllicense.bike_license, rllicense.boat_license, rllicense.heli_license, rllicense.plane_license, rluserv.wanted_level, rluserv.handy, rluserv.handyName, groupusers.groupID, groupusers.groupRankID, groupranks.groupRankName, jail.jailActive, jail.jailTime, jail.jailReason, jail.jailerID FROM samp_user user LEFT JOIN samp_uservalues userv ON (userv.userID = user.id) LEFT JOIN samp_languages language ON (language.userID = user.id) LEFT JOIN rl_uservalues rluserv ON (rluserv.userID = user.id) LEFT JOIN rl_licenses rllicense ON (rllicense.userID = user.id) LEFT JOIN rl_group_users groupusers ON (groupusers.userID = user.id) LEFT JOIN rl_group_ranks groupranks ON (groupranks.groupRankID = groupusers.groupRankID AND groupranks.groupID = groupusers.groupID) LEFT JOIN rl_jail jail ON (jail.userID = user.id) WHERE user.playername = 'HandsUpFreak'
und das hochscrollen nicht vergesssen -
Hallo,
ich habe eine riesige SQL-Query mit ca. 1300 Zeichen im String geschrieben, die es mir ermöglicht mittels LEFT JOIN's aus verschiedenen MySQL-Tabellen die Userdaten zu beziehen. Das klappt auch aber danach ist Ende. SAMP ist anscheinend vollgespeichert und führt nichts mehr aus, der Server bleibt zwar an aber z.B. einfache Commands wie:
printf("GroupID: %d - GroupRankID: %d - GroupRank: %s", GroupInfo[playerid][groupID], GroupInfo[playerid][groupRankID], GroupInfo[playerid][groupRank]);
werden einfach abgekürzt. Danach wird ein weiterer Befehl der unten drunter steht auch nicht mehr ausgeführt. Woran kann das liegen, dass der String wegen der großen Query evtl. so definiert wird:
new sqlbig[1536];
Ich weiß nicht woran es liegt und würde mich über eine Antwort freuen.Mfg
-
Hast du überhaupt die Grundsätze von PAWN verstanden?
public OnPlayerRequestClass(playerid, classid) {
SpawnPlayer(playerid)
return 1; /463
}
Da sind schon 2 Fehler drin.
Ein Kommentar wird so geschrieben // und hinter jeder Zeile muss ein ; stehen. Damit sagst du erst, dass damit der Befehl bzw. die Zeile zuende ist
Richtig aussehen müsste es also:
public OnPlayerRequestClass(playerid, classid) {
SpawnPlayer(playerid);
return 1; //463 } -
Muss das Thema noch einmal rausholen.
Sind enum's besser oder sollte man alles mit den z.B. SetPvarInt setzen? -
Dann würde ich an deiner Stelle mit Uservariablen arbeiten.
-
Du musst natürlich erstmal sagen, wo genau dieser Fehler auftritt. Wir wissen ja auch nicht, ob dies nun eine Uservar ist oder eine Servervar. Oder ist es gleich eine Serverdefination?
-
SpawnPlayer()
-
Du könntest z.B. mit Timestamps arbeiten. Ich weiß ja nicht, ob du mit MySQL arbeitest oder nicht. Mit MySQL kannst du halt in der MySQL-DB abspeichern, wann er gebannt wurde. Wenn ohne MySQL, dann halt eine Uservariable die er in der file abspeichert. Zum Timestamp dann einfach die gewünschte Sekundenzahl hinzufügen, wann er wieder entbannt werden soll und dann einfach abchecken ob der Timestamp älter ist als der aktuelle, dann ist er wieder entbannt.
-
public OnGameModeInit()
-
Wegen dem Stay within the World boudris:
Du musst eine AddPlayerClass einfügen. Hier ein Bsp.:
AddPlayerClass(0,1551.9502,-1675.5460,16.0752,92.6535,0,0,0,0,0,0); -
Hallo,
ich suche den Delimiter von der MySQL-Query. Standart in PHP oder PhpMyAdmin ist ja das ; aber das nimmt SA-MP nicht an, daher schreibt er dies in die MySQL-Log:Code[11:20:18] CMySQLHandler::Query(SELECT id FROM samp_user WHERE playername = 'HandsUpFreak'; SELECT banned FROM samp_user WHERE playername = 'HandsUpFreak';) - An error has occured. (Error ID: 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 'SELECT banned FROM samp_user WHERE playername = 'HandsUpFreak'' at line 1)
Würde ich jetzt genau diese Query in PhpMyAdmin ausführe:SQLSELECT id FROM samp_user WHERE playername = 'HandsUpFreak'; SELECT banned FROM samp_user WHERE playername = 'HandsUpFreak';
Zeigt er mir die Werte an. Diese Query würde natürlich 0 Sinn machen, dass ist mir schon klar da der eine SELECT den anderen überschreibt. Es ist einfach nur zum zeigen, dass der Delimiter mit ; nicht funktioniert. Kann jemand dabei helfen?Mfg