Nein.
sizeof(skinChange) = Zeilen
sizeof(skinChange[]) = Spalten
Nein.
sizeof(skinChange) = Zeilen
sizeof(skinChange[]) = Spalten
http://forum.sa-mp.com/showthread.php?t=102865
Herunterladen, einfügen, Script neu kompilieren, hochladen. Dann sollte es laufen.
Hast du die Gas Variable als Float deklariert?
Wenn ja:
format(string2,sizeof(string2),"~r~Tank:~g~ %s %0.1f", Tank, Gas[VID]);
Hast du in deinem Server Verzeichnis/Ordner einen scriptfiles Ordner? Wenn nein, erstelle diesen bitte.
Wenn es dann immer noch nicht geht, lade dir da crashdetect Plugin herunter und füge es in deinen Server ein. Dann starte den Server damit und poste was im Log steht.
Nebenfrage:
Nutzt dein Code irgendwo io_read?
Diese Meldung kommt, weil dein Code unnormal viel Speicher verbraucht, hinsichtlich der Größe des Codes.
Dann musst du den Speicher über die Compiler Anweisung vergrößern.
#pragma dynamic 100000
Unter den Includes einfügen. Falls die Meldung nicht weg geht, erhöhe die Zahl etwas.
sizeof(skinChange[])
Hast du dazu einen Code? Am besten den Code, bei dem du vermutest, dass dieser die "///" hinzufügt.
Ohne Code wird es schwer bis unmöglich dir zu helfen.
Dann musst du beim Erstellen der Fahrzeuge die Fahrzeuge abschließen:
SetVehicleParamsEx(car,engine,lights,alarm,VEHICLE_PARAMS_OFF,bonnet,boot,objective);
Setzt du den Spieler zuvor irgendwann in den Spectate Modus? Wenn ja, füge nach SetSpawnInfo noch das hinzu:
TogglePlayerSpectating(playerid, 0);
Fraktion2 nur in Fraktions1 Cars wen es offen ist aber sie sollten immer geschlossen sein
Sie sollen rein kommen wenn sie offen sind, aber sollen immer geschlossen sein?
Poste bitte den ganzen zu dem Schnipsel gehörenden Code, und mache mal ein Beispiel zu dem was du da beschrieben hast.
Mit SpawnPlayer alleine geht es nicht, sonst wird der Spieler gekickt (SA-MP Bug).
Ändere:
SetPlayerPos(playerid,2488.5435,-1460.0626,24.0180);
zu:
SetSpawnInfo( playerid, playerid, 0, 2488.5435,-1460.0626,24.0180, 270.0, 0, 0, 0, 0, 0, 0 );
SpawnPlayer(playerid);
dcmd_flock(playerid,params[])
{
#pragma unused params
new car = -1;
if(GetPlayerVehicleSeat(playerid) == 0)
{
car = GetPlayerVehicleID(playerid);
}
else if(!IsPlayerInAnyVehicle(playerid))
{
new Float:x, Float:y, Float:z;
for(new i=0; i<MAX_VEHICLES; i++)
{
GetVehiclePos(i, x, y, z);
if(IsPlayerInRangeOfPoint(playerid, 7.0, x, y, z))
{
car = i;
break;
}
}
}
if(car != -1)
{
if(GetVehicleModel(car) == 509 || GetVehicleModel(car) == 481 || GetVehicleModel(car) == 510)
{
SendClientMessage(playerid, Rot, "Du sitzt auf einem Fahrrad.Das kann man nicht abschließen!");
}
else if (Motor[car] == false)
{
GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(car,engine,lights,alarm,VEHICLE_PARAMS_ON,bonnet,boot,objective);
Motor[car] = true;
SendClientMessage(playerid,Weiß,"Fahrzeug ~g~Aufgeschlossen");
}
else
{
GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(car,engine,lights,alarm,VEHICLE_PARAMS_OFF,bonnet,boot,objective);
Motor[car] = false;
SendClientMessage(playerid,Weiß,"Fahrzeug ~r~Abgeschlossen");
}
}
return 1;
}
So sollte es klappen.
Und was meinst du mit dem anderen?
return TextDrawSetString(Tacho[playerid][besitz], string); //3310
return TextDrawSetString(Tacho[playerid][besitz], "Polizei"); //3316
Hoffe mir kann da jemand helfen, mir fällt es gerade echt nicht ein
Wenn ich die Beschreibung richtig verstanden habe, müsste es so aussehen:
<meta>
<info name="[DM] Infra v4 - One Desire"></info>
<map src="DMInfrav4.map"></map>
<settings>
<setting name="#weather" value="[ 17 ]"></setting>
</settings>
</meta>
xml_get_string(xml, "meta/info/@name", buffer);
xml_get_string(xml, "meta/map/@src", buffer);
xml_get_string(xml, "meta/settings/setting/@value", buffer);
Wobei buffer der zurückgegebene String ist.
Falls es nicht klappt sag Bescheid, dann muss ich es nachher selbst probieren.
----
Zu Kevin's Problem, falls jemand das Problem auch hat:
minY:-1684,8
maxY: -1762,31
-1762,31 muss der min Wert sein, da es kleiner ist als -1684,8.
Das ging so zum kompilieren? Interessant.
Schreib es so, falls es nicht klappt, poste den Code und die Logs dazu.
if(dialogid==DIALOG_GEBURTSDATUM)
{
new second = gettime();
new tag,monat,jahr,stunde,minute;
getdate(jahr,monat,tag);
gettime(stunde,minute,second);
new DateInfo[3][20],string[200];
split(inputtext,DateInfo,'.');
if(response == 0) return 1;
else
{
if(strlen(inputtext) > 10)
{
ShowPlayerDialog(playerid,DIALOG_GEBURTSDATUM,DIALOG_STYLE_INPUT,"Geburtsdatum","Gebe nun bitte dein Alter ein. | Angabe bitte in TT.MM.JJJJ","Weiter","Verlassen");
return 1;
}
new tmp[16];
format(tmp, sizeof(tmp), "%02d.%02d.%d", strval(DateInfo[0]),strval(DateInfo[1]),strval(DateInfo[2]));
printf("Datum: %s", tmp);
if(jahr - strval(DateInfo[2]) > 100 || strval(DateInfo[2]) < 1 || strval(DateInfo[2]) >= jahr)
{
printf("jahr: %d | eingabe: %d", jahr, strval(DateInfo[2]));
ShowPlayerDialog(playerid,DIALOG_GEBURTSDATUM,DIALOG_STYLE_INPUT,"Geburtsdatum","Gebe nun bitte dein Alter ein. | Angabe bitte in TT.MM.JJJJ","Weiter","Verlassen");
return 1;
}
new check = jahr - strval(DateInfo[2]);
if(strval(DateInfo[1]) > monat)
{
check -= 1;
}
else if(strval(DateInfo[1]) == monat && strval(DateInfo[0]) > tag)
{
check -= 1;
}
if(check < 14 || check > 50)
{
printf("check = %d", check);
ShowPlayerDialog(playerid,DIALOG_GEBURTSDATUM,DIALOG_STYLE_INPUT,"Geburtsdatum","Gebe nun bitte dein Alter ein. | Angabe bitte in TT.MM.JJJJ","Weiter","Verlassen");
return 1;
}
sInfo[playerid][palter] = check;
format(sInfo[playerid][pGeburtstag],11,inputtext);
format(string,sizeof(string),"Ok du bist also %i Jahre alt.",sInfo[playerid][palter]);
SendClientMessage(playerid,GELB,"Du hast dein Personalausweis Erfolgreich beantragt!");
SendClientMessage(playerid,GELB,"Du kannst ihn in 5 Minuten abholen!");
SetTimerEx("Persoantrag",5000,false,"i",playerid);
printf("%s hat sein ausweis Beantragt!)",getPlayerName(playerid));
return 1;
}
}
Ok, nach diesem Prinzip musst du es machen:
if (strcmp("/opark", cmd, true, 10) == 0)
{
if(IsPlayerInAnyVehicle(playerid) && GetVehicleModel(GetPlayerVehicleID(playerid)) == 525 && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
if(PlayerInfo[playerid][pMember] == 24||PlayerInfo[playerid][pLeader] == 24)
{
if(!IsTrailerAttachedToVehicle(GetPlayerVehicleID(playerid)))
{
SendClientMessage(playerid, COLOR_GREY, " An deinem Abschleppwagen ist kein Auto angehängt!");
return 1;
}
new trailercar = GetVehicleTrailer(GetPlayerVehicleID(playerid));
// new trailercar = GetPlayerVehicleID(playerid);
if(IsADtCar(trailercar))
{
//new trailercar = GetVehicleTrailer(GetPlayerVehicleID(playerid));
new Float:X,Float:Y,Float:Z;
new Float:z_rot;
GetVehiclePos(trailercar, X,Y,Z);
GetVehicleZAngle(trailercar, z_rot);
new carowner = GetDtCarOwner(trailercar);
new slot = GetDtCarOwnerSlot(carowner,trailercar);
PlayerCar[carowner][slot][CarPos_x] = X;
PlayerCar[carowner][slot][CarPos_y] = Y;
PlayerCar[carowner][slot][CarPos_z] = Z;
PlayerCar[carowner][slot][CarArrest] = 1;
PlayerCar[carowner][slot][CarRotate] = z_rot;
new fkasse = 2000 + random(2999);
FraktionsKasse[23] += fkasse;
if(carowner != 555)
{
OnPlayerCarUpdate(carowner);
SendClientMessage(carowner, COLOR_WHITE, " Ihr Fahrzeug wurde abgeschleppt, Fahren zu zur Ordnungsamt Base, um ihr auto wieder Freizukaufen.");
PlayerInfo[carowner][pRest] = 1;
SetTimerEx("PlayerCarSpawn",1000,0,"i",carowner);
}
DetachTrailerFromVehicle(GetPlayerVehicleID(playerid));
SendClientMessage(playerid, COLOR_YELLOW, " Du hast das Fahrzeug erfolgreich abgeschleppt!");
return 1;
}
if(IsAFCar(trailercar))
{
//new trailercar = GetVehicleTrailer(GetPlayerVehicleID(playerid));
new Float:X,Float:Y,Float:Z;
new Float:z_rot;
GetVehiclePos(trailercar, X,Y,Z);
GetVehicleZAngle(trailercar, z_rot);
new carowner = GetFCarOwner(trailercar);
new slot = GetFCarOwnerSlot(carowner,trailercar);
FactionCars[carowner][fPos][0] = X;
FactionCars[carowner][fPos][1] = Y;
FactionCars[carowner][fPos][2] = Z;
FactionCars[carowner][CarArrest] = 1;
FactionCars[carowner][fPos][3] = z_rot;
new fkasse = 2000 + random(2999);
FraktionsKasse[23] += fkasse;
if(carowner != 555)
{
//OnFactionCarUpdate(carowner); -> Selbst machen
SendClientMessage(carowner, COLOR_WHITE, " Ihr Fahrzeug wurde abgeschleppt, Fahren zu zur Ordnungsamt Base, um ihr auto wieder Freizukaufen.");
//PlayerInfo[carowner][pRest] = 1;
//SetTimerEx("PlayerCarSpawn",1000,0,"i",carowner);
//Was mit diesen zwei Zeilen (oben) ist weiß ich nicht, kommt auf dein System an. Das musst du eventuell anpassen.
}
DetachTrailerFromVehicle(GetPlayerVehicleID(playerid));
SendClientMessage(playerid, COLOR_YELLOW, " Du hast das Fahrzeug erfolgreich abgeschleppt!");
return 1;
}
SendClientMessage(playerid, COLOR_GREY, "Du kannst dieses Fahrzeug nicht abschleppen!");
}
else
{
SendClientMessage(playerid, COLOR_GREY, " Du bist kein Mitglied des Ordnungsamtes!");
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, " Du musst einen Abschleppwagen fahren!");
}
return 1;
}
Function IsAFCar(car) //!CallRemoteFunction("IsAFCar","i",c)
{
for(new fc;fc<sizeof(FactionCars);fc++)
{
if (car == FactionCars[fc][fCarid])
{
return 1;
}
}
return 0;
}
forward GetFCarOwnerSlot(playerid,veh);
public GetFCarOwnerSlot(playerid,veh)
{
for(new fc;fc<sizeof(FactionCars);fc++)
{
if(FactionCars[fc][fCarid] == veh)
{
return fc;
}
}
return 555;
}
Die Funktion GetDtCarOwner hat gefehlt, die musst du noch selbst zusammenbasteln, damit es für die FactionCars geht. Das OnFactionCarUpdate musst, falls du das dafür auch brauchst, auch noch erstellen (einfach das von den PlayerCars kopieren und die Werte ersetzen).
Möglicherweise kannst du es nicht ohne Fehler kompilieren, das liegt dann daran, dass die Variablen für die FactionCars bei dir noch nicht deklariert sind. Da ich die aber nicht kenne, kann ich dir das auch nicht machen. Das solltest du aber hinbekommen.
Bei Fragen kannst du dich gerne melden.
Poste bitte die beiden Zeilen.
if(strcmp(cmdtext, "/maske", true) == 0)
{
if(PlayerInfo[playerid][pMember] == 22 || PlayerInfo[playerid][pLeader] == 22)
{
if(Maske[playerid] == 1)
{
for(new i = 0; i < MAX_PLAYERS; i++) ShowPlayerNameTagForPlayer(i, playerid, 1);
Maske[playerid] = 0;
SendClientMessage(playerid, COLOR_LIGHTBLUE, "*Du hast dir deine Maske abgesetzt.");
}
else if(Maske[playerid] == 0)
{
for(new i = 0; i < MAX_PLAYERS; i++) ShowPlayerNameTagForPlayer(i, playerid, 0);
Maske[playerid] = 1;
SendClientMessage(playerid, COLOR_LIGHTBLUE, "*Du hast dir eine Maske aufgesetzt.");
Maskierter[playerid] = Create3DTextLabel("Maskierter",COLOR_LIGHTBLUE,30.0,40.0,50.0,40.0,0);
Attach3DTextLabelToPlayer(Maskierter[playerid],playerid, 0.0, 0.0, 0.4);
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, "Du kannst keine Maske aufsetzen!");
}
return 1;
}
Die Variable für das Label muss so deklariert werden:
new Text3D:Maskierter[MAX_PLAYERS];
Du zeigst die falsche Dialog ID an.
ShowPlayerDialog(playerid,DIALOG_REGISTER2,DIALOG_STYLE_INPUT,"Geburtsdatum","Gebe nun bitte dein Alter ein. | Angabe bitte in TT.MM.JJJJ","Weiter","Verlassen");
zu:
ShowPlayerDialog(playerid,DIALOG_GEBURTSDATUM,DIALOG_STYLE_INPUT,"Geburtsdatum","Gebe nun bitte dein Alter ein. | Angabe bitte in TT.MM.JJJJ","Weiter","Verlassen");