Skocz do zawartości

[Filterscripts] System salonu samochodowego - spawn pojazdów


Maxi
 Udostępnij

Rekomendowane odpowiedzi

Cześć, przedstawiam wam system salonu, zreszto nie wiem czy takiego salonu lecz spawn pojazdów...

cmd:salon przy danej pozycji wyświetla się gui i spawnuje się pojazd.

Minus taki, że gdy gracz wyjdzie z gui pokazuje się stan na wolny + drugi pojazd innego gracza gdy odrazu chce zrespić pojazd zrespi się na tym samym pojeździe (może wybuchnąć).

Ustawianie pozycji:

new Float:SamochodyPos[ILOSC_SAMOCHODOW][SpisSamochody] = do ustawienia textu, pickupa, mapicona cmd:salon
new Float:SamochodySpawnPos[ILOSC_SAMOCHODOWSPAWN][SpisSpawnSamochody] = ustawienie spawnu pojazdu

Kod:

new Text3D:TworzeTruck3d[Sloty][MAX_VEHICLES];
new Text3D:TworzeNaczepe3d[Sloty][MAX_VEHICLES];

new TworzeTruck[Sloty];
new TworzeNaczepe[Sloty];
new StworzoneTN[Sloty];
new CzyTworzy[Sloty];

enum SpisSamochody
{
    uid,
    Float: pos1,
    Float: pos2,
    Float: pos3
}
#define ILOSC_SAMOCHODOW 2
new Float:SamochodyPos[ILOSC_SAMOCHODOW][SpisSamochody] =
{
    {1, 1705.1361, 931.6579, 10.8203},
    {2, 1704.0949, 950.1295, 10.8203}
};

enum SpisSpawnSamochody
{
    s1,
    Float: s2,
    Float: s3,
    Float: s4,
    Float: s5,
    s6,
    s7,
    s8
}
#define ILOSC_SAMOCHODOWSPAWN 4
new Float:SamochodySpawnPos[ILOSC_SAMOCHODOWSPAWN][SpisSpawnSamochody] =
{
    {515,1634.3000000,959.0999800,11.9000000,270.2470000,88,89,15},
    {450,1633.2000000,964.2999900,11.5000000,270.0000000,245,245,15},
    {482,1634.3000000,959.0999800,11.9000000,270.2470000,88,89,15},
    {0,0.0,0.0,0.0,0.0,0,0,0}
};

new SAMOCHODYICONGLOBAL[Sloty];
new Text3D:SAMOCHODYTEXTGLOBAL[Sloty];
new SAMOCHODYPICKUP[Sloty];

stock LoadSamochody()
{
    Code_ExTimer_Begin(salonsamochodowy);
    for(new a=0; a<ILOSC_SAMOCHODOW; a++)
    {
        DestroyDynamic3DTextLabel(SAMOCHODYTEXTGLOBAL[a]);
        DestroyDynamicMapIcon(SAMOCHODYICONGLOBAL[a]);
        DestroyDynamicPickup(SAMOCHODYPICKUP[a]);
    }
    for(new i=0; i<ILOSC_SAMOCHODOW; i++)
    {
        format(String256, sizeof(String256), ""K_POMARANCZ"Salon samochodowy [%d]\nStan: "C_JZIELONY"Wolny\n"C_ZOLTY"/salon", SamochodyPos[i][uid]);
        SAMOCHODYTEXTGLOBAL[i] = CreateDynamic3DTextLabel(String256, CZERWONY, SamochodyPos[i][pos1], SamochodyPos[i][pos2], SamochodyPos[i][pos3], 25.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, MAPICON, -1);
        SAMOCHODYICONGLOBAL[i] = CreateDynamicMapIcon(SamochodyPos[i][pos1], SamochodyPos[i][pos2], SamochodyPos[i][pos3], 51, -1, -1, -1, -1, MAPICON, MAPICON_LOCAL, -1);
        SAMOCHODYPICKUP[i] = CreateDynamicPickup(1318, 0, SamochodyPos[i][pos1], SamochodyPos[i][pos2], SamochodyPos[i][pos3], -1, -1, -1, MAPICON, -1);
        CzyTworzy[i]=0;
    }
    printf("Załadowano %d Salonów Samochodowych [%d ms]", ILOSC_SAMOCHODOW, Code_ExTimer_End(salonsamochodowy));
    return 1;
}
stock SalonTextWolny()
{
    for(new i=0; i<ILOSC_SAMOCHODOW; ++i)
    {
        format(String256, sizeof(String256), ""K_POMARANCZ"Salon samochodowy [%d]\nStan: "C_JZIELONY"Wolny\n"C_ZOLTY"/salon", SamochodyPos[i][uid]);
        UpdateDynamic3DTextLabelText(SAMOCHODYTEXTGLOBAL[i], CZERWONY, String256);
        CzyTworzy[i]=0;
    }
    return 1;
}

CMD:salon(playerid, params[])
{
    for(new i=0; i<ILOSC_SAMOCHODOW; ++i)
    {
        if(DoInRange(2.0, playerid, SamochodyPos[i][pos1], SamochodyPos[i][pos2], SamochodyPos[i][pos3]))
        {
            if(CzyTworzy[i]==0)
            {
                if(StworzoneTN[playerid]==0)
                {
                    if(SamochodyPos[i][uid]==1)
                    {
                        ShowPlayerDialog(playerid, PANEL_CAR, DIALOG_STYLE_TABLIST_HEADERS, "Salon samochodowy",
                        "Typ\tNazwa\n\
                        Tir + Naczepa\tRoadtrain\n\
                        Dostawczy\tBuritto",\
                        "Ok", "Anuluj");
                        
                        format(String256, sizeof(String256), ""K_POMARANCZ"Salon samochodowy [%d]\nStan: "C_CZERWONY"Zajety\n"C_ZOLTY"/salon", SamochodyPos[i][uid]);
                        UpdateDynamic3DTextLabelText(SAMOCHODYTEXTGLOBAL[i], CZERWONY, String256);
                        
                        CzyTworzy[i]=1;
                    }
                    else if(SamochodyPos[i][uid]==2)
                    {
                        ShowPlayerDialog(playerid, PANEL_CAR2, DIALOG_STYLE_TABLIST_HEADERS, "Salon samochodowy",
                        "Typ\tNazwa\n\
                        Tir + Naczepa\tRoadtrain\n\
                        Dostawczy\tBuritto",\
                        "Ok", "Anuluj");
                        
                        format(String256, sizeof(String256), ""K_POMARANCZ"Salon samochodowy [%d]\nStan: "C_CZERWONY"Zajety\n"C_ZOLTY"/salon", SamochodyPos[i][uid]);
                        UpdateDynamic3DTextLabelText(SAMOCHODYTEXTGLOBAL[i], CZERWONY, String256);
                        
                        CzyTworzy[i]=1;
                    }
                }
                else if(StworzoneTN[playerid]==1)
                {
                    ShowPlayerDialog(playerid, PANEL_CARDEL, DIALOG_STYLE_LIST, "Salon samochodowy",
                    ""C_CZERWONY"Posiadasz już zrespiony samochód!\n\
                    "C_BIALY"Usuń samochód",\
                    "Ok", "Anuluj");
                    
                    format(String256, sizeof(String256), ""K_POMARANCZ"Salon samochodowy [%d]\nStan: "C_CZERWONY"Zajety\n"C_ZOLTY"/salon", SamochodyPos[i][uid]);
                    UpdateDynamic3DTextLabelText(SAMOCHODYTEXTGLOBAL[i], CZERWONY, String256);
                    
                    CzyTworzy[i]=1;
                }
            }
            else if(CzyTworzy[i]==1)
            {
                ShowInfo(playerid, "Salon jest chwilowo zajęty! Poczekaj!");
            }
        }
        else
        {
            ShowInfo(playerid, "Musisz znajdować sie przy Salonie Samochodowym!");
        }
    }
    return 1;
}

Dialogi:

if(dialogid == PANEL_CAR)
	{
		new Float:Pos[4];
		GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]); GetPlayerFacingAngle(playerid, Pos[3]);
		if(!response) return SalonTextWolny();
		switch(listitem)
		{
			case 0:
			{
				TworzeTruck[playerid] = CreateVehicle(SamochodySpawnPos[1][s1],SamochodySpawnPos[1][s2],SamochodySpawnPos[1][s3],SamochodySpawnPos[1][s4],SamochodySpawnPos[1][s5],SamochodySpawnPos[1][s6],SamochodySpawnPos[1][s7],SamochodySpawnPos[1][s8]); //Roadtrain
				SetVehicleNumberPlate(TworzeTruck[playerid], "Salon");
				format(String512, sizeof(String512), ""C_ZOLTY"*"K_POMARANCZ"Truck Gracza: "C_JZIELONY"%s"C_ZOLTY"*", PlayerName(playerid));
				TworzeTruck3d[playerid][TworzeTruck[playerid]] = Create3DTextLabel(String512, -1, 0.0, 0.0, 0.0, 25.0, 0, 0);
				Attach3DTextLabelToVehicle(TworzeTruck3d[playerid][TworzeTruck[playerid]], TworzeTruck[playerid], 0.0, 0.0, 0.0);
				
				TworzeNaczepe[playerid] = CreateVehicle(SamochodySpawnPos[2][s1],SamochodySpawnPos[2][s2],SamochodySpawnPos[2][s3],SamochodySpawnPos[2][s4],SamochodySpawnPos[2][s5],SamochodySpawnPos[2][s6],SamochodySpawnPos[2][s7],SamochodySpawnPos[2][s8]); //Trailer 2
				format(String512, sizeof(String512), ""C_ZOLTY"*"K_POMARANCZ"Naczepa Gracza: "C_JZIELONY"%s"C_ZOLTY"*", PlayerName(playerid));
				TworzeNaczepe3d[playerid][TworzeNaczepe[playerid]] = Create3DTextLabel(String512, -1, 0.0, 0.0, 0.0, 25.0, 0, 0);
				Attach3DTextLabelToVehicle(TworzeNaczepe3d[playerid][TworzeNaczepe[playerid]], TworzeNaczepe[playerid], 0.0, 0.0, 0.0);
				StworzoneTN[playerid]=1;
				SalonTextWolny();
			}
			case 1:
			{
				TworzeTruck[playerid] = CreateVehicle(SamochodySpawnPos[3][s1],SamochodySpawnPos[3][s2],SamochodySpawnPos[3][s3],SamochodySpawnPos[3][s4],SamochodySpawnPos[3][s5],SamochodySpawnPos[3][s6],SamochodySpawnPos[3][s7],SamochodySpawnPos[3][s8]); //Buritto
				SetVehicleNumberPlate(TworzeTruck[playerid], "Salon");
				format(String512, sizeof(String512), ""C_ZOLTY"*"K_POMARANCZ"Dostawczak Gracza: "C_JZIELONY"%s"C_ZOLTY"*", PlayerName(playerid));
				TworzeTruck3d[playerid][TworzeTruck[playerid]] = Create3DTextLabel(String512, -1, 0.0, 0.0, 0.0, 25.0, 0, 0);
				Attach3DTextLabelToVehicle(TworzeTruck3d[playerid][TworzeTruck[playerid]], TworzeTruck[playerid], 0.0, 0.0, 0.0);
			
				StworzoneTN[playerid]=1;
				SalonTextWolny();
			}
		}
		return 1;
	}
	if(dialogid == PANEL_CAR2)
	{
		new Float:Pos[4];
		GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]); GetPlayerFacingAngle(playerid, Pos[3]);
		if(!response) return SalonTextWolny();
		switch(listitem)
		{
			case 0:
			{
				TworzeTruck[playerid] = CreateVehicle(SamochodySpawnPos[1][s1],SamochodySpawnPos[1][s2],SamochodySpawnPos[1][s3],SamochodySpawnPos[1][s4],SamochodySpawnPos[1][s5],SamochodySpawnPos[1][s6],SamochodySpawnPos[1][s7],SamochodySpawnPos[1][s8]); //Roadtrain
				SetVehicleNumberPlate(TworzeTruck[playerid], "Salon");
				format(String512, sizeof(String512), ""C_ZOLTY"*"K_POMARANCZ"Truck Gracza: "C_JZIELONY"%s"C_ZOLTY"*", PlayerName(playerid));
				TworzeTruck3d[playerid][TworzeTruck[playerid]] = Create3DTextLabel(String512, -1, 0.0, 0.0, 0.0, 25.0, 0, 0);
				Attach3DTextLabelToVehicle(TworzeTruck3d[playerid][TworzeTruck[playerid]], TworzeTruck[playerid], 0.0, 0.0, 0.0);
				
				TworzeNaczepe[playerid] = CreateVehicle(SamochodySpawnPos[2][s1],SamochodySpawnPos[2][s2],SamochodySpawnPos[2][s3],SamochodySpawnPos[2][s4],SamochodySpawnPos[2][s5],SamochodySpawnPos[2][s6],SamochodySpawnPos[2][s7],SamochodySpawnPos[2][s8]); //Trailer 2
				format(String512, sizeof(String512), ""C_ZOLTY"*"K_POMARANCZ"Naczepa Gracza: "C_JZIELONY"%s"C_ZOLTY"*", PlayerName(playerid));
				TworzeNaczepe3d[playerid][TworzeNaczepe[playerid]] = Create3DTextLabel(String512, -1, 0.0, 0.0, 0.0, 25.0, 0, 0);
				Attach3DTextLabelToVehicle(TworzeNaczepe3d[playerid][TworzeNaczepe[playerid]], TworzeNaczepe[playerid], 0.0, 0.0, 0.0);
				StworzoneTN[playerid]=1;
				SalonTextWolny();
			}
			case 1:
			{
				TworzeTruck[playerid] = CreateVehicle(SamochodySpawnPos[3][s1],SamochodySpawnPos[3][s2],SamochodySpawnPos[3][s3],SamochodySpawnPos[3][s4],SamochodySpawnPos[3][s5],SamochodySpawnPos[3][s6],SamochodySpawnPos[3][s7],SamochodySpawnPos[3][s8]); //Buritto
				SetVehicleNumberPlate(TworzeTruck[playerid], "Salon");
				format(String512, sizeof(String512), ""C_ZOLTY"*"K_POMARANCZ"Dostawczak Gracza: "C_JZIELONY"%s"C_ZOLTY"*", PlayerName(playerid));
				TworzeTruck3d[playerid][TworzeTruck[playerid]] = Create3DTextLabel(String512, -1, 0.0, 0.0, 0.0, 25.0, 0, 0);
				Attach3DTextLabelToVehicle(TworzeTruck3d[playerid][TworzeTruck[playerid]], TworzeTruck[playerid], 0.0, 0.0, 0.0);
			
				StworzoneTN[playerid]=1;
				SalonTextWolny();
			}
		}
		return 1;
	}
	if(dialogid == PANEL_CARDEL)
	{
		if(!response) return SalonTextWolny();
		switch(listitem)
		{
			case 0:
			{
				ShowPlayerDialog(playerid, PANEL_CARDEL, DIALOG_STYLE_LIST, "Panel spawn samochodow", ""C_CZERWONY"Posiadasz już zrespiony samochód!\n"C_BIALY"Usuń samochód", "Ok", "Anuluj");
			}
			case 1:
			{
				DestroyDynamic3DTextLabel(TworzeTruck3d[playerid][TworzeTruck[playerid]]);
				DestroyVehicle(TworzeTruck[playerid]);
				
				DestroyDynamic3DTextLabel(TworzeNaczepe3d[playerid][TworzeNaczepe[playerid]]);
				DestroyVehicle(TworzeNaczepe[playerid]);
				StworzoneTN[playerid]=0;
				SalonTextWolny();
			}
		}
		return 1;
	}

Tak, wiem kod nie należy do perfekcji. Wykopane z dysku może ktoś tego czegoś użyje.

Odnośnik do komentarza
Udostępnij na innych stronach

Problem wciąż nierozwiązany? Dodaj swoją odpowiedź

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto. Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
 Udostępnij

×