@Kaito-sensei ich benutze mysql R4.1.2
Beiträge von Onjiary
-
-
Ich hänge derzeit an ein Problem und zwar:
Ich kann zwar Spielerfahrzeuge erstellen und löschen.
Doch nun will ich die Fahrzeuge der Spieler in die Datenbank packen.
Leider Spuckt er mir folgenden Fehler aus: entwicklung.p(1767) : warning 202: number of arguments does not match definitionMein Code sieht wie folgt aus:
forward
enum:
punblic spielerfahrzeug(carid)
carinDB
CodecarinDB(playerid,carid) { new query[128]; format(query,sizeof(query),"INSERT INTO spielerfahrzeuge(besitzer,model,x,y,z,r) VALUES('%i','%i','%f','%f','%f','%f')",PlayerInfo[playerid][p_id],cInfo[carid][model],cInfo[carid][c_x],cInfo[carid][c_y],cInfo[carid][c_z],cInfo[carid][c_r]); mysql_pquery(handle,query); return 1; }
PlayerCar
Code
Alles anzeigenPlayerCar(playerid,modelid,Float:x,Float:y,Float:z,Float:r) { for(new i=0; i<sizeof(cInfo); i++) { if(cInfo[i][faid]!=0)continue; GetPlayerName(playerid,cInfo[i][besitzer],MAX_PLAYER_NAME); cInfo[i][c_x] =x; cInfo[i][c_y] =y; cInfo[i][c_z] =z; cInfo[i][c_r] =r; cInfo[i][model]=modelid; cInfo[i][faid] = CreateVehicle(modelid,x,y,z,r,-1,-1,-1); new string[128]; format(string,sizeof(string),"Das Fahrzeug cInfo[%i] wurde erstellt",i); SendClientMessageToAll(rot,string); carinDB(playerid,i); return 1; } return 1; }
Befehle
Fahrzeuge erstellen und löschen
Code
Alles anzeigenocmd:deletcar(playerid,params[]) { if(!isAdmin(playerid,6))return SendClientMessage(playerid,rot,"Dein Admingrang ist zu niedrig."); if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid,türkis,"Du bist in kein Fahrzeug"); DestroyVehicle(GetPlayerVehicleID(playerid)); return 1; } ocmd:createcar(playerid,params[]) { if(!isAdmin(playerid,6))return SendClientMessage(playerid,rot,"Dein Admingrang ist zu niedrig."); new mID,pID; printf("Hallo"); if(sscanf(params,"ui",pID,mID))return SendClientMessage(playerid,rot,"INFO: /createcar[playerid][model]"); printf("börger"); if(mID<400||mID>611)return SendClientMessage(playerid,rot,"Ungültiges Model"); printf("teleropa"); new Float:xc,Float:yc,Float:zc,Float:rc; GetPlayerPos(pID,xc,yc,zc); GetPlayerFacingAngle(pID,rc); PlayerCar(pID,mID,xc,yc,zc,rc); return 1; }
-
-
@Kaliber
Spielerfahrzeuge werden zwar erstellt aber nicht in die Datenbank gesetztDer Code sieht immer noch wie folgt aus:
Fehlercode: entwicklung.p(1309) : warning 202: number of arguments does not match definition bezieht sich auf das public spielerfahrzeug[carid);
forward
Enum
public:
carinDB:
CodecarinDB(playerid,carid) { new query[128]; format(query,sizeof(query),"INSERT INTO spielerfahrzeuge(besitzer,model,x,y,z,r) VALUES('%i','%i','%f','%f','%f','%f')",PlayerInfo[playerid][p_id],cInfo[carid][model],cInfo[carid][c_x],cInfo[carid][c_y],cInfo[carid][c_z],cInfo[carid][c_r]); mysql_pquery(handle,query); return 1; }
PlayerCar:
Code
Alles anzeigenPlayerCar(playerid,modelid,Float:x,Float:y,Float:z,Float:r) { for(new i=0; i<sizeof(cInfo); i++) { if(cInfo[i][faid]!=0)continue; GetPlayerName(playerid,cInfo[i][besitzer],MAX_PLAYER_NAME); cInfo[i][c_x] =x; cInfo[i][c_y] =y; cInfo[i][c_z] =z; cInfo[i][c_r] =r; cInfo[i][model]=modelid; cInfo[i][faid] = CreateVehicle(modelid,x,y,z,r,-1,-1,-1); new string[128]; format(string,sizeof(string),"Das Fahrzeug cInfo[%i] wurde erstellt",i); SendClientMessageToAll(rot,string); carinDB(playerid,i); return 1; } return 1; }
Befehle:
Code
Alles anzeigenocmd:deletcar(playerid,params[]) { if(!isAdmin(playerid,6))return SendClientMessage(playerid,rot,"Dein Admingrang ist zu niedrig."); if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid,türkis,"Du bist in kein Fahrzeug"); DestroyVehicle(GetPlayerVehicleID(playerid)); return 1; } ocmd:createcar(playerid,params[]) { if(!isAdmin(playerid,6))return SendClientMessage(playerid,rot,"Dein Admingrang ist zu niedrig."); new mID,pID; printf("Hallo"); if(sscanf(params,"ui",pID,mID))return SendClientMessage(playerid,rot,"INFO: /createcar[playerid][model]"); printf("börger"); if(mID<400||mID>611)return SendClientMessage(playerid,rot,"Ungültiges Model"); printf("teleropa"); new Float:xc,Float:yc,Float:zc,Float:rc; GetPlayerPos(pID,xc,yc,zc); GetPlayerFacingAngle(pID,rc); PlayerCar(pID,mID,xc,yc,zc,rc); return 1; }
-
Danke @Kaliber für deine hilfe
-
Ich stehe in dem i drin und drücke enter. Ich komme zwar in "Zu den Cordinaten wo das gebäude sein soll" nur ich bekomm die meldung das ich in keiner world bin.
Mein Code für die Gebäude betreten zu können:
Hier noch der Link zum Bild:
http://www.pic-upload.de/view-32459833/sa-mp-030.png.htmlCode
Alles anzeigenenum buildingsEnum { Float:b_x, Float:b_y, Float:b_z, Float:bi_x, Float:bi_y, Float:bi_z, b_interior } new bInfo[][buildingsEnum]= { {1310.1149,-1366.8008,13.5066,246.0798,107.5067,1003.2188,10}, {1555.3151,-1675.8002,16.1953,21040.4108,1278.5807,798.7730,0} }; OnGameModeInit: DisableInteriorEnterExits(); //Gebäude laden for(new i=0; i<sizeof(bInfo); i++) { CreatePickup(1239,1,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z]); Create3DTextLabel("Zum Betreten /enter",grün,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_x],10,0,1); } Befehle: ocmd:enter(playerid,params[]) { for(new i=0; i<sizeof(bInfo); i++) { if(!IsPlayerInRangeOfPoint(playerid,1,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z]))continue; SetPlayerPos(playerid,bInfo[i][bi_x],bInfo[i][bi_y],bInfo[i][bi_z]); SetPlayerInterior(playerid,bInfo[i][b_interior]); SetPlayerVirtualWorld(playerid,i); return 1; } return 1; } ocmd:exit(playerid,params[]) { for(new i=0; i<sizeof(bInfo); i++) { if(GetPlayerVirtualWorld(playerid)!=i)continue; if(!IsPlayerInRangeOfPoint(playerid,2,bInfo[i][bi_x],bInfo[i][bi_y],bInfo[i][bi_z]))continue; SetPlayerPos(playerid,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z]); SetPlayerInterior(playerid,0); SetPlayerVirtualWorld(playerid,0); return 1; } return 1; } OnPlayerKeyStateChange: public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { if(newkeys & KEY_SECONDARY_ATTACK) { ocmd_exit(playerid,""); ocmd_enter(playerid,""); return 1; } return 1; }
-
@Kaliber wie muss ich das dann eigentlich machen wegen der VirtualWorld bei selbst erstellte Interiors?
Muss ich dann einfach die VirtualWorld bei den enum weg lassen oder wie bekomm ich das hin das man in dem interior steht? -
Laut dem Tutorial wo ich das her habe soll es so klappen
Hier das Video dazu:
Externer Inhalt www.youtube.comInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt. -
Ich finde die Map die Stelle sehr passend.
Endlich mal etwas farbe in LS
-
Guten Morgen.
Ich habe es zwar hin bekommen das man in selbst erstellte Gebäude rein gehen kann.
Beim Enum für die Gebäuden habe ich keine zahl drin da ich es nicht so wollte
Mein Problem ist aber derzeit folgendes:Spieler geht zum Standart LSPD[Singelplayer]
Er drückt auf die normale Entertaste aber nichts passiert.Spieler B gehe zu das Gebäude wo bei manchen Paintball Arena ist.
Spieler B drückt die Taste Enter und ist in der Paintball Arena.Wo liegt mein Fehler?
Code:
Enum:OnGameModeInit:
Befehl:
Code
Alles anzeigenocmd:enter(playerid,params[]) { for(new i=0; i<sizeof(bInfo); i++) { if(GetPlayerVirtualWorld(playerid)!=i)continue; if(!IsPlayerInRangeOfPoint(playerid,1,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z]))continue; SetPlayerPos(playerid,bInfo[i][bi_x],bInfo[i][bi_y],bInfo[i][bi_z]); SetPlayerInterior(playerid,bInfo[i][b_interior]); SetPlayerVirtualWorld(playerid,i); return 1; } return 1; } ocmd:exit(playerid,params[]) { for(new i=0; i<sizeof(bInfo); i++) { if(!IsPlayerInRangeOfPoint(playerid,1,bInfo[i][bi_x],bInfo[i][bi_y],bInfo[i][bi_z]))continue; SetPlayerPos(playerid,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z]); SetPlayerInterior(playerid,0); SetPlayerVirtualWorld(playerid,0); return 1; } return 1; }
OnPlayerKeyStateChange:
-
@Don.Armanii wenn du möbel haben willst kann ich dir folgende seite anbieten:
-
-
Normal sollte er Spielerid und die modelID nutzen da ja die Autos an den Spieler gesetzt werden
-
@datWeazel wenn ich folgenden Befehl ausführe ingame: Sagt er mir Ungültiges Model
Code
Alles anzeigenocmd:createcar(playerid,params[]) { if(!isAdmin(playerid,6))return SendClientMessage(playerid,rot,"Dein Admingrang ist zu niedrig."); new mID,pID; if(sscanf(params,"ui",pID,mID))return SendClientMessage(playerid,rot,"INFO: /createcar[playerid][model]"); if(mID<400||mID>611)return SendClientMessage(playerid,rot,"Ungültiges Model"); new Float:xc,Float:yc,Float:zc,Float:rc; GetPlayerPos(pID,xc,yc,zc); GetPlayerFacingAngle(pID,rc); PlayerCar(pID,mID,xc,yc,zc,rc); return 1; }
aber leider bekomm ich bei : spielerfahrzeug folgenden Fehler:
spielerfahrzeugDer Code zu Spielerfahrzeug sieht so aus: weiter kam ich damit nicht
-
Schönes Tutorial kannst du bitte noch hinzufügen @Mogly1 wie man es speichert.
-
Ich habe jetzt mal versucht es irgendwie hin zu bekommen mit den Spielerfahrzeugen in die Datenbank zu setzen
Spielerfahrzeuge werden auch nicht durch den befehl einfach so in das spiel rein gesetzt:
Der Code sieht so aus:
Ich verwende die Version R41.2 von Mysql
Spielerfahrzeuge erstellen:
Enum
PlayerCar
Code
Alles anzeigenPlayerCar(playerid,modelid,Float:x,Float:y,Float:z,Float:r) { for(new i=0; i<sizeof(cInfo); i++) { if(cInfo[i][faid]!=0)continue; GetPlayerName(playerid,cInfo[i][besitzer],MAX_PLAYER_NAME); cInfo[i][c_x] =x; cInfo[i][c_y] =y; cInfo[i][c_z] =z; cInfo[i][c_r] =r; cInfo[i][model]=modelid; cInfo[i][faid] = CreateVehicle(modelid,x,y,z,r,-1,-1,-1); new string[128]; format(string,sizeof(string),"Das Fahrzeug cInfo[%i] wurde erstellt",i); SendClientMessageToAll(rot,string); saveCarToDB(playerid,i); return 1; } return 1; }
Fahrzeuge erstellen und löschen
Code
Alles anzeigenocmd:deletcar(playerid,params[]) { if(!isAdmin(playerid,6))return SendClientMessage(playerid,rot,"Dein Admingrang ist zu niedrig."); if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid,türkis,"Du bist in kein Fahrzeug"); DestroyVehicle(GetPlayerVehicleID(playerid)); return 1; } ocmd:createcar(playerid,params[]) { if(!isAdmin(playerid,6))return SendClientMessage(playerid,rot,"Dein Admingrang ist zu niedrig."); new mID,pID; if(sscanf(params,"ui",pID,mID))return SendClientMessage(playerid,rot,"INFO: /createcar[playerid][model]"); if(mID<400||mID>611)return SendClientMessage(playerid,rot,"Ungültiges Model"); new Float:xc,Float:yc,Float:zc,Float:rc; GetPlayerPos(pID,xc,yc,zc); GetPlayerFacingAngle(pID,rc); PlayerCar(pID,mID,xc,yc,zc,rc); return 1; }
Fahrzeuge Speicher und laden:
forward:
spielerfahrzeug
carinDB
-
Du musst dafür geld zahlen wo weiß ich leider selber nicht
-
Toll jetzt habt ihr mich alle so verwirt das ich erst recht nicht weiß wie ich das anfangen soll.
-
@Slider
was ist denn der unterschied zwischen dem Flot und double?Ich habe besitzer auf int gestellt mehr auch nicht
-
weil x,y,z,r Flot-Kordinaten sein sollen wegen kommar zeichen