Krieg ich denn jetzt endlich mein Fressen und etwas Wasser?
![]()
Will einen Zombie Hund, repräsentativ für die deutsche SA:MP Szene hahaha ![]()
Krieg ich denn jetzt endlich mein Fressen und etwas Wasser?
![]()
Will einen Zombie Hund, repräsentativ für die deutsche SA:MP Szene hahaha ![]()
Warum wird das Fahrzeug beim gemappten boden abgekoppelt wen ich das Fahrzeug beim Normalen standart boden abschleppe funktioniert das...
Mit dem Boden hat das nichts zu tun?!
Der Code sieht schäußlich aus...das kann man doch schöner schreiben ![]()
if ((newkeys & KEY_ACTION) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
new veh = GetPlayerVehicleID(playerid);
if(GetVehicleModel(veh) != 525) return 1;
if(IsTrailerAttachedToVehicle(veh)) return DetachTrailerFromVehicle(veh);
new trailer = GetClosestNotOwnVehicle(playerid,veh);
if(trailer == INVALID_VEHICLE_ID) return SCM(playerid,-1,"* Es befindet sich kein Auto in deiner Nähe!");
AttachTrailerToVehicle(trailer, veh);
}
stock GetClosestNotOwnVehicle(playerid,veh,Float:range=20.0)
{
new i,Float:ref=3000.0,Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
for(new Float:tmp,v=GetVehiclePoolSize(); v!=0; v--)
{
if(v==veh) continue;
tmp=GetVehicleDistanceFromPoint(v,x,y,z);
if(tmp < ref) ref=tmp,i=v;
}
return (ref > range) ? INVALID_VEHICLE_ID : i;
}
Alles anzeigen
PlayerText
Du deklarierst die Variable als PlayerText verwendest dann aber eine normale TextDraw Funktion. Du musst [wiki]PlayerTextDrawHide[/wiki] verwenden ![]()
Und wie mein Hündchen schon sagte, das i da macht keinen Sinn.
ich suche die Objekt-ID des LVPD HQ's.
Müsste die 7009 sein ![]()
Oh nein SAMP ist Untot.
Gott nervig irgendwie.
Wird wohl mal wieder Zeit für einen Zombie Server ![]()
-1757 ist kleiner als dein ymin...
Also änder die ymin auf -1758 in der box
Zeig nochmal deine Koordinaten ![]()
Und bist du sicher, dass auch wirklich ein Fahrzeug da steht?
Die Anordnung ist falsch:
1101.4561 = xMax
1095.8397 = xMin
-1753.5172 = yMax
-1756.2960 = yMin
Deine Anordnung ist also: xMax, xMin, yMax, yMin
Sie sollte aber: xMin, yMin, xMax, yMax sein.
Bekomme immernoch die id 0 zurück.
Okay, kannst du mal aus Spaß zeigen was die Werte von:
VehicleTowedSpawn[0][TowedSpawnMinX] , VehicleTowedSpawn[0][TowedSpawnMinY], VehicleTowedSpawn[0][TowedSpawnMaxX], VehicleTowedSpawn[0][TowedSpawnMaxY]
und
VehicleTowedSpawn[0][TowedSpawnX],VehicleTowedSpawn[0][TowedSpawnY],VehicleTowedSpawn[0][TowedSpawnZ]
sind ![]()
Also setzen wir mal voraus, dass die Koordinaten stimmen, dann gibt es einige Logik Fehler in deinem Code.
Ich versuche dir das mal zu erklären, was deine 2 größten sind.
Also hier mal anders:
stock GetFreePoint()
{
for(new bool:besetzt,m_id=GetVehiclePoolSize(),v,p; p < sizeof(VehicleTowedSpawn); p++ )
{
besetzt=false;
for(v=m_id; v!=0; v--)
{
if(IsVehicleInArea(i, VehicleTowedSpawn[p][TowedSpawnMinX] , VehicleTowedSpawn[p][TowedSpawnMinY], VehicleTowedSpawn[p][TowedSpawnMaxX], VehicleTowedSpawn[p][TowedSpawnMaxY]))
{
besetzt = true;
break;
}
}
if(!besetzt) return p;
}
return -1;
}
Alles anzeigen
Und schreib die andere Funktion mal so, das ist eleganter und schneller:
Ah, wenn es compilt, perfekt! ![]()
im Bezug auf sscanf
Lade mal nativechecker und poste den Log ![]()
Stimmt denn das Nummernschild von deinem Auto? ![]()
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:
stock 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:
stock 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;
}
Alles anzeigen
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:
ocmd: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;
}
Alles anzeigen
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 ![]()