Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2015-02-04, 13:22


Avira15







Wiek: 33
Na forum: 4921 dni
Posty: 34



Respekt: 50

Posiadam system aut by Inferno. Oto kod:

Kod:

/*
*CAR SYSTEM by William/Inferno
*/

#include <a_samp>
#include <zcmd>
#include <Double-O-Files>
#include <sscanf>
#include <streamer>
#include <foreach>
#pragma unused ret_memcpy
//kolory textow
#define KOLOR_NIEWIDZIALNY 0xFFFFFF00
#define KOLOR_BIALY 0xFFFFFFFF
#define KOLOR_CZARNY 0x000000FF
#define KOLOR_ZOLTY 0xFFFF00FF
#define KOLOR_POMARANCZOWY 0xFF8040FF
#define KOLOR_CZERWONY 0xFF2F2FFF
#define KOLOR_ROZOWY 0xFF80FFFF
#define KOLOR_NIEBIESKI 0x2B95FFFF
#define KOLOR_BRAZOWY 0x9D4F4FFF
#define KOLOR_ZIELONY 0x00FF40FF
#define KOLOR_TURKUSOWY 0x00FFFFFF
#define KOLOR_SZARY 0xC0C0C0FF
#define KOLOR_FILOETOWY 0x800040FF
#define KOLOR_BEZOWY 0xFFFFA6FF
#define KOLOR_BORDOWY 0x800000FF

//kolory do zmieniania w czacie,textcie 3d
#define C_BIALY "{FFFFFF}"
#define C_CZARNY "{000000}"
#define C_ZOLTY "{FFFF00}"
#define C_POMARANCZOWY "{FF7F50}"
#define C_CZERWONY "{FF0000}"
#define C_ROZOWY "{FF1493}"
#define C_NIEBIESKI "{4169E1}"
#define C_BRAZOWY "{A0522D}"
#define C_ZIELONY "{ADFF2F}"
#define C_TURKUSOWY "{00FFFF}"
#define C_SZARY "{C0C0C0}"
#define C_FILOETOWY "{BA55D3}"
#define C_BEZOWY "{FFDEAD}"
#define C_BORDOWY "{B22222}"

//#pragma unused strtok
#pragma tabsize 0
#define SPAWN 999999999999//czas respawnu pojazd?w
new dstring[128];

new IdWozu[MAX_PLAYERS];
new TworzenieWozu;

#define GUI_NIEKUPIONE 2800
#define GUI_MENUCAR 2801
#define GUI_MENUCAR_RESPAWNTIME 2802

#define ILOSC_WOZOW 30
#define LIMIT_SAMOCHODOW 2000
#define WOZY_FILE "Truck/Wozy/%d.ini"

enum privcar
{
cAktywny,
cKupiony,
cWlasciciel[64],
cModel,
Float: cX,
Float: cY,
Float: cZ,
Float: cRX,
cColor1,
cColor2,
cRespawn,
cKoszt,
cLock
}

public OnFilterScriptInit()
{
WczytajWozy();
print("CarSystem by William LOADED");
return 1;
}

new PrivateCar[ILOSC_WOZOW][privcar];
new KupneWozy[ILOSC_WOZOW];

public OnFilterScriptExit()
{
print("CarSystem by William UNLOADED");
DOF_Exit();
for(new nr = 0; nr < ILOSC_WOZOW; nr++)
{
DestroyVehicle(KupneWozy[nr]);
}
return 1;
}


forward WczytajWozy();
public WczytajWozy()
{
new file[25];
for(new nr = 0; nr < ILOSC_WOZOW; nr++)
{
format(file,sizeof(file),WOZY_FILE,nr);
if(DOF_FileExists(file))
{
PrivateCar[nr][cAktywny]=DOF_GetInt(file,"Aktywny");
PrivateCar[nr][cKupiony]=DOF_GetInt(file,"Kupiony");
format(PrivateCar[nr][cWlasciciel], MAX_PLAYER_NAME, "f", DOF_GetString(file, "Wlasciciel"));
PrivateCar[nr][cModel]=DOF_GetInt(file,"Model");
PrivateCar[nr][cX]=DOF_GetFloat(file,"X");
PrivateCar[nr][cY]=DOF_GetFloat(file,"Y");
PrivateCar[nr][cZ]=DOF_GetFloat(file,"Z");
PrivateCar[nr][cRX]=DOF_GetFloat(file,"rX");
PrivateCar[nr][cColor1]=DOF_GetInt(file,"Color1");
PrivateCar[nr][cColor2]=DOF_GetInt(file,"Color2");
PrivateCar[nr][cRespawn]=DOF_GetInt(file,"Respawn");
PrivateCar[nr][cKoszt]=DOF_GetInt(file,"Koszt");
PrivateCar[nr][cLock]=DOF_GetInt(file,"Lock");

KupneWozy[nr] = AddStaticVehicleEx(PrivateCar[nr][cModel],PrivateCar[nr][cX],PrivateCar[nr][cY],PrivateCar[nr][cZ],PrivateCar[nr][cRX],PrivateCar[nr][cColor1],PrivateCar[nr][cColor2],PrivateCar[nr][cRespawn]);
printf("Zaladowano Prywatny Samochod: %d", nr);
}
else
{
PrivateCar[nr][cAktywny] = 0;
}
}
return 1;
}

forward ZapiszWoz(nr);
public ZapiszWoz(nr)
{
new file[25];
format(file,sizeof(file),WOZY_FILE,nr);
if(!DOF_FileExists(file))
{
DOF_CreateFile(file);
}
DOF_SetInt(file, "Aktywny", PrivateCar[nr][cAktywny]);
DOF_SetInt(file,"Kupiony", PrivateCar[nr][cKupiony]);
DOF_SetString(file,"Wlasciciel", PrivateCar[nr][cWlasciciel]);
DOF_SetInt(file,"Model", PrivateCar[nr][cModel]);
DOF_SetFloat(file,"X", PrivateCar[nr][cX]);
DOF_SetFloat(file,"Y", PrivateCar[nr][cY]);
DOF_SetFloat(file,"Z", PrivateCar[nr][cZ]);
DOF_SetFloat(file,"rX", PrivateCar[nr][cRX]);
DOF_SetInt(file,"Color1", PrivateCar[nr][cColor1]);
DOF_SetInt(file,"Color2", PrivateCar[nr][cColor2]);
DOF_SetInt(file,"Respawn", PrivateCar[nr][cRespawn]);
DOF_SetInt(file,"Koszt", PrivateCar[nr][cKoszt]);
DOF_SetInt(file,"Lock", PrivateCar[nr][cLock]);
DOF_SaveFile();
return 1;
}

stock Nick(playerid)//zwraca nick
{
new nick[MAX_PLAYER_NAME];
GetPlayerName(playerid, nick, sizeof(nick));
return nick;
}

CMD:ccar(playerid, params[])
{
new idwozu, koszt;
if(sscanf(params, "dd", idwozu, koszt))
return 1;

TworzenieWozu = 1;
for(new nr = 0; nr < ILOSC_WOZOW; nr++)
{
if(TworzenieWozu == 1)
{
new file[25];
format(file,sizeof(file),WOZY_FILE,nr);
if(!DOF_FileExists(file))
{
TworzenieWozu = 0;
IdWozu[playerid] = nr;
new Float: X, Float: Y, Float: Z, Float: Ang;
GetPlayerPos(playerid, X, Y, Z);
GetPlayerFacingAngle(playerid, Ang);
KupneWozy[nr] = AddStaticVehicleEx(idwozu, X, Y, Z, Ang, -1, -1, SPAWN);
PrivateCar[nr][cAktywny] = 1;
PrivateCar[nr][cKupiony] = 0;
PrivateCar[nr][cWlasciciel] = strlen("Brak");
PrivateCar[nr][cModel] = idwozu;
PrivateCar[nr][cX] = X;
PrivateCar[nr][cY] = Y;
PrivateCar[nr][cZ] = Z;
PrivateCar[nr][cRX] = Ang;
PrivateCar[nr][cColor1] = -1;
PrivateCar[nr][cColor2] = -1;
PrivateCar[nr][cRespawn] = SPAWN;
PrivateCar[nr][cKoszt] = koszt;
PrivateCar[nr][cLock] = 1;
ZapiszWoz(nr);
}
}
}
return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER)
{
for(new nr = 0; nr < ILOSC_WOZOW; nr++)
{
new carid = GetPlayerVehicleID(playerid);
if(carid == KupneWozy[nr])
{
if(PrivateCar[nr][cKupiony] == 0)
{
RemovePlayerFromVehicle(playerid);
format(dstring, sizeof(dstring), ""C_BEZOWY"Kupiony: "C_CZERWONY"NIE\n"C_BEZOWY"W?a?ciciel: "C_CZERWONY"Brak\n"C_BEZOWY"Zamkni?ty: "C_CZERWONY"Tak\n"C_BEZOWY"Koszt: "C_ZOLTY"%d\n"C_BEZOWY"Na sprzedarz: "C_ZIELONY"TAK\n\n"C_BIALY"Chcesz kupi? ten pojazd?", PrivateCar[nr][cKoszt]);
ShowPlayerDialog(playerid, GUI_NIEKUPIONE, DIALOG_STYLE_MSGBOX, "Prywatne Pojazdy", dstring, "Tak", "Nie");
SetPVarInt(playerid, "WozDoKupna", nr);
}
else if(PrivateCar[nr][cKupiony] == 1)
{
if(!strcmp(PrivateCar[nr][cWlasciciel], Nick(playerid)))
{
SendClientMessage(playerid, KOLOR_ZIELONY, "Witaj w swoim prywatnym samochodzie.");
}
else
{
if(PrivateCar[nr][cLock]==1)
{
if(!IsPlayerAdmin(playerid))
{
RemovePlayerFromVehicle(playerid);
format(dstring, sizeof(dstring), ""C_BEZOWY"Kupiony: "C_ZIELONY"TAK\n"C_BEZOWY"W?a?ciciel: "C_ZIELONY"%s\n"C_BEZOWY"Zamkni?ty: "C_ZIELONY"TAK\n"C_BEZOWY"Koszt: "C_ZOLTY"%d\n"C_BEZOWY"Na sprzedarz: "C_CZERWONY"NIE", PrivateCar[nr][cWlasciciel], PrivateCar[nr][cKoszt]);
ShowPlayerDialog(playerid, 9999, DIALOG_STYLE_MSGBOX, "Prywatne Pojazdy", dstring, "Ok", "");
}
else
{
format(dstring, sizeof(dstring), ""C_BEZOWY"Kupiony: "C_ZIELONY"TAK\n"C_BEZOWY"W?a?ciciel: "C_ZIELONY"%s\n"C_BEZOWY"Zamkni?ty: "C_ZIELONY"TAK\n"C_BEZOWY"Koszt: "C_ZOLTY"%d\n"C_BEZOWY"Na sprzedarz: "C_CZERWONY"NIE", PrivateCar[nr][cWlasciciel], PrivateCar[nr][cKoszt]);
ShowPlayerDialog(playerid, 9999, DIALOG_STYLE_MSGBOX, "Prywatne Pojazdy", dstring, "Ok", "");
}
}
else if(PrivateCar[nr][cLock]==0)
{
if(!IsPlayerAdmin(playerid))
{
format(dstring, sizeof(dstring), ""C_BEZOWY"Kupiony: "C_ZIELONY"TAK\n"C_BEZOWY"W?a?ciciel: "C_ZIELONY"%s\n"C_BEZOWY"Zamkni?ty: "C_CZERWONY"NIE\n"C_BEZOWY"Koszt: "C_ZOLTY"%d\n"C_BEZOWY"Na sprzedarz: "C_CZERWONY"NIE", PrivateCar[nr][cWlasciciel], PrivateCar[nr][cKoszt]);
ShowPlayerDialog(playerid, 9999, DIALOG_STYLE_MSGBOX, "Prywatne Pojazdy", dstring, "Ok", "");
}
else
{
format(dstring, sizeof(dstring), ""C_BEZOWY"Kupiony: "C_ZIELONY"TAK\n"C_BEZOWY"W?a?ciciel: "C_ZIELONY"%s\n"C_BEZOWY"Zamkni?ty: "C_CZERWONY"NIE\n"C_BEZOWY"Koszt: "C_ZOLTY"%d\n"C_BEZOWY"Na sprzedarz: "C_CZERWONY"NIE", PrivateCar[nr][cWlasciciel], PrivateCar[nr][cKoszt]);
ShowPlayerDialog(playerid, 9999, DIALOG_STYLE_MSGBOX, "Prywatne Pojazdy", dstring, "Ok", "");
}
}
}
}
}
}
}
return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == GUI_NIEKUPIONE)
{
if(response)
{
new nr = GetPVarInt(playerid, "WozDoKupna");
if(GetPlayerMoney(playerid) >= PrivateCar[nr][cKoszt])
{
GivePlayerMoney(playerid, -PrivateCar[nr][cKoszt]);
PrivateCar[nr][cAktywny] = 1;
PrivateCar[nr][cKupiony] = 1;
strmid(PrivateCar[nr][cWlasciciel], Nick(playerid), 0, strlen(Nick(playerid)), 64);
ZapiszWoz(nr);
}
else
{
SendClientMessage(playerid, KOLOR_CZERWONY, "Nie sta? Ci? na kupno tego pojazdu");
}
}
}
if(dialogid == GUI_MENUCAR)
{
if(response)
{
switch(listitem)
{
case 0:
{
for(new nr = 0; nr < ILOSC_WOZOW; nr++)
{
if(IsPlayerInVehicle(playerid, KupneWozy[nr]))
{
new Float: Pos[4];
GetVehiclePos(KupneWozy[nr], Pos[0], Pos[1], Pos[2]);
GetVehicleZAngle(KupneWozy[nr], Pos[3]);
PrivateCar[nr][cX] = Pos[0];
PrivateCar[nr][cY] = Pos[1];
PrivateCar[nr][cZ] = Pos[2];
PrivateCar[nr][cRX] = Pos[3];
DestroyVehicle(KupneWozy[nr]);
KupneWozy[nr] = AddStaticVehicleEx(PrivateCar[nr][cModel],PrivateCar[nr][cX],PrivateCar[nr][cY],PrivateCar[nr][cZ],PrivateCar[nr][cRX],PrivateCar[nr][cColor1],PrivateCar[nr][cColor2],PrivateCar[nr][cRespawn]);
ZapiszWoz(nr);
format(dstring, sizeof(dstring), ""C_BEZOWY"Ustawi?e? spawn pojazdu na "C_BEZOWY"X: "C_ZIELONY"%f, "C_BEZOWY"Y: "C_ZIELONY"%f, "C_BEZOWY"Z: "C_ZIELONY"%f, "C_BEZOWY"RotX: "C_ZIELONY"%f", Pos[0], Pos[1], Pos[2], Pos[3]);
SendClientMessage(playerid, KOLOR_BIALY, dstring);
}
}
}
case 1:
{
for(new nr = 0; nr < ILOSC_WOZOW; nr++)
{
if(IsPlayerInVehicle(playerid, KupneWozy[nr]))
{
SetVehicleToRespawn(KupneWozy[nr]);
SendClientMessage(playerid, KOLOR_ZIELONY, "Zrespawnowano...");
}
}
}
case 2:
{
for(new nr = 0; nr < ILOSC_WOZOW; nr++)
{
if(IsPlayerInVehicle(playerid, KupneWozy[nr]))
{
if(PrivateCar[nr][cLock] == 1)
{
PrivateCar[nr][cLock]=0;
SendClientMessage(playerid, KOLOR_ZIELONY, ""C_BEZOWY"Pojazd "C_ZIELONY"Otwarty");
ZapiszWoz(nr);
}
else if(PrivateCar[nr][cLock] == 0)
{
PrivateCar[nr][cLock]=1;
SendClientMessage(playerid, KOLOR_ZIELONY, ""C_BEZOWY"Pojazd "C_CZERWONY"Zamkni?ty");
ZapiszWoz(nr);
}
}
}
}
}
}
}
return 1;
}

CMD:cmenu(playerid, params[])
{
if(GetPlayerState(playerid)==PLAYER_STATE_DRIVER)
{
for(new nr = 0; nr < ILOSC_WOZOW; nr++)
{
if(IsPlayerInVehicle(playerid, KupneWozy[nr]))
{
ShowPlayerDialog(playerid,GUI_MENUCAR,DIALOG_STYLE_LIST,"Menu pojazdu",""C_BEZOWY"Parkuj\n"C_BEZOWY"Spawn\n"C_ZIELONY"Otworz"C_BEZOWY"/"C_CZERWONY"Zamknij "C_BEZOWY"pojazd","Wybierz","Zamknij");
}
}
}
else
{
SendClientMessage(playerid, KOLOR_ZIELONY, "Musisz by? kierowc?!");
}
return 1;
}

CMD:dcar(playerid, params[])
{
if(!IsPlayerAdmin(playerid)) return 1;

if(GetPlayerState(playerid)==PLAYER_STATE_DRIVER)
{
for(new nr = 0; nr < ILOSC_WOZOW; nr++)
{
if(IsPlayerInVehicle(playerid, KupneWozy[nr]))
{
new file[25];
format(file,sizeof(file),WOZY_FILE,nr);
DOF_RemoveFile(file);
DestroyVehicle(KupneWozy[nr]);
format(dstring, sizeof(dstring), ""C_BEZOWY"Usuni?to pojazd o ID: "C_ZIELONY"%d"C_BEZOWY"!", nr);
}
}
}
else
{
SendClientMessage(playerid, KOLOR_ZIELONY, "Musisz by? w pojezdzie!");
}
return 1;
}

CMD:chelp(playerid, params[])
{
ShowPlayerDialog(playerid, 9999, DIALOG_STYLE_MSGBOX, "Pomoc do systemu prywatnych pojazd?w", "/ccar <id> <koszt> - Tworzysz pojazd\n/dcar - niszczysz pojazd\n/cmenu - menu kupionego pojazdu", "Ok", "");
return 1;
}


Ma ktos jakis pomysl co zrobic aby kazdy gracz mial jakis tam limit aut np 3 ? ze na jednego gracza przypada max 3 auta ?

Oraz druga sprawa, co zrobic aby zapisywal sie kolor aut ?

Z gory dzieki

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-02-04, 13:42


Nors

Wszystko wiem.






Wiek: 30
Na forum: 4600 dni
Posty: 223
Nick w MP: Nors

Piwa: 10

Respekt: 50

Kod:

new PrivateCar[ILOSC_WOZOW][privcar];


zamie? na:

Kod:

new PrivateCar[3][privcar];


Podpis
Daj piweczko. Pić się chce.
Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-02-04, 14:20


IgrexolonO







Wiek: 34
Na forum: 6809 dni
Posty: 1386

Piwa: 1062

Respekt: 651,8
Respekt: 651,8Respekt: 651,8

"Nors" napisał/a:

Kod:

new PrivateCar[ILOSC_WOZOW][privcar];


zamie? na:

Kod:

new PrivateCar[3][privcar];


Nie s?dze.

Jak ju? to
Kod:

PrivateCar[MAX_PLAYERS][3][privcar];


Ale do tego potrzeba wi?kszych zmian w kodzie.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-02-04, 20:11


Avira15







Wiek: 33
Na forum: 4921 dni
Posty: 34



Respekt: 50

Kod:

new PrivateCar[3][privcar];


wgl przestalo mi tworzyc auta do scriptfiles, natomiast

Kod:

PrivateCar[MAX_PLAYERS][3][privcar];


Tak jak mowiles to by sie musialo wiekszosc kodu zmienic. Nie ma innej mozliwosci ? Z MAX_PLAYERS by dzialalo ?

Wszyscy po piwku

Postaw piwo autorowi tego posta
 

 
Tagi: system :: aut
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » PAWN » [INNE] System aut Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku