Stimmt denn das Nummernschild von deinem Auto? ![]()
Beiträge von Kaliber
-
-
Uff, du machst da ein ziemliches doppel gemoppel.
Du könntest auch einfach die vehicleid als index für dein Array nehmen, anstatt nach einem freien Platz zu suchen.
Schließlich soll das ja auch wieder überschrieben werden, aber so wird dein Array immer größer..und gelöschte Autos bleiben da stehen (es sei denn du resettest diese manuell).
Wie dem auch sei, du denkst du hättest den index gemappt, aber in deinem Fall ist fV != vehicleid wie es eigentlich sein sollte.
Also du hast 2 Möglichkeiten, entweder du passt das an und änderst das oder du schreibst eine Funktion wie:
Cstock getFV(vehicleid) { for(new v; v<sizeof(Vehicle); v++) { if(Vehicle[v][vehID] == vehicleid) return v; } return INVALID_VEHICLE_ID; }
Und dann deine Funktion so:C
Alles anzeigenstock GetVehicleFraktionName(vehicleid) { new string[50]="Zivilist",fV=getFV(vehicleid); if(fV==INVALID_VEHICLE_ID) return string; switch(fVehicle[fV][vehFraktion]) { case 1: string = "LSPD"; case 2: string = "LVPD"; case 3: string = "LVPD"; case 4: string = "LSMD"; case 5: string = "Russen M."; case 6: string = "Yakuza"; case 7: string = "Regierung"; case 8: string = "Hitman"; case 9: string = "San News"; } return string; } -
vehFraktion werden nach nummern eingefragen.
Das würde ich gerne mal sehen, da ich vermute, dass dort der Fehler liegt

Zur Überprüfung, kannst du ja auch einfach mal mit printf dir aus Spaß eine Fahrzeug Fraktion ausgeben lassen um zu testen, ob es denn funktioniert, aber ich denke nicht

-
So gehts
So ist das aber falsch, da dann nur die Fraktion von einem selbst angezeigt werden würde. (da du playerid und nicht pID nutzt)
Schreib das mal so:
C
Alles anzeigenocmd:checkid(playerid,params[]) { if(!IsPlayerInFraktion(playerid, 1)) return 1; new fID, pID,Ausweis[128]; if(sscanf(params,"u",pID))return SendClientMessage(playerid,FARBE_ROT,"INFO: /checkid [Playerid]"); if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,FARBE_ACCEPT,"Dieser Spieler ist nicht vorhanden."); fID = sInfo[pID][Fraktion]; format(Ausweis, sizeof(Ausweis),"Name: %s \nLevel: %d \nFraktion: %s \nWanteds: %d",getPlayerName(pID),sInfo[pID][Level],fInfo[fID][f_name],GetPlayerWantedLevel(pID)); ShowPlayerDialog(playerid,DIALOG_AUSWEIS, DIALOG_STYLE_MSGBOX, "Personalausweiss",Ausweis,"Zurückgeben",""); return 1; } -
Komisch ist wen ich das so habe wird mir nur Zivilist angezeigt.
Kannst du uns zeigen, wie du die Funktion aufrufst?
Und wie du den Fahrzeugen die Fraktion zuweist wäre auch interessant

-
Schon
sudo apt-get install libmysqlclient-dev
probiert?

-
Die Fehler kann man einfach beheben, aber dafür müsste ich mal ein bisschen Code sehen, wo du das jeweils verwendest

Dann kann ich dir eine alternative geben

-
Welche Linux Distribution nutzt du denn?

Und so ein Fehler ist schon oft vorgekommen, da mal google zu benutzen, wäre evtl gaar nicht so verkehrt

-
fID ist ja auch immer 0.
Dir fehlt die Zuweisung...also sowas wie fID = sInfo[pID][Fraktion];
-
Ich benutze R5
Probiers mal mit R7

-
Kann einer sagen wieso?
Yes i can

Weil, du den String erst formatierst, nachdem du dem Spieler schon einen Dialog angezeigt hast

Also mal Zeile 7 und 8 tauschen

Code Logik, ist sehr wichtig

-
dass ich einen zu neuen(?) Release der Include benutze
Ehh glaube ich nicht, eher einen zu alten?
Es wäre einfacher, wenn du uns sagst, welche Version du nutzt

Brauchen tust du denke ich eine zwischen R5-R7...aber ich weiß nicht, ob du die noch auftreiben kannst.
Ist ne doofe Sache nur das Gamemode ohne Includes & Plugins zu speichern

-
Versuchs mal so:
C
Alles anzeigenocmd:acreate(playerid, params[]) { if(!IsPlayerConnected(playerid) || !Player[playerid][PlayerLoggedIn]) return SCM(playerid, Text_NotConnected); if(Player[playerid][PlayerAdmin] < 5) return SCM(playerid, Text_NoRights); new buffer_action[32]; if(sscanf(params,"s[32]I(0)I(0)I(0)I(0)", buffer_action, buffer_fraktionsID, buffer_model,buffer_color[0],buffer_color[1]))return SCM(playerid, Text_Use"/acreate atm/(fveh [FraktionsID] [ModelID] [Color1] [Color2])"); if(strcmp(buffer_action,"atm",true) == 0) { new Float:OX, Float:OY, Float:OZ, Float:ORX, Float:ORY, Float:ORZ; GetPlayerPos(playerid, OX, OY, OZ); Player[playerid][PlayerObjectModel] = 2942; ORX = 0.0; ORY = 0.0; ORZ = 0.0; Player[playerid][PlayerObject] = CreateObject(2942, OX+2, OY, OZ, ORX, ORY, ORZ); SCM(playerid,Text_Info"Object gespawnet du kannst es nun positionieren."); EditObject(playerid, Player[playerid][PlayerObject]); return 1; } else if(strcmp(buffer_action,"fveh",true) == 0) { new buffer_model,buffer_fraktionsID,buffer_color[2]; if(buffer_model < 400 && buffer_model > 611)return SCM(playerid, Text_Error"Ungültige ModelID!"); new Float:Pos[4]; GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]); GetPlayerFacingAngle(playerid, Pos[3]); CreateFraktionsCar(buffer_fraktionsID, buffer_model, Pos[0], Pos[1], Pos[2], Pos[3], buffer_color[0], buffer_color[1]); SCM(playerid, Text_Info"Fahrzeug erstellt."); return 1; } return 1; } -
Wen ich das mache und /carinfo [Model-ID] Funktioniert das nicht.
Weil du nicht die modelid willst, sondern die vehicleid.
Das eine ist die Modell-Nr, also z.B. Infernus = modelid.
vehicleid = Die eindeutige Fahrzeug ID, wie sie erstellt wurde, (also das erste Fahrzeug ist 1, dann 2 usw).
-
@Kaliber hast du eine Idee ?
Grundsätzlich kannst du davon ausgehen, dass du etwas vergessen hast, wenn sowas passiert

Entweder eine { oder } oder eine ( oder ) oder sogar " oooder ;
Wenn du vergessen hast z.B. den String wieder zu schließen

Manchmal gibt der da Errors, aber manchmal reagiert der compiler auch sehr allergisch darauf und verabschiedet sich

Deshalb Code nochmal genau anschauen

-
Weißt du noch, wo du das gesehen hattest?
Denn ich hatte mal sowas vorgestellt gehabt:
Allerdings handelt es sich hier um kein simples Include, da ist erstmal ein wenig Vorarbeit nötig die Bilder zu konvertieren und das ein wenig zu optimieren, da wird leider nichts nativ von SA:MP unterstützt.
Inspiriert wurde ich von diesem Projekt: http://forum.sa-mp.com/showthread.php?t=591938
//Edit: Ahh okay, cool

PS: Das war nur eine Vorstellung meinen Source Code hab ich nicht veröffentlicht

-
Das bedeutet, dass dein Compiler abgestürzt ist

Das passiert meistens durch Klammerfehler.
Hast du eventuell bei OnPlayerConnect oder so, eine Klammer vergessen?

Eventuell lass die mal in Notepad oder so zählen, also die geschweiften Klammern { und } die Anzahl der beiden muss gleich sein

-
Welche Objekt id hat dieser Blitzer
Das ist die 18880

-
PoliceLightFlashID++;
if(PoliceLightFlashID > 1)Das macht ja auch wenig Sinn.
Es ist quasi immer auf 1.
Du musst es im else auf 1 setzen und bei der Deklaration

-
Weeeil was ist das?
Das ist ein ganz normales TextDraw

Mit Farben eben: http://wiki.sa-mp.com/wiki/Colors_List