Prüfung, ob es ein Feuerwehrauto ist:
if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 407) // 407 ist das Löschfahrzeug
if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 544) //544 ist das mit der Leiter
Prüfung, ob es ein Feuerwehrauto ist:
if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 407) // 407 ist das Löschfahrzeug
if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 544) //544 ist das mit der Leiter
new VehicleGespawnt[MAX_VEHICLES];
// Dein /spawn CMD... (füg es in deinen CMD ein)
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/spawn", cmdtext, true, 10) == 0)
{
//...
VehicleGespawnt[GetPlayerVehicleID(playerid)] = 1;
return 1;
}
return 0;
}
public OnVehicleSpawn(vehicleid)
{
if(VehicleGespawnt[vehicleid] == 1)
{
DestroyVehicle(vehicleid);
VehicleGespawnt[vehicleid] = 0;
}
return 1;
}
if(carid == 581 || carid == 522 || carid == 461 || ... usw)
Mir ist jetzt nicht genau klar, was du meinst. Hab mal zwei Möglichkeiten:
1. ShowNameTags(1); -> Wiki-Eintrag
2. Befehl: /markierung ID (Beispiel: /markierung 2)
strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
index++;
}
new offset = index;
new result[20];
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[128], idx;
cmd = strtok(cmdtext, idx);
if(strcmp(cmd, "/markierung", true) == 0)
{
new tmp[128];
tmp = strtok(cmdtext, idx);
if(strlen(tmp) == 0) return SendClientMessage(playerid, 0xFFFFFFFF, ">> Benutzung: /markierung [playerid]");
new Float:X,Float:Y,Float:Z;
GetPlayerPos(strval(tmp),X,Y,Z);
SetPlayerCheckpoint(playerid, X, Y, Z, 3.0);
return 1;
}
return 0;
}
public OnPlayerEnterCheckpoint(playerid)
{
DisablePlayerCheckpoint(playerid);
return 1;
}
Klar, poste doch mal deinen /jail CMD.
Ungetestet:
new Skin[MAX_PLAYERS], Skinpickup;
public OnFilterScriptInit()
{
Skinpickup = CreatePickup(1275, 23, PositionX, PositionY, PositionZ, -1); // Position-X usw. an deine Koordinaten anpassen ;)
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) == 1)
{
Skin[i] = GetPlayerSkin(i);
}
}
return 1;
}
public OnFilterScriptExit()
{
DestroyPickup(Skinpickup);
return 1;
}
public OnPlayerSpawn(playerid)
{
Skin[playerid] = GetPlayerSkin(playerid);
return 1;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
if(pickupid == Skinpickup)
{
if(GetPlayerSkin != 45)
{
SetPlayerSkin(playerid,45);
return 1;
}
else
{
SetPlayerSkin(playerid,Skin[playerid]);
return 1;
}
}
return 1;
}
Können da so viele einsteigen wie wollen?
Ja, die Anzahl der Beifahrer ist unbegrenzt.
Pastebin link fehlt
Edit: Pastebin-Link eingefügt
Klar, das geht ganz normal, anstatt G zu drücken einfach normal mit Enter einsteigen.
Hab eben meine Version hochgeladen -> Link
Viel Spaß
Habe seit längerem ein selbstgemachtes Passengerscript für den Shamal, daher habe ich beschlossen, meins zu veröffentlichen.
Was macht dieses Script?
- Mithilfe von diesem Script kannst du, wenn du neben einem Shamal stehst, den Interior des Shamals betreten. Dafür einfach ganz normal die Taste drücken, mit der du sonst in Fahrzeuge als Passagier einsteigst (Standart: G).
- Jeder Shamal hat seine eigene VirtualWorld, daher wird es wohl keine Probleme mit anderen "Shamals" geben. Der Eingang zur Fahrerkabine ist jedoch durch ein Objekt zugemappt (damit es authentischer wirkt).
- Den Shamal kannst du erst wieder verlassen, wenn du neben dem Ausgang stehst, dafür drückst du einfach die Taste mit der du in Fahrzeuge ein- und aussteigst (Standart: F oder Enter).
- Aber Achtung, jagt der Pilot das Flugzeug hoch, indem du als Passagier drin sitzt, kommt es auch bei dir zu einer großen Explosion ;).
Fragen, Anregungen, Lob und Kritik sind erwünscht. Falls ihr Bugs findet, könnt ihr sie mir auch melden ;). Ihr dürft das Script verändern, aber lasst bitte die Credits stehen.
Screenshots:
Download:
Dann versuch doch mal selber so einen Code zu scripten, so schwer ist es nicht.
Tipps: 1. Wenn man g gedrückt hat (public OnPlayerKeyStateChange) 2. lass eine Schleife laufen ob sich in der Nähe vom Spieler ein Shamal befindet, wenn ja Schleife abbrechen und Spieler porten
Ich versteh ehrlich gesagt nicht, was du jetzt willst?^^
Wenn du den Pickuptyp angibst, einfach Typ 23 nehmen:
Beispiel:
CreatePickup(1242, 23, 1503.3359, 1432.3585, 10.1191, -1);
Am besten du nimmst dir mal etwas Zeit und schaust mal in dein ganzes Script rein, vielleicht erkennst du ja den Fehler... denn so wie du es schilderst, kann das eigentlich nicht sein^^
Ungetestet:
new Abgeschlossen[MAX_VEHICLES];
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(cmdtext,"/lock",true))
{
if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,0xFFFFFFAA,"Du musst in einem Fahrzeug sitzen.");
if(GetPlayerVehicleSeat(playerid) > 0) return SendClientMessage(playerid,0xFFFFFFAA,"Du musst der Fahrer eines Fahrzeuges sein.");
// Die Fraktionscar-Überprüfung musst du hier selber hinmachen, da ich von GF keine Ahnung habe
if(Abgeschlossen[GetPlayerVehicleID(playerid)] == 0)
{
for(new i=0; i < MAX_PLAYERS; i++)
{
if(i != playerid)
{
SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),i,0,1);
}
}
Abgeschlossen[GetPlayerVehicleID(playerid)] = 1;
SendClientMessage(playerid,0xFFFFFFAA,"Dein Fahrzeug wurde abgeschlossen.");
}
else
{
Abgeschlossen[GetPlayerVehicleID(playerid)] = 0;
SendClientMessage(playerid,0xFFFFFFAA,"Dein Fahrzeug wurde aufgeschlossen.");
for(new i=0; i < MAX_PLAYERS; i++)
{
SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),i,0,0);
}
}
return 1;
}
return 0;
}
public OnVehicleSpawn(vehicleid)
{
Abgeschlossen[vehicleid] = 0;
for(new i=0; i < MAX_PLAYERS; i++)
{
SetVehicleParamsForPlayer(vehicleid,i,0,0);
}
return 1;
}
Edit: Verbessert
Nein, du kannst dann nicht getötet werden. (Solange das Menü offen ist)
Ja doch gibt es, nur hat man bei dem Menü was du meinst das Problem, dass man während man in diesem Menü ist, Godmode hat. In dem Dialogen jedoch nicht.