Kennst du dich da vllt auch aus?
Nein, sorry. Das ist immer abhängig vom Gamemode, am besten du wendest dich da an den Ersteller des Codes, da ich nicht weiß, wie das System aufgebaut ist.
Kennst du dich da vllt auch aus?
Nein, sorry. Das ist immer abhängig vom Gamemode, am besten du wendest dich da an den Ersteller des Codes, da ich nicht weiß, wie das System aufgebaut ist.
Klar, du musst eben anstatt der 50 die ID nehmen, die ausgelesen wird, in dem Code, zum Beispiel so:
new ids[MAX_VEHICLES];
new id_to_set = cache_get_field_content_int(zeile, "id");
for(new i = 1; i < id_to_set; i++) if(IsValidVehicle(i)) ids[i] = CreateVehicle(400, 9999.0, -9999.0, 9999.0, 0.0, -1, -1, 60); //49 Dummies
CreateVehicle(...); //Dein Fahrzeug mit der ID id_to_set
for(new i = 1; i < id_to_set; i++) if(ids[i] > 0) DestroyVehicle(ids[i]);
Poste bitte den Befehl.
Genau, das habe ich schon so verstanden.
Direkt ist das nicht möglich, aber mit Umständen geht es. Beispiel:
Natürlich muss abgefragt werden, bei Step 1, ob die ID bereits existiert und in dem Fall darf sie dann auch bei Step 3 nicht gelöscht werden.
new ids[MAX_VEHICLES];
for(new i = 1; i < 50; i++) if(IsValidVehicle(i)) ids[i] = CreateVehicle(400, 9999.0, -9999.0, 9999.0, 0.0, -1, -1, 60); //49 Dummies
CreateVehicle(...); //Dein Fahrzeug mit der ID 50
for(new i = 1; i < 50; i++) if(ids[i] > 0) DestroyVehicle(ids[i]);
Ach ja, ich sehs grade. Entferne das hier:
if(!IsPlayerInAnyVehicle(playerid))return 1;
Zeile 3.
Wie stelle ich das ein, dass man nicht so schnell Läuft?
Theoretisch ja, du kannst alle IDs bis zur gewünschten ID erstellen, und dann wieder löschen, nachdem deine gewünschte ID erstellt wurde.
Ob das Sinn macht ist allerdings die andere Frage.
new Float:tmpdist, Float:maxdist = 10.0, Float:x, Float:y, Float:z;
zu:
new Float:tmpdist, Float:maxdist = 30.0, Float:x, Float:y, Float:z;
Zum Beispiel.
Stell dich mal näher an das Fahrzeug.
Die 10.0 ist die maximale Distanz. Oder erhöhe das.
PS:
Lasse bitte diese Voll-Zitate, das macht doch keinen Sinn, den kompletten Code zu zitieren.
Dann ändere die Bezeichnungen so ab:
if(strcmp(cmdtext,"/flock",true)==0)
{
if(!IsPlayerInAnyVehicle(playerid))return 1;
new vehicleid = INVALID_VEHICLE_ID;
if(IsPlayerInAnyVehicle(playerid))
{
vehicleid=GetPlayerVehicleID(playerid);
}
else
{
new Float:tmpdist, Float:maxdist = 10.0, Float:x, Float:y, Float:z;
for(new i = 1; i < MAX_VEHICLES; i++)
{
GetVehiclePos(i, x, y, z);
tmpdist = GetPlayerDistanceFromPoint(playerid, x, y, z);
if(tmpdist <= maxdist)
{
vehicleid = i;
maxdist = tmpdist;
}
}
}
if(vehicleid == INVALID_VEHICLE_ID) return SendClientMessage(playerid, 0xFF0000FF, "Error: Kein Fahrzeug in der Nähe.");
if(SpielerInfo[playerid][Frakt]>0||isImporter(playerid))
{
if(locked[vehicleid]==1)
{
for(new i=1; i<sizeof(FraktAuto); i++)
{
if(FraktAuto[i][id_x]==vehicleid)
{
if(FraktAuto[i][besitzer]==SpielerInfo[playerid][Frakt]||FraktAuto[i][besitzer]==32&&SpielerInfo[playerid][Frakt]==4||FraktAuto[i][besitzer]==31&&isImporter(playerid))
{
unlockVehicle(vehicleid);
GameTextForPlayer(playerid,"~w~Fahrzeug ~g~aufgeschlossen",1500,3);
return 1;
}
}
}
}
else
{
for(new i=1; i<sizeof(FraktAuto); i++)
{
if(FraktAuto[i][id_x]==vehicleid)
{
if(FraktAuto[i][besitzer]==SpielerInfo[playerid][Frakt]||FraktAuto[i][besitzer]==32&&SpielerInfo[playerid][Frakt]==4||FraktAuto[i][besitzer]==31&&isImporter(playerid))
{
lockVehicle(vehicleid);
GameTextForPlayer(playerid,"~w~Fahrzeug ~r~abgeschlossen",1500,3);
return 1;
}
}
}
}
return 1;
}
else
{
SendClientMessage(playerid,COLOR_RED,"Du bist in keiner Fraktion");
return 1;
}
}
@Jeffry Funktunier nicht.. grade Versucht InGame..
Poste bitte deinen Befehl wie er jetzt aussieht.
Nein, du sollst Zeile 4 mit dem ersetzen was ich dir geschrieben habe.
Zeile 4 in deinem Befehl oben.
new vehicleid=GetPlayerVehicleID(playerid);
zu:
new vehicleid = INVALID_VEHICLE_ID;
if(IsPlayerInAnyVehicle(playerid))
{
vehicleid=GetPlayerVehicleID(playerid);
}
else
{
new Float:tmp, Float:max = 10.0, Float:x, Float:y, Float:z;
for(new i = 1; i < MAX_VEHICLES; i++)
{
GetVehiclePos(i, x, y, z);
tmp = GetPlayerDistanceFromPoint(playerid, x, y, z);
if(tmp <= max)
{
vehicleid = i;
max = tmp;
}
}
}
if(vehicleid == INVALID_VEHICLE_ID) return SendClientMessage(playerid, 0xFF0000FF, "Error: Kein Fahrzeug in der Nähe.");
format(dini_Set(hdatei, "Hausbesitzer",HouseInfo[i][HSpielername]));
zu:
dini_Set(hdatei, "Hausbesitzer",HouseInfo[i][HSpielername]);
Die Zeilen mit dem Tag Mismatch jeweils zu dini_FloatSet abändern.
Und Zeile 29 oben nach dem return 1 noch ein Semikolon hinzufügen.
Mit format kannst du Strings zusammenfügen oder übertragen. Alternativ kann man auch strcat nutzen.
Hier kannst du aber das format genau so nutzen, dann steht der Wert aus dem dini_Get in der Variable drin.
HouseInfo[i][HSpielername] = dini_Get(hdatei, "Hausbesitzer");
zu:
format(HouseInfo[i][HSpielername], 64, dini_Get(hdatei, "Hausbesitzer"));
Gleich beim Passwort.
Ändere es hierzu, und ändere den LoadChar stock zu einem public mit forward.
new query[256];
mysql_format(Handle, query, sizeof(query), "SELECT * FROM charakter WHERE Spieler='%i'", pInfo[playerid][db_id]);
mysql_pquery(Handle, query, "LoadChar", "d", playerid);
Wie sieht das Query dazu aus? Kannst du den Code bitte posten, mit dem du LoadChar aufrufst?
[jTuT] MySQL R39-3 (Installation, XAMPP, Verwendung, Bedienung & Registrations-System)
Das kann auch für die R39-5 angewendet werden, dazu sind keine Unterschiede.
Ah, mein Fehler, sorry, habe es beim Copy&Paste vergessen abzuändern.
if(sscanf(params,"sS()[32]", pname, Reason)) return
zu:
if(sscanf(params,"s[24]S()[32]", pname, Reason)) return