http://prntscr.com/l0j7kv
Das wird mir angezeigt, ist der selbe Code wie im letzten Post mit -400
Beiträge von Jameso
-
-
Du hast mich doch gefragt das ich es so versuchen soll,
ändert nichts soll ich wirklich jetzt unnötig den selben Code rein schicken den du im letzten Post rein geschickt hast?
Hätte ich was anders gemacht, hätte ich schon Bescheid gesagt.Code
Alles anzeigenif(dialogid == DIALOG_FAHRZEUG1) { if(response) { switch(listitem) { case 0: //Fahrzeugschlüssel { ShowPlayerDialog(playerid, DIALOG_FAHRZEUG2, DIALOG_STYLE_LIST, "{FFFFFF}Fahrzeug - Fahrzeugschlüssel", "{FFFFFF}Fahrzeugschlüssel\t-\tEigene\nFahrzeugschlüssel\t-\tAndere", "Auswählen", "Zurück"); } case 1: //Nix { } case 2: // { } case 3: // { } } } } if(dialogid == DIALOG_FAHRZEUG2) { if(response) { switch(listitem) { case 0: //Eigene Fahrzeugschlüssel { new string[300], name; for(new i = 0; i < sizeof(PCar[]); i++) { name = PCar[playerid][i][P_MID] - 400; if(name < 0 || name >= sizeof(carNames)) format(string,sizeof(string),"%s{FFFFFF}<Leer>\t<Leer>\n", string); else format(string,sizeof(string),"%s{FFFFFF}%s\tSF-1337\n", string, carNames[name]); } ShowPlayerDialog(playerid, DIALOG_FAHRZEUG3, DIALOG_STYLE_LIST, "{FFFFFF}schlüssel\tNummernschild\tAusgewählt", string, "Auswählen","Zurück"); } case 1: //Andere Fahrzeugschlüssel { } } } else { //Wenn er wieder zurück ins Hautpmenü will } return 1; }
Selbe Problem wie ebend, er zeigt mir nicht den Dialog DIALOG_FAHRZEUG3
-
Funktioniert immer noch nicht.
Weiß nicht wie ich das machen soll bei 4. -
Ich habe einen Dialog erst einmal der zeigt;
- Eigene Fahreuge
- Andere Fahrzeuge
Respond auf Eigene Fahrzeuge:
Code
Alles anzeigenif(dialogid == DIALOG_FAHRZEUG1) { if(response) { switch(listitem) { case 0: //Fahrzeugschlüssel { ShowPlayerDialog(playerid, DIALOG_FAHRZEUG2, DIALOG_STYLE_LIST, "{FFFFFF}Fahrzeug fahrzeugschlüssel", "{FFFFFF}Fahrzeugschlüssel\teigene\nschlüssel\tAndere", "Auswählen", "Zurück"); } case 1: //Nix { } case 2: // { } case 3: // { } } } } if(dialogid == DIALOG_FAHRZEUG2) { if(response) { switch(listitem) { case 0: //Eigene Fahrzeugschlüssel { for(new i = 0; i < sizeof(PCar[]); i++) { new name; name = PCar[playerid][i][P_MID] - 400; new string[300]; format(string,sizeof(string),"{FFFFFF}%d\tSF-1337\tX\nHuntley\tSF-1337\t",carNames[name]); ShowPlayerDialog(playerid, DIALOG_FAHRZEUG3, DIALOG_STYLE_LIST, "{FFFFFF}schlüssel\tNummernschild\tAusgewählt", string, "Auswählen","Zurück"); } } case 1: //Andere Fahrzeugschlüssel { } } } else { if(!response) { switch(listitem) { case 0: //Wenn er wieder zurück ins Hautpmenü will { } case 1: //Wenn er wieder zurück ins Hautpmenü will { } } } } }
Irgendwie habe ich jetzt das Problem, wenn ich auf eigene Fahrzeuge clicke also ich auf DIALOG_FAHRZEUG2 antworte er mir das nächste nicht Anzeigt mit den Fahrzeugen.
Den 4. Punkt habe ich nicht ganz verstanden.
Ich will das es dann auch so aussieht wenn kein Fahrzeug auf dem Slot ist.
- Huntley
- < Leer >
- < Leer
Dazu will ich noch das, sein Kennzeichen angezeigt wird , aber das sollte ich glaube ich hinkriegen.
Bei den anderen Fahrzeugen, das sind dann die von anderen Spielern, steht der Besitzer dann noch in einem Tab ( \t )
-
-
Ich muss LoginTimer[playerid] definieren, einfach new LoginTimer? Oder LoginTimer[MAX_PLAYERS]
Der Public heißt dann: LoginKick richtig? @Jeffry
-
Klappt! Habe die UPDATE auch den richtigen Variablen angepasst,
Was ich jetzt machen will, dass ich mehrere Fahrzeuge besitzen kann und ein Auto dann irgendwie die Variable [tt][P_Current/tt] bekommt.
Das bringt das Fahrzeug dazu, dass ich mit dem Befehl Beispiel: /autoauf genau das jetzige Fahrzeug aufschließe. Das ganze kann man dann über ein Dialog auswählen.
Später kann man auch das Fahrzeug parken wenn man den richtigen "Schlüssel" ausgewählt hat.Wie soll ich anfangen?
-
Code
TogglePlayerSpectating(playerid, 1); InterpolateCameraPos(playerid, X//...); InterpolateCameraLookAt(playerid, X//...); ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"X","X","Anmelden","Abbrechen");
Das ist vor meine Login Dialog, alles funktioniert.
Nur wie mache ich das, dass wenn sagen wir 20 Sekunden um sind der Spieler vom Server geworfen wird? -
Code
public OnPlayerConnect(playerid) { InterpolateCameraPos(playerid, //...); InterpolateCameraLookAt(playerid, //...);
Das ist ja das selbe nur das es eine Kamerafahrt ist.
Also das muss so richtig sein macht ja kein wenn ich SetPlayerCameraLookAt benutze obwohl ich InterpolateCameraLookAt benutze.
Ich stelle mir vor das der Spieler im Specatate-Modus sein muss aber ich hab keine Ahnung, jedenfalls geht es ja so nicht -
SetCameraLookAt gibt es nicht hä, warum geht es nicht
-
Code
public OnPlayerConnect(playerid) { InterpolateCameraPos(playerid, //...); InterpolateCameraLookAt(playerid, //...);
Irgendwie ist die Kamera immer noch an der selben stelle wie am Anfang irgendwie am Wasser, ist wahrscheinlich Standard so.
Also mir fehlt was habe so etwas nie gemacht, wird auch nicht im Filterscript erklärtWie beende ich die Kamera am ende dann nach dem Login z.B einfach
SetCameraBehindPlayer(playerid); ? -
https://forum.sa-mp.com/showthread.php?t=330879
Habe ein Kamera Editor gefundenMacht man hiermit Kamera-Fahrten für den Login z.B
und kommt der Code dann hierhin?
public OnPlayerConnect(playerid) -
Hey, ist glaube ich keine Scripting Frage, aber hat was damit zutun.
Ich will einen Sound auf einer Seite hochladen bekannt ist Kiwi6 aber da wird meine Datei nicht angezeigt, kann man das woanders hochladen?
Oder kann man um einen Sound abzuspielen auch andere Links einfügen nicht unbedingt die direct links?@LeonMrBonnie
Das Problem gab es schon öfter, habe auf Servern gespielt diese konnten auch nicht im Interior spectaten oder wenn der Spieler tot war
Ich glaube das man dagegen nichts machen kann (?)Korrigiert mich einer wenn ich falsch liege.
-
Ich hab sie gemacht, hab den jetzigen Code nur davor rein geschickt das war nicht so schlau.
Ich kam gestern erst um 21:30 nach Hause, war kaputt deswegen erst mal sorry.Hab mich mal jetzt wirklich mal bisschen dran gesetzt und habe den Fehler gefunden, dazu habe ich selber hinbekommen, dass das Fahrzeug entfernt wird.
Parken funktioniert dementsprechend auch
So gebe ich ja einem Fahrzeug 20 Liter.
Wie gebe ich dem Fahrzeug seine Liter und wie speicher ich das, und wie lade ich das?
Dazu noch wie gebe ich nach dem Kauf dann auch diesem Fahrzeug den vollen Tank?Code
Alles anzeigenforward LoadPlayerCars(playerid); public LoadPlayerCars(playerid) { new rows; cache_get_row_count(rows); for(new i = 0; i < rows; i++) { cache_get_value_name_int(i,"P_uID",PCar[playerid][i][P_uID]); cache_get_value_name_int(i,"dbID",PCar[playerid][i][P_dbID]); cache_get_value_name_float(i,"P_X",PCar[playerid][i][P_X]); cache_get_value_name_float(i,"P_Y",PCar[playerid][i][P_Y]); cache_get_value_name_float(i,"P_Z",PCar[playerid][i][P_Z]); cache_get_value_name_float(i,"P_R",PCar[playerid][i][P_R]); cache_get_value_name_int(i,"P_C1",PCar[playerid][i][P_C1]); cache_get_value_name_int(i,"P_C2",PCar[playerid][i][P_C2]); cache_get_value_name_int(i,"P_MID",PCar[playerid][i][P_MID]); PCar[playerid][i][P_VID] = CreateVehicle(PCar[playerid][i][P_MID],PCar[playerid][i][P_X] , PCar[playerid][i][P_Y], PCar[playerid][i][P_Z], PCar[playerid][i][P_R], PCar[playerid][i][P_C1], PCar[playerid][i][P_C2], -1); } return 1; }
So wird geladen
jetzt müssen wir nur noch ein neuen Public erstellen für SavePlayerCars
Hier wird aber nur der Tank gespeichert, später dann auch Kilometerstand, Ölstand usw. -
Fahrzeug spawnt nur irgendwie ist die zrotation falsch die geht nämlich - oder + 90°
Hat das was mit dem Dezimalwert in der Datenbank zu tun der ist auf 4 gestelltAlso gespawnt ist es normal nach dem Kauf nach dem Login aber Abweichungen von 90°
Code
Alles anzeigenforward LoadPlayerCars(playerid); public LoadPlayerCars(playerid) { new rows; cache_get_row_count(rows); for(new i = 0; i < rows; i++) { cache_get_value_name_float(i,"P_X",PCar[playerid][i][P_X]); cache_get_value_name_float(i,"P_Y",PCar[playerid][i][P_Y]); cache_get_value_name_float(i,"P_Z",PCar[playerid][i][P_Z]); cache_get_value_name_float(i,"p_R",PCar[playerid][i][P_R]); cache_get_value_name_int(i,"P_C1",PCar[playerid][i][P_C1]); cache_get_value_name_int(i,"P_C2",PCar[playerid][i][P_C2]); cache_get_value_name_int(i,"P_MID",PCar[playerid][i][P_MID]); PCar[playerid][i][P_VID] = CreateVehicle(PCar[playerid][i][P_MID],PCar[playerid][i][P_X] , PCar[playerid][i][P_Y], PCar[playerid][i][P_Z], PCar[playerid][i][P_R], PCar[playerid][i][P_C1], PCar[playerid][i][P_C2], -1); } return 1; }
irgendwas hiermit zutun? Weil davor geht ja alles
-
P_VID kann ich dann auch aus der Datenbank raus nehmen, alles wird gespeichert. Lag an Auto increment, hätte ich mir denken können...
Zitat von JeffryServer-Start
Du meinst Login oder?
Wenn Passwort richtig ist, ist nicht bei OnPlayerConnect da man dann auch Sachen ausnutzen könnten im späteren System, sollte nach der Anmeldung passieren.
Codemysql_format(db, query, sizeof(query), "SELECT * FROM personalcars WHERE P_uID = '%d'", pInfo[playerid][db_id]); mysql_pquery(db, query, "LoadPlayerCars", "d", playerid);
Code
Alles anzeigenforward LoadPlayerCars(playerid); public LoadPlayerCars(playerid) { new rows; cache_get_row_count(rows); for(new i = 0; i < rows; i++) { cache_get_value_name_float(i,"P_X",PCar[playerid][i][P_X]); cache_get_value_name_float(i,"P_Y",PCar[playerid][i][P_Y]); cache_get_value_name_float(i,"P_Z",PCar[playerid][i][P_Z]); cache_get_value_name_float(i,"p_R",PCar[playerid][i][P_R]); cache_get_value_name_int(i,"P_C1",PCar[playerid][i][P_C1]); cache_get_value_name_int(i,"P_C2",PCar[playerid][i][P_C2]); cache_get_value_name_int(i,"P_MID",PCar[playerid][i][P_MID]); PCar[playerid][i][P_VID] = CreateVehicle(PCar[playerid][i][P_MID],PCar[playerid][i][P_X] , PCar[playerid][i][P_Y], PCar[playerid][i][P_Z], PCar[playerid][i][P_R], PCar[playerid][i][P_C1], PCar[playerid][i][P_C2], -1); } return 1; }
-
Also ist es richtig das es dbID nicht mehr da ist heißt soll ich sie löschen?
In der Datenbank wird nichts eingetragen, habe auch nur das gemacht was du mir gesagt hast. Muss diese dementsprechend auch anpassen.
http://prntscr.com/kynu63Code[21:16:19] [plugins/mysql] error #1062 while executing query "INSERT INTO personalcars (P_X, P_Y, P_Z, P_R, P_C1, P_C2, P_MID, P_uID) VALUES ('758.116394','-1371.883789','13.420600','270.124512','11','11','402','32')": Duplicate entry '0' for key 'PRIMARY' [21:24:05] [plugins/mysql] cache_get_row_count: no active cache
-
Code
Alles anzeigenstock SpielerSpeichern(playerid) { if(pInfo[playerid][pEingeloggt]!=1)return 1; if(IsPlayerNPC(playerid))return 1; new query[400]; mysql_format(db,query,sizeof(query),"UPDATE `user` SET `Skin`='%d', `XP`='%d',`XPMax`='%d',`PayDay`='%d',`Level`='%d',`Motorradschein`='%d', `Autoschein`='%d', `Beamter`='%d', `Perso`='%d',",GetPlayerSkin(playerid), pInfo[playerid][pXP],pInfo[playerid][pXPMax],pInfo[playerid][pPayDay],pInfo[playerid][pLevel],pInfo[playerid][pMotorradschein], pInfo[playerid][pAutoschein], pInfo[playerid][pBeamter], pInfo[playerid][pPerso]); mysql_format(db,query,sizeof(query),"%s `Alter`='%d', `Geschlecht`='%d', `Neuling`='%d', `Geld`='%d', `Rollerschein`='%d', `Bankgeld`='%d', `Bankkonto`='%d', `Bizbesitz`='%d', `Spielstunden`='%d', `Spielminuten`='%d' WHERE `ID`='%i'", query, pInfo[playerid][pAlter], pInfo[playerid][pGeschlecht], pInfo[playerid][pNeuling], pInfo[playerid][pGeld], pInfo[playerid][pRollerschein], pInfo[playerid][pBankgeld], pInfo[playerid][pBankkonto], pInfo[playerid][pBizbesitz], pInfo[playerid][pSpielstunden], pInfo[playerid][pSpielminuten], pInfo[playerid][db_id]); printf("query: %s", query); mysql_pquery(db,query); return 1; }
-
Zitat von Jeffry
den ganzen Befehl.
Du meinst den ganzen Code oder?
Code
Alles anzeigenif(dialogid == DIALOG_AUTOHAUS5) //ZULASSUNG JA LASTSCHRIFT { if(response) { new vid = GetPlayerVehicleID(playerid); for(new i = 0; i < sizeof(Autohausauto1); i++) { if(IsPlayerInVehicle(playerid, Autohausauto1[i])) { if(vid == Autohausauto1[i]) { if(pInfo[playerid][pBankgeld] < Autohausauto1_preis[i]) { RemovePlayerFromVehicle(playerid); new string[100]; format(string, sizeof(string), "X",sMoney(Autohausauto1_preis[i]),Autohausauto1_name[i]); SendClientMessage(playerid,-1,string); } else { RemovePlayerFromVehicle(playerid); ShowPlayerDialog(playerid, DIALOG_AUTOHAUS10, DIALOG_STYLE_MSGBOX, "X", "Verstanden", ""); new SP = random(sizeof(SAHSpawn)); new FB = random(127); for(new d = 0; d < sizeof(PCar[]); d++) { //Prüfe, ob Fahrzeug existiert. Wenn nicht, nutze den Slot und lege das Fahrzeug an. if(PCar[playerid][d][P_MID] == 0) { PCar[playerid][d][P_uID] = cache_insert_id(); PCar[playerid][d][P_X] = SAHSpawn[SP][0]; PCar[playerid][d][P_Y] = SAHSpawn[SP][1]; PCar[playerid][d][P_Z] = SAHSpawn[SP][2]; PCar[playerid][d][P_R] = SAHSpawn[SP][3]; PCar[playerid][d][P_C1] = FB; PCar[playerid][d][P_C2] = FB; PCar[playerid][d][P_MID] = GetVehicleModel(Autohausauto1[i]); PCar[playerid][d][P_dbID] = pInfo[playerid][db_id]; PCar[playerid][d][P_VID] = CreateVehicle(PCar[playerid][d][P_MID],PCar[playerid][d][P_X] , PCar[playerid][d][P_Y], PCar[playerid][d][P_Z], PCar[playerid][d][P_R], PCar[playerid][d][P_C1], PCar[playerid][d][P_C2], -1); new query[256]; mysql_format(db, query, sizeof(query), "INSERT INTO personalcars (P_X, P_Y, P_Z, P_R, P_C1, P_C2, P_MID, P_VID, dbID, P_uID) VALUES ('%f','%f','%f','%f','%d','%d','%d','%d','%d')",PCar[playerid][d][P_X],PCar[playerid][d][P_Y],PCar[playerid][d][P_Z],PCar[playerid][d][P_R],PCar[playerid][d][P_C1],PCar[playerid][d][P_C2],PCar[playerid][d][P_MID],PCar[playerid][d][P_VID],PCar[playerid][d][P_dbID],PCar[playerid][d][P_uID]); mysql_pquery(db,query); break; } } } } } } } else { RemovePlayerFromVehicle(playerid); } return 1; }
Wie ich schon gesagt habe, habe ich nur Probleme mit der Variable P_uID.
Jetzt gerade festgestellt das nur die floats von X-R gespeichert werden der Rest nicht.Das Fahrzeug wird jetzt auch nicht mehr erstellt
-
Habe mir das printen lassen, also da steht ja Where P_uID = 32 das stimmt aber nicht.
in der Tabelle ist die P_uID wieder -1 warum?Code
Alles anzeigen// NACH DEM KAUF PCar[playerid][d][P_uID] = cache_insert_id(); mysql_format(db, query, sizeof(query), "INSERT INTO personalcars (P_X, P_Y, P_Z, P_R, P_C1, P_C2, P_MID, P_VID, dbID, P_uID) VALUES ('%f','%f','%f','%f','%d','%d','%d','%d','%d')",PCar[playerid][d][P_X],PCar[playerid][d][P_Y],PCar[playerid][d][P_Z],PCar[playerid][d][P_R],PCar[playerid][d][P_C1],PCar[playerid][d][P_C2],PCar[playerid][d][P_MID],PCar[playerid][d][P_VID],PCar[playerid][d][P_dbID],PCar[playerid][d][P_uID]); mysql_pquery(db,query); // Nach Login mysql_format(db, query, sizeof(query), "SELECT * FROM personalcars WHERE P_uID = '%d'", pInfo[playerid][db_id]); mysql_pquery(db, query, "LoadPlayerCars", "d", playerid); //LoadPlayerCars forward LoadPlayerCars(playerid); public LoadPlayerCars(playerid) { new rows; cache_get_row_count(rows); for(new i = 0; i < rows; i++) { cache_get_value_name_int(i, "dbID", PCar[playerid][i][P_dbID]);. cache_get_value_name_float(i,"P_X",PCar[playerid][i][P_X]); cache_get_value_name_float(i,"P_Y",PCar[playerid][i][P_Y]); cache_get_value_name_float(i,"P_Z",PCar[playerid][i][P_Z]); cache_get_value_name_float(i,"p_R",PCar[playerid][i][P_R]); cache_get_value_name_int(i,"P_C1",PCar[playerid][i][P_C1]); cache_get_value_name_int(i,"P_C2",PCar[playerid][i][P_C2]); cache_get_value_name_int(i,"P_MID",PCar[playerid][i][P_MID]); PCar[playerid][i][P_VID] = CreateVehicle(PCar[playerid][i][P_MID],PCar[playerid][i][P_X] , PCar[playerid][i][P_Y], PCar[playerid][i][P_Z], PCar[playerid][i][P_R], PCar[playerid][i][P_C1], PCar[playerid][i][P_C2], -1); } return 1; }
Muss ich den public LoadPlayerCars nach dem Login auch aufrufen oder wird das schon automatisch gemacht mit mysql_pqueryZitat von JeffryAchte auch darauf, nicht immer nur die Hälfte zu machen, die ich dir sage. Das verzögert den Prozess nur unnötig.
Tut mir leid, manchmal will ich es machen dann kommt was dazwischen und später denke ich, das ich es gemacht habe.
Im normalen MYSQL-Log steht nichts.
Im Server-Log auch nicht.Irgendwie hab ich gestern etwas nicht gespeichert und habe heute gemerkt das noch Variablen da sind die gestern weg wahren, habe alles so gut wieder entfernt und verbessert nach meinem Auge.
Ich habe was übersehen aber ich weiß nicht was.