Jedes Fahrzeug was zugelassen wird kriegt ein zufälliges "einmaliges" Kennzeichen. Die LSPD Cars haben damit nichts zu tun. (Normale Bürger Kennzeichen sind 4 Stellig, Staats Fahrzeuge sind 2 Stellig usw.)
Die Kennzeichen werden gespeichert und geladen das habe ich hinbekommen nur ist jetzt das unprofessionell
Beiträge von Jameso
-
-
Wie soll das bleiben ist ja MAX_BIZ drin.
http://prntscr.com/lw4o9n
Komme immer noch nicht in das Interior rein.Code
Alles anzeigenif(GetPVarInt(playerid,"InBiz")!=-1) { new b=GetPVarInt(playerid,"InBiz"); new bi=bInfo[b][bInterior]; if(IsPlayerInRangeOfPoint(playerid,3.0,BizInts[bi][IX],BizInts[bi][IY],BizInts[bi][IZ])) { SetPlayerPos(playerid,bInfo[b][bX],bInfo[b][bY],bInfo[b][bZ]); SetPlayerInterior(playerid,0); SetPlayerVirtualWorld(playerid,0); SetPVarInt(playerid,"InBiz",-1); return 1; } } else { for(new b;b<sizeof(bInfo);b++) { if(IsPlayerInRangeOfPoint(playerid,5.0,bInfo[b][bX],bInfo[b][bY],bInfo[b][bZ])) { if(bInfo[b][biztype]==3)return SendClientMessage(playerid,-1,"Diesen BizTyp kannst du nicht betreten!"); new bi=bInfo[b][bInterior]; if(bi==0) return SendClientMessage(playerid,-1,"Das Biz hat kein Interior"); SetPlayerPos(playerid,BizInts[bi][IX],BizInts[bi][IY],BizInts[bi][IZ]); SetPlayerInterior(playerid,BizInts[bi][Interior]); SetPlayerVirtualWorld(playerid,BizInts[bi][Welt]); SetPVarInt(playerid,"InBiz",b); new string[250]; format(string,sizeof(string),"Binfo Interior: %d | BizInfo Y: %f | BizInfo Interior: %d",bi,BizInts[bi][IY],BizInts[bi][Interior]); printf(string); return 1; } } }
Code
Alles anzeigenstock BizSpeichernAll() { for(new bizid = 0; bizid < MAX_BIZ; bizid++) { new query[256]; mysql_format(db,query,sizeof(query),"UPDATE `biz` Set `bizbefehl`='%d',`biztype2`='%d',`opentime`='%d',`maxwaren`='%d',`X`='%f',`Y`='%f',`Z`='%f',`waren`='%d',`besitzer`='%d',`bizkasse`='%d' WHERE `ID`='%i'", bInfo[bizid][bizbefehl],bInfo[bizid][biztype2],bInfo[bizid][bopentime],bInfo[bizid][bmaxwaren],bInfo[bizid][bX],bInfo[bizid][bY],bInfo[bizid][bZ],bInfo[bizid][bbiz],bInfo[bizid][bwaren],bInfo[bizid][bbesitzer],bInfo[bizid][bbizkasse],bInfo[bizid][db_bid]); mysql_pquery(db,query); } } forward BizLaden(); public BizLaden() { new rows; cache_get_row_count(rows); if(rows==0) return print("!!WARNING!! Geschäfte konnten nicht geladen werden !!WARNING!!"); for(new bizid = 0; bizid < MAX_BIZ; bizid++) { cache_get_value_name_int(bizid,"ID",bInfo[bizid][db_bid]); if(bInfo[bizid][db_bid]==0)continue; cache_get_value_name_int(bizid,"biztype",bInfo[bizid][biztype]); cache_get_value_name_int(bizid,"waren",bInfo[bizid][bwaren]); cache_get_value_name(bizid,"besitzer",bInfo[bizid][bbesitzer],24); cache_get_value_name_int(bizid,"bizkasse",bInfo[bizid][bbizkasse]); cache_get_value_name_int(bizid,"eintritt",bInfo[bizid][beintritt]); cache_get_value_name_float(bizid,"X",bInfo[bizid][bX]); cache_get_value_name_float(bizid,"Y",bInfo[bizid][bY]); cache_get_value_name_float(bizid,"Z",bInfo[bizid][bZ]); cache_get_value_name_int(bizid,"biztype2",bInfo[bizid][biztype2]); cache_get_value_name_int(bizid,"opentime",bInfo[bizid][bopentime]); cache_get_value_name_int(bizid,"maxwaren",bInfo[bizid][bmaxwaren]); cache_get_value_name_int(bizid,"bizbefehl",bInfo[bizid][bizbefehl]); //printf("ID:%i Kasse:%i Besitzer:%s X:%f Y:%f Z:%f",bInfo[bizid][db_bid],bInfo[bizid][bbizkasse],bInfo[bizid][bbesitzer],bInfo[bizid][bX],bInfo[bizid][bY],bInfo[bizid][bZ]); } UpdateBizInfos(); return 1; }
zu
Code
Alles anzeigenstock BizSpeichernAll() { for(new bizid = 0; bizid < sizeof(bInfo); bizid++) { new query[256]; mysql_format(db,query,sizeof(query),"UPDATE `biz` Set `bizbefehl`='%d',`biztype2`='%d',`opentime`='%d',`maxwaren`='%d',`X`='%f',`Y`='%f',`Z`='%f',`waren`='%d',`besitzer`='%d',`bizkasse`='%d' WHERE `ID`='%i'", bInfo[bizid][bizbefehl],bInfo[bizid][biztype2],bInfo[bizid][bopentime],bInfo[bizid][bmaxwaren],bInfo[bizid][bX],bInfo[bizid][bY],bInfo[bizid][bZ],bInfo[bizid][bbiz],bInfo[bizid][bwaren],bInfo[bizid][bbesitzer],bInfo[bizid][bbizkasse],bInfo[bizid][db_bid]); mysql_pquery(db,query); } } forward BizLaden(); public BizLaden() { new rows; cache_get_row_count(rows); if(rows==0) return print("!!WARNING!! Geschäfte konnten nicht geladen werden !!WARNING!!"); for(new bizid = 0; bizid < sizeof(bInfo); bizid++) { cache_get_value_name_int(bizid,"ID",bInfo[bizid][db_bid]); if(bInfo[bizid][db_bid]==0)continue; cache_get_value_name_int(bizid,"biztype",bInfo[bizid][biztype]); cache_get_value_name_int(bizid,"waren",bInfo[bizid][bwaren]); cache_get_value_name(bizid,"besitzer",bInfo[bizid][bbesitzer],24); cache_get_value_name_int(bizid,"bizkasse",bInfo[bizid][bbizkasse]); cache_get_value_name_int(bizid,"eintritt",bInfo[bizid][beintritt]); cache_get_value_name_float(bizid,"X",bInfo[bizid][bX]); cache_get_value_name_float(bizid,"Y",bInfo[bizid][bY]); cache_get_value_name_float(bizid,"Z",bInfo[bizid][bZ]); cache_get_value_name_int(bizid,"biztype2",bInfo[bizid][biztype2]); cache_get_value_name_int(bizid,"opentime",bInfo[bizid][bopentime]); cache_get_value_name_int(bizid,"maxwaren",bInfo[bizid][bmaxwaren]); cache_get_value_name_int(bizid,"bizbefehl",bInfo[bizid][bizbefehl]); //printf("ID:%i Kasse:%i Besitzer:%s X:%f Y:%f Z:%f",bInfo[bizid][db_bid],bInfo[bizid][bbizkasse],bInfo[bizid][bbesitzer],bInfo[bizid][bX],bInfo[bizid][bY],bInfo[bizid][bZ]); } UpdateBizInfos(); return 1; }
Also würde das so auch funktionieren?
-
Code
Alles anzeigenocmd:mieten(playerid,params[]) { for(new b;b<MAX_BIZ;b++) { if(bInfo[b][biztype]==3)// Fahrzeugverleih { if(IsPlayerInRangeOfPoint(playerid,5,bInfo[b][bX],bInfo[b][bY],bInfo[b][bZ])) { ShowPlayerDialog(playerid, DIALOG_FAHRZEUGVERLEIH1, DIALOG_STYLE_LIST, "Fahrzeugverleih", "Mountenbike - $394\nBmx - $326\nFahrrad - $316\nRoller - $693", "Mieten", "Abbrechen"); return 1; } } } return SendClientMessage(playerid,-1,"{bc4343}Du kannst dir kein Fahrzeug mieten, da du an keinem Fahrzeugverleih stehst."); }
Code
Alles anzeigenstock IsAtBiz(playerid) { for(new b;b<MAX_BIZ;b++) { if(!IsPlayerInRangeOfPoint(playerid,5.0,bInfo[b][bX],bInfo[b][bY],bInfo[b][bZ])) continue; return b; } return 0; } stock IsAtHisBiz(playerid) { for(new b;b<MAX_BIZ;b++) { if(bInfo[b][db_bid]!=pInfo[playerid][pBizbesitz]) continue; if(!IsPlayerInRangeOfPoint(playerid,5.0,bInfo[b][bX],bInfo[b][bY],bInfo[b][bZ])) continue; return bInfo[b][db_bid]; } return 0; }
Wenigstens ist das Problem jetzt gefunden, ich brauche aber MAX_BIZ für die Sachen z.B
Was soll ich jetzt machen ich kann da doch nicht sizeof(BizInts) hinschreiben.Codestatic const BizInts[][bizinteriors]={ {"Dummy",0,0,0,0.0,0.0,0.0}, {"24/7",17,1,1,/*InteriorPos*/-25.884498,-185.868988,1003.546873} };
Ich habe extra die 0 nie besetzt weil es ja wie du es schon sagst zu Komplikationen führt.
-
Ich bin gerade dabei ein Kennzeichen System zu erstellen.
Kennzeichen werden gesetzt, gespeichert, geladen. Nur gibt es jetzt folgende Probleme.Wenn man sein Auto zulassen will, sieht es bei mir so aus:
Codenew string[50]; format(string, sizeof(string), "LS-%d",PCar[playerid][d][P_KZ]); SetVehicleNumberPlate(PCar[playerid][d][P_VID],string);
Was, wenn es eine Zahl doppelt gibt und jemand mit einem Befahl das Fahrzeug Orten möchte?
Ich bräuchte auch noch Hilfe einen Befehl zu erstellen (habe noch nie mit params gearbeitet) damit ein Checkpoint gesetzt wird wo das Fahrzeug mit dem Kennzeichen ist.
Befehl sollte so aussehen: /locatecar LS-2848 -> Timer der gesetzt wird -> Nach einer Zeit wird der Checkpoint gesetzt. (Der Spieler muss aber in einem Polizei Fahrzeug sein)
Freue mich über jegliche Hilfe -
http://prntscr.com/lw2xbz
Es erscheint immer noch das selbe in der Konsole, funktioniert immer noch nicht. Aber woran kann es liegen was bedeuten die Fehler überhaupt?Das Komma kann man sogar da lassen, es würde trotzdem funktionieren. Irgendwie ist dem Compiler das egal
-
Wird der Timer überhaupt aufgerufen?
Teste das mal indem du dir einen Text printen lässt oder dir selber eine Message zeigst.Codepublic totVanish() { DestroyPickup(totsignpickup); Delete3DTextLabel(totsign); print("public totVanish aufgerufen"); return 1; }
Ich habe es ansonsten nochmal angeschaut und habe alles im Wiki nachgeguckt, müsste ja so funktionieren.
-
Hab es mir printen lassen, es kommt nicht mal zum printen, dass heißt irgendwas muss mit dem PVar nicht stimmen oder?
Code
Alles anzeigenpublic OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { // Biz if(GetPVarInt(playerid,"InBiz")!=-1) { new b=GetPVarInt(playerid,"InBiz"); new bi=bInfo[b][bInterior]; if(IsPlayerInRangeOfPoint(playerid,3.0,BizInts[bi][IX],BizInts[bi][IY],BizInts[bi][IZ])) { SetPlayerPos(playerid,bInfo[b][bX],bInfo[b][bY],bInfo[b][bZ]); SetPlayerInterior(playerid,0); SetPlayerVirtualWorld(playerid,0); SetPVarInt(playerid,"InBiz",-1); return 1; } } else { for(new b;b<MAX_BIZ;b++) { if(IsPlayerInRangeOfPoint(playerid,5.0,bInfo[b][bX],bInfo[b][bY],bInfo[b][bZ])) { if(bInfo[b][biztype]==3)return SendClientMessage(playerid,-1,"Diesen BizTyp kannst du nicht betreten!"); new bi=bInfo[b][bInterior]; if(bi==0) return SendClientMessage(playerid,-1,"Das Biz hat kein Interior"); SetPlayerPos(playerid,BizInts[bi][IX],BizInts[bi][IY],BizInts[bi][IZ]); SetPlayerInterior(playerid,BizInts[bi][Interior]); SetPlayerVirtualWorld(playerid,BizInts[bi][Welt]); SetPVarInt(playerid,"InBiz",b); new string[250]; format(string,sizeof(string),"Binfo Interior: %d | BizInfo Y: %f | BizInfo Interior: %d",bi,BizInts[bi][IY],BizInts[bi][Interior]); printf(string); return 1; } } } } return 1; }
http://prntscr.com/lvovh7 <- Das kommt in die Konsole
im Public ist noch das selbe für Öffentliche Gebäude aber daran liegt das bestimmt nicht.
-
Ja wird gesetzt, ich habe neue Informationen.
Das zeigt er mir an, wenn ich versuche, in den 24/7 rein zu gehen.
http://prntscr.com/lvdeguCode
Alles anzeigenenum bizinteriors{ Name[35], Interior, Welt, Biztype, Float:IX,Float:IY,Float:IZ,// Exit Position } static const BizInts[][bizinteriors]={ {"Dummy",0,0,0,0.0,0.0,0.0}, {"24/7",17,1,1,/*InteriorPos*/-25.884498,-185.868988,1003.546873} };
Wenn ich rein gehen will passiert das.
Code
Alles anzeigenif(GetPVarInt(playerid,"InBiz")!=-1) { new b=GetPVarInt(playerid,"InBiz"); new bi=bInfo[b][bInterior]; if(IsPlayerInRangeOfPoint(playerid,3.0,BizInts[bi][IX],BizInts[bi][IY],BizInts[bi][IZ])) { SetPlayerPos(playerid,bInfo[b][bX],bInfo[b][bY],bInfo[b][bZ]); SetPlayerInterior(playerid,0); SetPlayerVirtualWorld(playerid,0); SetPVarInt(playerid,"InBiz",-1); return 1; } }
(
-
Doch habe ich sogar, vergessen es anzugeben.
bInfo[bX],bInfo[b][bY],bInfo[b][bZ]
Da wird der Textlabel erstellt und das Icon. Sozusagen sind die Werte in der Datenbank.
-
Hey,
Ich habe ein Problem, (damals Hilfe von SnoX bekommen hierbei)Also so sieht es bei normalen Objekten aus, wenn ich ein Interior betrete.
Code
Alles anzeigenenum buildungs{ Name[35], Interior, Welt, Float:EX,Float:EY,Float:EZ,// Enter Position Float:IX,Float:IY,Float:IZ,// Exit Position } static const Building[][buildungs]={ {"Stadthalle",3,0,/*Eingang*/1480.9742,-1783.3358,14.7578,/*Ausgang*/390.2214,173.8667,1008.3828}, {"LSPD",6,0,/*Eingang*/1554.7063,-1675.6072,16.1953,/*Ausgang*/246.783996,63.900199,1003.640625}, {"Fahrschule",3,0,/*Eingang*/1154.0405,-1772.3998,16.5992,/*Ausgang*/-2029.6615,-119.4395,1035.1719} };
So sieht es beim Biz aus
Code
Alles anzeigennum bizinteriors{ Name[35], Interior, Welt, Biztype, Float:IX,Float:IY,Float:IZ,// Exit Position } static const BizInts[][bizinteriors]={ {"Dummy",0,0,0,0.0,0.0,0.0}, {"24/7",17,1,1,/*InteriorPos*/-25.884498,-185.868988,1003.546873} };
Code
Alles anzeigenif(GetPVarInt(playerid,"InBiz")!=-1) { new b=GetPVarInt(playerid,"InBiz"); new bi=bInfo[b][bInterior]; if(IsPlayerInRangeOfPoint(playerid,3.0,BizInts[bi][IX],BizInts[bi][IY],BizInts[bi][IZ])) { SetPlayerPos(playerid,bInfo[b][bX],bInfo[b][bY],bInfo[b][bZ]); SetPlayerInterior(playerid,0); SetPlayerVirtualWorld(playerid,0); SetPVarInt(playerid,"InBiz",-1); return 1; } } else { for(new b;b<MAX_BIZ;b++) { if(IsPlayerInRangeOfPoint(playerid,5.0,bInfo[b][bX],bInfo[b][bY],bInfo[b][bZ])) { if(bInfo[b][biztype]==3)return SendClientMessage(playerid,-1,"Diesen BizTyp kannst du nicht betreten!"); new bi=bInfo[b][bInterior]; if(bi==0) return SendClientMessage(playerid,-1,"Das Biz hat kein Interior"); SetPlayerPos(playerid,BizInts[bi][IX],BizInts[bi][IY],BizInts[bi][IZ]); SetPlayerInterior(playerid,BizInts[bi][Interior]); SetPlayerVirtualWorld(playerid,BizInts[bi][Welt]); SetPVarInt(playerid,"InBiz",b); return 1; } } } }
Irgendwie komme ich nicht in das Interior rein, ich drücke "Enter" nichts passiert. Bin gerade dabei alle Biz Geschäfte aufzustellen usw.
Ich hoffe jemand kann mir da helfenAufgrund meines Ausbildungsplatzes war ich inaktiv ab Weihnachten bin ich wieder richtig aktiv
-
Suche ein Objekt was so lang ist wie das Geschäft, möchte da gerne ein anderes Geschäft rein machen es geht aber nicht, weil die Tür bei der anderen Textur auf der ganz anderen Seite ist und
deswegen dann auch nicht die Fenster Seite sondern die Tür Seite kopiert wird sprich wenn ich die Textur so anbringe habe ich 3 TürenAlso ich habe schon Garage Doors probiert die sind zu klein, hat jemand eine Idee?
Müssen schon Objekte sein die 1 Textur an sich haben vorne und nicht 4 mal die selbe, hoffe das ist verständlich -
Schade, es muss wirklich einer im Fahrzeug sein, sonst wäre das zu geil würde es SetVehicleGravity geben.
Da jemand im Fahrzeug sitzen muss wird das nicht gehen, manchmal hat man so gute Ideen und man kann sie nicht umsetzten.
Trotzdem ein sehr großes Dankeschön das du mir alles erklärt hast. -
Hey gibt es eine Möglichkeit Fahrzeuge tiefer zu legen? Also sozusagen auf den Boden zu drücken habe etwas vor.
http://prntscr.com/l9heir zu http://prntscr.com/l9heof
Habe schon überall geguckt habe nichts gefunden.So in der Art das manche Fahrzeug wenn sie geschlossen und unbesetzt sind so tief liegen und wenn man es öffnet und einsteigt fährt der Wagen hoch.
In der Art wie der neue Audi A8. Ich bezweifle aber das man so etwas machen kann. -
Hätte ich ja gemacht würde es string als Auswahl geben,
habe einfach text genommen weil es string nicht gibt.
Geht alles danke.♥ -
Upsi, übersehen.
Ahh Effekt, verstehe das jetzt erst, habe mich gefragt warum nicht strval aber jetzt weiß ich es
sorry, hab es übersehen. Irgendwie wurde aus einer kleinen Frage eine riesige Frage.
Habe alles gar nicht verstanden, jetzt versteh ich es.In der Datenbank wird es als komische Zahl angezeigt ( 202 )
habe im letzten Beitrag ein Screen rein geschickt ob das so richtig ist. -
In der Konsole wird immer noch @angezeigt als string
http://prntscr.com/l97tuj ist das so überhaupt richtig?
pInfo[playerid][pGeburtsdatum]=strval(inputtext); im playerenum pGeburtsdatum,
er zeigt mir das ja schon in der Konsole als @ also irgendwas stimmt nicht -
Code
new query[256],passworteingabe[128]; GetPVarString(playerid,"passwortvar",passworteingabe,128); mysql_format(db, query, sizeof(query), "INSERT INTO user (Username, Passwort) VALUES ('%e',MD5('%e'),'%s')",Spielername(playerid),passworteingabe,pInfo[playerid][pGeburtsdatum]); mysql_pquery(db,query,"OnPlayerRegister", "i",playerid); new q[256]; mysql_format(db,q,sizeof(q),"INSERT user SET Geburtsdatum = '%s' WHERE Username = '%s'",pInfo[playerid][pGeburtsdatum],Spielername(playerid)); mysql_tquery(db,q);
Also ist das hier dumm? Kriege es nicht in einem rein, da passierte das selbe
-
Code
new q[256]; mysql_format(db,q,sizeof(q),"INSERT user SET Geburtsdatum = '%s' WHERE Useername = '%s'",pInfo[playerid][pGeburtsdatum],Spielername(playerid)); mysql_tquery(db,q);
In der Console wird @ angezeigt als string, werde dannach auch nicht gespawnt. Irgendwas stimmt nicht.
http://prntscr.com/l97c25Code
Alles anzeigen[00:20:53] [DEBUG] mysql_format(1, 0x02F93D68, 256, "INSERT INTO user (Username, Passwort) VALUES ('%e',MD5('%e'),'%s')") [00:20:53] [DEBUG] CHandle::EscapeString(this=0x737238, src='Jamesos') [00:20:53] [DEBUG] CConnection::EscapeString(src='Jamesos', this=0x7219d0, connection=0x761a60) [00:20:53] [DEBUG] CHandle::EscapeString - return value: true, escaped string: 'Jamesos' [00:20:53] [DEBUG] CHandle::EscapeString(this=0x737238, src='123123123') [00:20:53] [DEBUG] CConnection::EscapeString(src='123123123', this=0x7219d0, connection=0x761a60) [00:20:53] [DEBUG] CHandle::EscapeString - return value: true, escaped string: '123123123' [00:20:53] [DEBUG] mysql_format: return value: '77' [00:20:53] [DEBUG] mysql_pquery(1, "INSERT INTO user (Username, Passwort) VALUES ('Jamesos',MD5('123123123'),'')", "OnPlayerRegister", "i") [00:20:53] [DEBUG] CCallback::Create(amx=0x5ace20, name='OnPlayerRegister', format='i', params=0x2f93b50, param_offset=5) [00:20:53] [DEBUG] CCallback::Create - callback index for 'OnPlayerRegister': 30 [00:20:53] [DEBUG] processing specifier 'i' with parameter index 0 [00:20:53] [DEBUG] retrieved and pushed value '0' [00:20:53] [INFO] Callback 'OnPlayerRegister' set up for delayed execution. [00:20:53] [DEBUG] created delayed callback with 1 parameter [00:20:53] [DEBUG] CHandle::Execute(this=0x737238, type=2, query=0x77e878) [00:20:53] [DEBUG] CConnectionPool::Queue(query=0x77e878, this=0x721a90) [00:20:53] [DEBUG] CHandle::Execute - return value: true [00:20:53] [DEBUG] mysql_pquery: return value: '1' [00:20:53] [DEBUG] mysql_format(1, 0x02F93768, 256, "INSERT user SET Geburtsdatum = '%s' WHERE Useername = '%s'") [00:20:53] [DEBUG] mysql_format: return value: '62' [00:20:53] [DEBUG] mysql_tquery(1, "INSERT user SET Geburtsdatum = '' WHERE Useername = 'Jamesos'", "", "") [00:20:53] [DEBUG] CCallback::Create(amx=0x5ace20, name='', format='', params=0x2f93754, param_offset=5) [00:20:53] [DEBUG] CConnection::Execute(query=0x77e878, this=0x40a0020, connection=0x775038) [00:20:53] [DEBUG] CQuery::Execute(this=0x77e878, connection=0x775038) [00:20:53] [DEBUG] CHandle::Execute(this=0x737238, type=1, query=0x42db538) [00:20:53] [DEBUG] CHandle::Execute - return value: true [00:20:53] [DEBUG] mysql_tquery: return value: '1' [00:20:53] [DEBUG] CConnection::Execute(query=0x42db538, this=0x2fe0020, connection=0x763e38) [00:20:53] [DEBUG] CQuery::Execute(this=0x42db538, connection=0x763e38) [00:20:53] [ERROR] error #1064 while executing query "INSERT user SET Geburtsdatum = '' WHERE Useername = 'Jamesos'": You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'WHERE Useername = 'Jamesos'' at line 1 [00:20:53] [DEBUG] CConnection::GetError(this=0x2fe0020, connection=0x763e38) [00:20:53] [DEBUG] CCallback::Create(amx=0x5ace20, name='OnQueryError', format='dsssd) [00:20:53] [DEBUG] CCallback::Create - callback index for 'OnQueryError': -10046 [00:20:53] [DEBUG] processing specifier 'd' [00:20:53] [DEBUG] retrieved and pushed value '1064' [00:20:53] [DEBUG] processing specifier 's' [00:20:53] [DEBUG] retrieved and pushed value 'You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'WHERE Useername = 'Jamesos'' at line 1' [00:20:53] [DEBUG] processing specifier 's' [00:20:53] [DEBUG] retrieved and pushed value '' [00:20:53] [DEBUG] processing specifier 's' [00:20:53] [DEBUG] retrieved and pushed value 'INSERT user SET Geburtsdatum = '' WHERE Useername = 'Jamesos'' [00:20:53] [DEBUG] processing specifier 'd' [00:20:53] [DEBUG] retrieved and pushed value '1' [00:20:53] [INFO] Callback 'OnQueryError' set up for delayed execution. [00:20:53] [DEBUG] created delayed callback with 5 parameters [00:20:53] [DEBUG] CCallback::Execute(amx=0x5ace20, index=-10046, num_params=5) [00:20:53] [INFO] Executing callback 'Ïò' with 5 parameters... [00:20:53] [DEBUG] processing internal specifier 'c' [00:20:53] [DEBUG] pushed value '1' onto AMX stack [00:20:53] [DEBUG] processing internal specifier 's' [00:20:53] [DEBUG] pushed value 'INSERT user SET Geburtsdatum = '' WHERE Useername = 'Jamesos'' onto AMX stack [00:20:53] [DEBUG] processing internal specifier 's' [00:20:53] [DEBUG] pushed value '' onto AMX stack [00:20:53] [DEBUG] processing internal specifier 's' [00:20:53] [DEBUG] pushed value 'You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'WHERE Useername = 'Jamesos'' at line 1' onto AMX stack [00:20:53] [DEBUG] processing internal specifier 'c' [00:20:53] [DEBUG] pushed value '1064' onto AMX stack [00:20:53] [DEBUG] executing AMX callback with index '-10046' [00:20:53] [ERROR] error #1136 while executing query "INSERT INTO user (Username, Passwort) VALUES ('Jamesos',MD5('123123123'),'')": Column count doesn't match value count at row 1 [00:20:53] [DEBUG] CConnection::GetError(this=0x40a0020, connection=0x775038) [00:20:53] [DEBUG] AMX callback executed with error '0' [00:20:53] [INFO] Callback successfully executed. [00:20:53] [DEBUG] CCallback::Create(amx=0x5ace20, name='OnQueryError', format='dsssd) [00:20:53] [DEBUG] CCallback::Create - callback index for 'OnQueryError': -10046 [00:20:53] [DEBUG] processing specifier 'd' [00:20:53] [DEBUG] retrieved and pushed value '1136' [00:20:53] [DEBUG] processing specifier 's' [00:20:53] [DEBUG] retrieved and pushed value 'Column count doesn't match value count at row 1' [00:20:53] [DEBUG] processing specifier 's' [00:20:53] [DEBUG] retrieved and pushed value 'OnPlayerRegister' [00:20:53] [DEBUG] processing specifier 's' [00:20:53] [DEBUG] retrieved and pushed value 'INSERT INTO user (Username, Passwort) VALUES ('Jamesos',MD5('123123123'),'')' [00:20:53] [DEBUG] processing specifier 'd' [00:20:53] [DEBUG] retrieved and pushed value '1' [00:20:53] [INFO] Callback 'OnQueryError' set up for delayed execution. [00:20:53] [DEBUG] created delayed callback with 5 parameters [00:20:53] [DEBUG] CCallback::Execute(amx=0x5ace20, index=-10046, num_params=5) [00:20:53] [INFO] Executing callback 'Ïò' with 5 parameters... [00:20:53] [DEBUG] processing internal specifier 'c' [00:20:53] [DEBUG] pushed value '1' onto AMX stack [00:20:53] [DEBUG] processing internal specifier 's' [00:20:53] [DEBUG] pushed value 'INSERT INTO user (Username, Passwort) VALUES ('Jamesos',MD5('123123123'),'')' onto AMX stack [00:20:53] [DEBUG] processing internal specifier 's' [00:20:53] [DEBUG] pushed value 'OnPlayerRegister' onto AMX stack [00:20:53] [DEBUG] processing internal specifier 's' [00:20:53] [DEBUG] pushed value 'Column count doesn't match value count at row 1' onto AMX stack [00:20:53] [DEBUG] processing internal specifier 'c' [00:20:53] [DEBUG] pushed value '1136' onto AMX stack [00:20:53] [DEBUG] executing AMX callback with index '-10046' [00:20:53] [DEBUG] AMX callback executed with error '0' [00:20:53] [INFO] Callback successfully executed.
-
@Jeffry hat mir gesagt das ich es so speichern soll (Geburtsdatum) ich verstehe es aber nicht warum die 11?
Kriege ein out of bounds error
Im Playerenum habe ich das auch so abgespeichert pGeburtsdatum[11],Muss ich auf etwas achten wenn ich die Variable anzeige in den Stats z.B
Und wie speicher ich den Wert , -
@Kaliber ich glaube du warst das bin mir nicht sicher, jemand hat mir auf jeden Fall hierbei geholfen.
Code
Alles anzeigenstock bool:IsValidDate(dStr[]) { new monthDays[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }, temp_YMD[3], temp_Pos = 0, temp_ePos = 0, temp_Index = 0 ; if(sscanf(dStr, "p<.>iii", temp_YMD[0], temp_YMD[1], temp_YMD[2])) return false; temp_ePos = temp_Pos = -1; for(temp_Index = 0; temp_Index < 3; temp_Index++) { if(temp_YMD[temp_Index] > 1750) { if((temp_YMD[temp_Index] % 400) == 0 || ((temp_YMD[temp_Index] % 100) != 0 && (temp_YMD[temp_Index] % 4) == 0)) monthDays[1] = 29; } else if(temp_YMD[temp_Index] > 12) temp_Pos = temp_Index; else if(temp_ePos == -1) temp_ePos = temp_Index; else temp_Pos = temp_Index; } if(temp_ePos == -1 || temp_Pos == -1) return false; if(temp_YMD[temp_ePos] < 1 || temp_YMD[temp_ePos] > 12) return false; if(temp_YMD[temp_Pos] < 1 || temp_YMD[temp_Pos] > monthDays[temp_YMD[temp_ePos] - 1]) return false; return true; }
Man soll sein Geburtsdatum so angeben 01.02.2001
Wenn ich aber 01 02 2001 angebe funktioniert das auch, soll es aber nicht.