Avira15
Wiek: 33 Na forum: 4921 dni Posty: 34
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