i2 wurde in diesen Script nicht definiert hat jemand eine ahnung wie ich das definieren soll?
Vermutlich sowas wie:
new i2 = GetPlayerVirtualWorld(playerid);
i2 wurde in diesen Script nicht definiert hat jemand eine ahnung wie ich das definieren soll?
Vermutlich sowas wie:
new i2 = GetPlayerVirtualWorld(playerid);
würde es nicht klappen wenn du so machst?
Nein, in SA:MP können so nur zahlen verglichen werden. (Ja, chars sind auch Zahlen und mit Floats ist das so eine Sache...)
Strings musst du mit strcmp vergleichen, da wird im Endeffekt 1x durch den String geloopt und jeder char verglichen...
hallo mit halle vergleiche kommt auch 0, weil es gleich lang ist??
Hättest das ja in 2 Sekunden test können, nein, so ist es nicht.
Sobald die Strings gleich sind (oder einer von Beiden null) wird 0 zurückgegeben.
Schau dir das Beispiel von der Englischen Seite an ![]()
atte ich gemacht und alle von die runtime ginge nicht zum instaleren.
Deinstalliere die x64 Dinger, du brauchst nur die x86...
kann mir hier einer helfen?
Dein Plugin wird nicht geladen, schaust du hier: MySQL Plugin buggt
was ist ressourcen schonender? ein array oder einfach doppelte Zeilen (in dem Fall 2x50)
...das spielt hier keine Rolle.
Der Übersicht wegen, solltest du ein Array und eine Schleife verwenden.
Das mit der vehicle-Info kannst du verkürzen und zwar so:
ocmd:vinfo(playerid)
{
static const veh_condition[][] = {
"Brand New","New","Healthy","Good","Regular","Moderate","Used","Worn","Bad","Horrible","Critical","Scrapworthy","Driving-Dead"
}, veh_insured[][] = {
"No","Yes","2x","3x"
}, veh_counter[][] = {
"FIRST","SECOND","THIRD","FOURTH","FIFTH"
};
SendClientMessage(playerid, COLOR_WHITE, !"------------------------------------------------------------------------");
for(new i,vehtype[32],string[145],v; i<MAX_VEHICLE_SLOTS; i++)
{
v = pInfo[playerid][pVehicleID][i];
if(!v) continue;
switch(cInfo[v][carmodel])
{
case 411: vehtype = "Supersport";
case 414: vehtype = "Boxed Van";
}
format(string, sizeof(string), "[%s VEHICLE]:{FF4500} %s | Type: %s | Milage: %i | Condition: %s | Insured: %s | Registered: %s",
veh_counter[i],GetVehicleName(GetVehicleModel(v)),vehtype,cInfo[v][milage],veh_condition[cInfo[v][carcondition]],veh_insured[cInfo[v][insured]],veh_insured[cInfo[v][registered]]);
SendClientMessage(playerid, COLOR_SYSTEM, string);
}
SendClientMessage(playerid, COLOR_WHITE, !"------------------------------------------------------------------------");
return 1;
}
Alles anzeigen
Sollte oder kann ich überhaupt beides nutzen, je nach Bedarf anders an verschiedenen Stellen? oder ist das dann doppelt definiert mit dem enum.
Im enum schreibst du nur pVehicleID[MAX_VEHICLE_SLOTS], alles Andere für die Vehicles haus du raus.
Um es zu speichern:
pInfo[playerid][pVehicleID][0], pInfo[playerid][pVehicleID][1], pInfo[playerid][pVehicleID][2], pInfo[playerid][pVehicleID][3], pInfo[playerid][pVehicleID][4]
So kannst du jeweils auf die 5 Indizes zugreifen ![]()
Und in deinem ocmd test Command hast du:
pInfo[playerid][pVehicleID[1]], wenn dann müsste es: pInfo[playerid][pVehicleID][0] sein. (Das fängt bei 0 an, nicht bei 1.)
Zumal war halt der Array Index an der falschen Stelle.
Aber du müsstest halt noch prüfen, ob das Fahrzeug nicht 0 ist, ergo:
ocmd:test2(playerid)
{
new string[MAX_VEHICLE_SLOTS*18];
for(new i,v; i<MAX_VEHICLE_SLOTS; i++)
{
v = pInfo[playerid][pVehicleID][i];
if(!v) continue; //Hier besitzt er noch kein Fahrzeug
format(string,sizeof(string),"%s%s\n",string,GetVehicleName(GetVehicleModel(v)));
}
if(!string[0]) return SendClientMessage(playerid,-1,"* You don't own a vehicle yet!");
ShowPlayerDialog(playerid,999,DIALOG_STYLE_LIST,"Private Vehicles",string,"Okay","");
return 1;
}
Alles anzeigen
GetVehicleName, kannste z.B. hier her bekommen: https://forum.sa-mp.com/showthread.php?t=566775
Oder du hast natürlich schon so eine Funktion.
Falls er btw ein neues Auto kaufen mag, musst du einen leeren index finden:
stock FindFreeCarIndex(playerid)
{
for(new i; i<MAX_VEHICLE_SLOTS; i++)
{
if(!pInfo[playerid][pVehicleID][i]) return i;
}
return -1;
}
//Nutzung ist dann:
new i = FindFreeCarIndex(playerid);
if(i == -1) return SendClientMessage(playerid,-1,"* You own already "#MAX_VEHICLE_SLOTS#" vehicles!");
pInfo[playerid][pVehicleID][i] = CreateVehicle(...);
Alles anzeigen
Hey Leute,
ich wollte euch nur mal vorwarnen, vielleicht ist es bei dem Ein oder Anderen vorbei gegangen.
Vielleicht kennen ja einige Leute den guten alten Siraj, der so machine learning Videos auf YouTube macht.
Hat sich jetzt rausgestellt, dass der Typ ein krasser Scammer & Abzocker ist, in meinen Augen gehört er verhaftet, aber entscheidet selbst:
GetVehicleName(vID)
Ja, der clue ist, vID hier ist nicht die vehicleID, sondern die modelid.
Und du fragst von der modelid die modelid ab xD
Du musst das direkt nutzen, ohne das GetVehicleModel ![]()
geht aber beides net
Alsooo wie sieht dein Code jetzt aus und was sagt crashdetect? ![]()
VehicleName(vID)
Ahhh und wie ist das definiert? :3
OnPlayerCommandText benutze ich nicht, da ich ZCMD nutze.
ZCMD greift trotzdem auf den Callback OnPlayerCommandText zu und verteilt über CallLocalFunction die Commands ![]()
Der Fehler liegt glaube ich in GetVehicleModelIDFromName.
Dort fragst du VehicleNames[i] ab, kann es sein, dass das ein Makro ist? ![]()
Würdest du mal zeigen, wie das definiert ist? ![]()
Lade mal crashdetect und schau, was dir da so ausgegeben wird ![]()
(das s[18] schön drinnen lassen xD)
Das Raketen System hast du aus einem GF Edit gerne zeige ich dir Per PN beweise.
Nicht ganz: Kleines Mörser Skript
Hast den Editor mal als Admin gestartet?!
Der Cursor blinkt im Fenster.. Aber es kommt keine Nachricht.. Wenn ich irgendwelche Zeilen entferne, dass gleiche..
In Pawno?
Eventuell einfach mal alles schließen...
oder PC neustarten xD
Lade nochmal das Plugin crashdetect...und zeig dann nochmal den Server Log ![]()