DiesesFILTERSCRIPT ist nur mit den nötigsten publics versehen der rest wurde entfernt:
Würde mich über Kritik Verbesserungsvorschläge u.s.w. freuen
Beschreibung:
-/v [VehicleID(400-611)] :
Spawn ein Auto auf dem nächst freien Slot.
-/ruf [SlotID(1-3)]:
Portet das Auto auf dem Slot zu sich her und portet einen als Fahrer rein
-/delslot [SlotID(1-3)]:
Löscht das Fahrzeug auf diesem Slot und Man kann wieder ein Auto darauf spawnen
-wenn der Spieler offline geht wir das/die Auto/-s gelöscht
Also ist nicht der ganze Server vermüllt
-wenn das Auto kaputt geht wird der Slot automatisch wieder frei und man kann ein neues auf diesen Slot spawnen:
Muss es nicht wieder Rufen und kann einfach ein neues darauf Spawnen
-Beim betreten wir angezeigt von wem das Auto gespawnt wurde und ob es das eigene ist(nicht bei /ruf)
ScriptCode:
#define FILTERSCRIPT
#include <a_samp>
#if defined FILTERSCRIPT
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" Blank Filterscript by your name here");
print("--------------------------------------\n");
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
#else
main()
{
print("\n----------------------------------");
print(" Blank Gamemode by your name here");
print("----------------------------------\n");
}
#endif
new Auto1[MAX_PLAYERS];
new Auto3[MAX_PLAYERS];
new Auto2[MAX_PLAYERS];
new Auto11[MAX_PLAYERS];
new Auto31[MAX_PLAYERS];
new Auto21[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
SendClientMessage(playerid,0xffaaffaa,"Filterscript 3Slot Autospawn by Blackybecks loaded");// darf rausgemacht werden ;D
Auto1[playerid]=999;
Auto2[playerid]=999;
Auto3[playerid]=999;
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
DestroyVehicle(Auto11[playerid]);
DestroyVehicle(Auto21[playerid]);
DestroyVehicle(Auto31[playerid]);
return 1;
}
public OnVehicleDeath(vehicleid, killerid)
{
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(vehicleid == Auto11[i])
{
DestroyVehicle(Auto11[i]);
Auto1[i]=999;
SendClientMessage(i,0xddaaffff,"Slot 1 ist nun frei");
}
else if(vehicleid == Auto21[i])
{
DestroyVehicle(Auto21[i]);
Auto2[i]=999;
SendClientMessage(i,0xddaaffff,"Slot 2 ist nun frei");
}
else if(vehicleid == Auto31[i])
{
DestroyVehicle(Auto31[i]);
Auto3[i]=999;
SendClientMessage(i,0xddaaffff,"Slot 3 ist nun frei");
}
}
}
return 1;
}
new slot[MAX_PLAYERS];
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(strget(cmdtext,0),"/v",true)==0)
{
new vID = strval(strget(cmdtext,1));
if( vID <= 611 && vID >= 400)
{
new Float:X,Float:Y,Float:Z,Float:Roat;
new rand1=random(10);
new rand2=random(10);
GetPlayerPos(playerid,X,Y,Z);
GetPlayerFacingAngle(playerid,Roat);
if(Auto1[playerid]== 999)
{
Auto11[playerid]=CreateVehicle(vID,X,Y,Z,Roat,rand1,rand2,-1);
PutPlayerInVehicle(playerid,Auto11[playerid],0);
slot[playerid]=1;
new string[128];
Auto1[playerid]=1;
format(string,sizeof(string),"Sie haben ein Auto auf Slot %i gespawnt 1.Farbe: %i 2.Farbe: %i",slot[playerid],rand1,rand2);
SendClientMessage(playerid,0xddaaffff,string);
}
else if(Auto2[playerid]== 999)
{
Auto21[playerid]=CreateVehicle(vID,X,Y,Z,Roat,rand1,rand2,-1);
PutPlayerInVehicle(playerid,Auto21[playerid],0);
slot[playerid]=2;
new string[128];
Auto2[playerid]=1;
format(string,sizeof(string),"Sie haben ein Auto auf Slot %i gespawnt 1.Farbe: %i 2.Farbe: %i",slot[playerid],rand1,rand2);
SendClientMessage(playerid,0xddaaffff,string);
}
else if(Auto3[playerid]== 999)
{
Auto31[playerid]=CreateVehicle(vID,X,Y,Z,Roat,rand1,rand2,-1);
PutPlayerInVehicle(playerid,Auto31[playerid],0);
Auto3[playerid]=1;
slot[playerid]=3;
new string[128];
format(string,sizeof(string),"Sie haben ein Auto auf Slot %i gespawnt 1.Farbe: %i 2.Farbe: %i",slot[playerid],rand1,rand2);
SendClientMessage(playerid,0xddaaffff,string);
}
else
{
SendClientMessage(playerid,0xffaaffaa,"Sie Haben sich schon 3 Autos gerufe /ruf[1-3]um es zu holen");
}
return 1;
}
else
{
SendClientMessage(playerid,0xffaaffaa,"Benutze /v [VehicleID(400-611)]");
}
return 1;
}
if(strcmp(strget(cmdtext,0),"/delslot",true)==0)
{
new slot1 = strval(strget(cmdtext,1));
if(slot1 == 1){
if(Auto1[playerid]!=999){
DestroyVehicle(Auto11[playerid]);
Auto1[playerid]=999;
SendClientMessage(playerid,0xddaaffff,"Slot 1 ist nun frei");
}
else
{
SendClientMessage(playerid,0xddaaffff,"Slot 1 ist schon frei");
}
}
else if(slot1 == 2){
if(Auto1[playerid]!=999){
DestroyVehicle(Auto21[playerid]);
Auto2[playerid]=999;
SendClientMessage(playerid,0xddaaffff,"Slot 2 ist nun frei");
}
else
{
SendClientMessage(playerid,0xddaaffff,"Slot 2 ist schon frei");
}
}
else if(slot1 == 3){
if(Auto1[playerid]!=999){
DestroyVehicle(Auto31[playerid]);
Auto3[playerid]=999;
SendClientMessage(playerid,0xddaaffff,"Slot 3 ist nun frei");
}
else
{
SendClientMessage(playerid,0xddaaffff,"Slot 3 ist schon frei");
}
}
else
{
SendClientMessage(playerid,0xffaaffaa,"Benutze /delslot [Slot (1-3)]");
}
return 1;
}
if(strcmp(strget(cmdtext,0),"/ruf",true)==0)
{
new slot1 = strval(strget(cmdtext,1));
new Float:X,Float:Y,Float:Z,Float:Roat;
GetPlayerPos(playerid,X,Y,Z);
GetPlayerFacingAngle(playerid,Roat);
if(slot1 == 1)
{
if(Auto1[playerid] != 999)
{
PutPlayerInVehicle(playerid,Auto11[playerid],0);
SetVehiclePos(Auto11[playerid],X,Y,Z);
new string[128];
format(string,sizeof(string),"Sie haben Slot %i gerufen",slot1);
SendClientMessage(playerid,0xddaaffff,string);
}
else
{
SendClientMessage(playerid,0xffaaffaa,"Slot nicht besetzt");
}
}
else if(slot1 == 2)
{
if(Auto2[playerid] != 999)
{
PutPlayerInVehicle(playerid,Auto21[playerid],0);
SetVehiclePos(Auto21[playerid],X,Y,Z);
new string[128];
format(string,sizeof(string),"Sie haben Slot %i gerufen",slot1);
SendClientMessage(playerid,0xddaaffff,string);
}
else
{
SendClientMessage(playerid,0xffaaffaa,"Slot nicht besetzt");
}
}
else if(slot1 == 3)
{
if(Auto3[playerid] != 999)
{
PutPlayerInVehicle(playerid,Auto31[playerid],0);
SetVehiclePos(Auto31[playerid],X,Y,Z);
new string[128];
format(string,sizeof(string),"Sie haben Slot %i gerufen",slot1);
SendClientMessage(playerid,0xddaaffff,string);
}
else
{
SendClientMessage(playerid,0xffaaffaa,"Slot nicht besetzt");
}
}
else
{
SendClientMessage(playerid,0xffaaffaa,"Benutze /ruf [Slot (1-3)]");
}
return 1;
}
return 0;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
for(new i=0; i<MAX_PLAYERS; i++)
{
if(vehicleid == Auto21[i]||vehicleid == Auto31[i]||vehicleid == Auto11[i])
{
if(IsPlayerConnected(i))
{
if(playerid == i)
{
new pname[MAX_PLAYER_NAME];
GetPlayerName(i,pname,sizeof(pname));
new carstr[128];
format(carstr,sizeof(carstr),"Willkommen zurück in ihrem Auto: %s",pname);
SendClientMessage(playerid,0xffaaffaa,carstr);
}
else
{
new pname[MAX_PLAYER_NAME];
GetPlayerName(i,pname,sizeof(pname));
new carstr[128];
format(carstr,sizeof(carstr),"Das Auto wurde von %s gespawnt",pname);
SendClientMessage(playerid,0xffaaffaa,carstr);
}
}
else
{
DestroyVehicle(Auto31[i]);
DestroyVehicle(Auto21[i]);
DestroyVehicle(Auto11[i]);
SendClientMessage(i,0xddaaffff,"Owner war offline und wurde daher gelöscht");
}
}
}
return 1;
}
stock strget(strx[], pos, search = ' ') {
new arg, ret[128], idxx;
for (new i = 0; i < strlen(strx); i++) {
if(strx[i] == search || i == strlen(strx) || strx[i + 1] == 10) {
arg++;
if (arg == pos + 1){
ret[i-idxx] = EOS;
return ret;
} else if (arg == pos)
idxx= i+1;
}
else if (arg == pos)
ret[i - idxx] = strx[i];
}
return ret;
}
MFG Blackybecks