Schreib mal oben in dein Skript:
#define FACTION_CARS_LOCKABLE
Schreib mal oben in dein Skript:
#define FACTION_CARS_LOCKABLE
Kannste mit einer Funktion machen, also z.B. so:
new isObjAttached[MAX_VEHICLES];
//Dann bei deinem Befehl:
new veh = GetPlayerVehicleID(playerid);
if(!veh) return SendClientMessage(playerid,-1,"Du befindest dich in keinem Fahrzeug!");
new model = GetVehicleModel(veh);
if(!IsVehValid(model)) return SendClientMessage(playerid,-1,"Du befindest dich in keinem Mechaniker Truck!"); //Zum beispiel wenn das nur darin gehen soll
if(isObjAttached[veh]) //Wenn eins schon dran ist zerstören:
{
DestroyObject(isObjAttached[veh]);
isObjAttached[veh] = 0;
return 1;
}
isObjAttached[veh] = CreateObject(19294, 0,0,0,0,0,0);
PositioniereObject(model,veh);
return 1;
//Und dann noch zu prüfen ob das Fahrzeugmodel gültig ist:
stock IsVehValid(model)
{
switch(model) {
case 525,405: return 1; //Zum beispiel musste dann erweitern
}
return 0;
}
//Dann unten im Skript:
stock PositioniereObject(model,veh)
{
switch(model)
{
case 525: AttachObjectToVehicle(isObjAttached[veh], veh, 0,0,0.5); //Hier bei Mechaniker truck
case 405: //usw
}
return 1;
}
Alles anzeigen
Und am Ende kann ich das hier doch sicherlich packen, damit, falls was nicht stimmt, der Spieler auch die Nachricht kriegt, und aus dem Fahrzeug geworfen wird.
Natürlich ![]()
Soo zum Beispiel:
new isObjAttached[MAX_VEHICLES];
//Dann bei deinem Befehl:
new veh = GetPlayerVehicleID(playerid);
if(!veh) return SendClientMessage(playerid,-1,"Du befindest dich in keinem Fahrzeug!");
new model = GetVehicleModel(veh);
if(model != 525) return SendClientMessage(playerid,-1,"Du befindest dich in keinem Mechaniker Truck!"); //Zum beispiel wenn das nur darin gehen soll
if(isObjAttached[veh]) //Wenn eins schon dran ist zerstören:
{
DestroyObject(isObjAttached[veh]);
isObjAttached[veh] = 0;
return 1;
}
isObjAttached[veh] = CreateObject(19294, 0,0,0,0,0,0);
AttachObjectToVehicle(isObjAttached[veh], veh, 0,0,0.5); //zum beispiel die koords
return 1;
Alles anzeigen
Ehhhhhhhhhhhhhhhhh:
if(fStaatShop[i][sVType] == 0 && (Spieler[playerid][pFraktion] == 1 || Spieler[playerid][pFraktion] == 3))
{
//Hier der Code...wenn VType 0
}
else if(fStaatShop[i][sVType] == 1 && Spieler[playerid][pFraktion] == 1)
{
//Hier der Code...wenn VType 1
}
else if(fStaatShop[i][sVType] == 2 && Spieler[playerid][pFraktion] == 3)
{
//Hier der Code...wenn VType 2
}
Alles anzeigen
Das müsste die 19294 gewesen sein.
Einfach per AttachObjectToVehicle..an das gewünschte Fahrzeug machen ![]()
So am besten:
for(new v=GetVehiclePoolSize(); v!=0; v--)
{
if(IsTrailerAttachedToVehicle(v) || IsTrailer(v)) continue; //Wenn Trailer dran ist, wird das Fahrzeug übersprungen (oder wenn es ein Trailer ist :D)
SetVehicleToRespawn(v);
}
//Schreib unten die Funktion noch hin:
stock IsTrailer(v)
{
switch(GetVehicleModel(v)) {
case 435,450,569,570,584,590,591,606,607,608,610,611: return 1;
}
return 0;
}
Alles anzeigen
Ja hab den Post editiert ![]()
Mein Fehler, so:
//Du machst ein Array:
new bool:routen[5];
//Dann zum Dialoge Auflisten im Befehl:
new string[10 * sizeof(routen)];
for(new i; i<sizeof(routen); i++)
{
if(routen[i]) continue; //da gerade belegt
format(string,sizeof(string),"%s%sRoute %d",string,((i!=0)?("\n"):("")),i+1);
}
if(string[0] == EOS) return SendClientMessage(playerid,-1,"Alle Routen belegt!");
ShowPlayerDialog(playerid,1337,DIALOG_STYLE_LIST,"Wähle eine Route!",string,"Bestätigen","Abbrechen");
//Dann unter OnPlayerDialogResponse
if(dialogid == 1337)
{
if(!response) return 1; //Hier hat er auf abbrechen geklickt
new index = strval(inputtext[6])-1; //Hier steht die id von der Route (-1 da Array bei 0 beginnt)
routen[index] = true; //hier ist die route belegt :D (vergessen) :D
}
Alles anzeigen
Ahh aso, das ist Spielerübergreifend, alles klar ![]()
//Du machst ein Array:
new bool:routen[5];
//Dann zum Dialoge Auflisten im Befehl:
new string[8 * sizeof(routen)];
for(new i; i<sizeof(routen); i++)
{
if(routen[i]) continue; //da gerade belegt
format(string,sizeof(string),"%sRoute %d",string,i+1);
}
if(string[0] == EOS) return SendClientMessage(playerid,-1,"Alle Routen belegt!");
ShowPlayerDialog(playerid,1337,DIALOG_STYLE_LIST,"Wähle eine Route!",string,"Bestätigen","Abbrechen");
//Dann unter OnPlayerDialogResponse
if(dialogid == 1337)
{
if(!response) return 1; //Hier hat er auf abbrechen geklickt
new index = strval(inputtext[6])-1; //Hier steht die id von der Route (-1 da Array bei 0 beginnt)
routen[index] = true; //hier ist die route belegt :D (vergessen) :D
}
Alles anzeigen
Dumme Frage, aber das wird mir aus dem Text nicht ersichtlich, soll er mehrere Aufträge (parallel) ausführen können?!
Was ja irgendwie keinen Sinn macht oder? ![]()
if(!sInfo[playerid][pLogIn] == 1)
Klingt zwar vollkommen bescheuert ![]()
Aber man könnte das wirklich so schreiben:
if(!sInfo[playerid][pLogIn] == true) return SendClientMessage(playerid,ROT,"Du bist nicht Eingeloggt.");
Aber natürlich wäre hier offensichtlicher entweder:
//Direkt so:
if(!sInfo[playerid][pLogIn]) return SendClientMessage(playerid,ROT,"Du bist nicht Eingeloggt.");
oder:
if(sInfo[playerid][pLogIn] != true) return SendClientMessage(playerid,ROT,"Du bist nicht Eingeloggt.");
Also, mehr Geldanzeigen und vor allem mehr Cash auf der Hand wäre schon wichtig.
1 Roller..wie viele Spieler erwartest du denn auf dem Server? ![]()
Und wirklich sehen tue ich nichts, bis auf ein paar Büsche undBänke die dupliziert worden sind und n Zaun...
Naja...in diesem Sinne 1 von 10 für die Mühe ._.
[13:20:26] [PE]: MySQL ERROR! Der Server wird jetzt heruntergefahren!
[13:20:26] [PE]: Da die MySQL Verbindung nicht Erfolgreich hergestellt werden konnte.
Der kann nicht auf deinen MySQL Server zugreifen...
Hast du überhaupt einen..stimmen login daten...etc
Ich hatte doch die Datei, die du hochgeladen hast gedownloadet??
Nicht die...die .dll Datei die in der Fehlermeldung steht...
[13:05:21] Loading plugin: mysql
[13:05:28] Failed.
Ja, wie du siehst konnte das Plugin nicht geladen werden.
Gib die .dll Datei in google ein, die du nicht hast (die in der Fehlermeldung) steht und dann downloade sie dir und füge in den samp ordner ein...da wo die server.exe ist ![]()
Du lädst das falsche MySQL Plugin...du brauchst für das Skript offensichtlich ein anderes ![]()
Also..probiere es mal mit einem anderen ![]()
https://github.com/pBlueG/SA-MP-MySQL/releases
Probiers mal mit dem neusten ![]()
Ja ist es ![]()
Und zwar mit dieser Funktion: https://wiki.sa-mp.com/wiki/SetObjectMaterialText_DE
DIALOG_4ALL_SONSTIGES
Wie hast n das definiert? ![]()
if(GetPlayerVirtualWorld(i) == 2) continue;
Die Abfrage muss lauten:
if(GetPlayerVirtualWorld(i) != 2) continue;