Jump to content

Jak na domy pomocí jednoho řádku.


AvestX

Recommended Posts

Tak :d Avest-X je tu znovu se svím trapným TuTem jak na dům v podobě includu.

No :lol: můžete si to dát do includu :d ale já to rači v modu, mam v tom pak přehled.

:boss:


Do modu si dejte tyhle řádky ( Už je tady jeden TuT odemě a tam je to všechno popsaný ).

 

#include

#define MAX_HOUSES 50

//-------------------------------------|

enum HOUSE_DATA

{

Float:p_X,

Float:p_Y,

Float:p_Z,

Float:i_X,

Float:i_Y,

Float:i_Z,

iin,

Cena,

Vlastnik,

Dialog,

Zamek

}

new HouseInfo[MAX_HOUSES][HOUSE_DATA];

new HouseCount = 0;

new MajitelDomu[MAX_HOUSES][MAX_PLAYERS];

//------------------------------------|

forward GetPlayerDistanceToPointEx(playerid,Float:x,Float:y,Float:z);

forward IsPlayerInSphere(playerid,Float:x,Float:y,Float:z,radius);

forward AddHouse(Float:pX, Float:pY, Float:pZ, Float:iX, Float:iY, Float:iZ, ii, Cenik, iddialogu);

//------------------------------------|

public AddHouse(Float:pX, Float:pY, Float:pZ, Float:iX, Float:iY, Float:iZ, ii, Cenik, iddialogu)

{

if(HouseCount < MAX_HOUSES)

{

HouseInfo[HouseCount][p_X] = pX;

HouseInfo[HouseCount][p_Y] = pY;

HouseInfo[HouseCount][p_Z] = pZ;

 

HouseInfo[HouseCount][i_X] = iX;

HouseInfo[HouseCount][i_Y] = iY;

HouseInfo[HouseCount][i_Z] = iZ;

HouseInfo[HouseCount][iin] = ii;

 

HouseInfo[HouseCount][Cena] = Cenik;

 

HouseInfo[HouseCount][Vlastnik] = 0;

HouseInfo[HouseCount][Zamek] = 0;

 

CreatePickup(1273,1,pX, pY, pZ);

HouseInfo[HouseCount][Dialog] = iddialogu;

HouseCount ++;

}else{

print("");

}

return 1;

}

//------------------------------------|

public IsPlayerInSphere(playerid,Float:x,Float:y,Float:z,radius)

{

if(GetPlayerDistanceToPointEx(playerid,x,y,z) < radius) return 1;

return 0;

}

//------------------------------------|

public GetPlayerDistanceToPointEx(playerid,Float:x,Float:y,Float:z)

{

new Float:x1,Float:y1,Float:z12,Float:tmpdis;

GetPlayerPos(playerid,x1,y1,z12);

tmpdis = floatsqroot(floatpower(floatabs(floatsub(x,x1)),2)

+floatpower(floatabs(floatsub(y,y1)),2)+floatpower(floatabs(floatsub(z,z12)),2));

return floatround(tmpdis);

}

//------------------------------------|

public OnPlayerPickUpPickup(playerid, pickupid)

{

for(new h=0;h

{

if(IsPlayerInSphere(playerid,HouseInfo[h][p_X],HouseInfo[h][p_Y],HouseInfo[h][p_Z],2) == 1)

{

ShowPlayerDialog(playerid,HouseInfo[h][Dialog],DIALOG_STYLE_LIST,"Dům","Koupit\nProdat\nZamknout\nOdemknout\nInformace o domu\nVstoupit","Použít","Nic");

}

}

return 1;

}

//------------------------------------|

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)

{

if(newkeys == KEY_WALK)

{

for(new h=0;h

{

if(IsPlayerInSphere(playerid,HouseInfo[h][i_X],HouseInfo[h][i_Y],HouseInfo[h][i_Z],10) == 1)

{

SetPlayerPos(playerid,HouseInfo[h][p_X],HouseInfo[h][p_Y],HouseInfo[h][p_Z]);

SetPlayerInterior(playerid,0);

}

}

}

return 1;

}

//------------------------------------|

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])

{

for(new h=0;h

{

if(dialogid == HouseInfo[h][Dialog])

{

if(response == 1)

{

if(listitem == 0)

{

if(GetPlayerMoney(playerid) <= HouseInfo[h][Cena]) return SendClientMessage(playerid, 0xFFFFFFFF, "Máš málo peněz !");

if(HouseInfo[h][Vlastnik] == 1) return SendClientMessage(playerid, 0xFFFFFFFF, "Tento dům již někdo vlastní !");

HouseInfo[h][Vlastnik] = 1;

MajitelDomu[h][playerid] = 1;

GivePlayerMoney(playerid, -HouseInfo[h][Cena]);

SendClientMessage(playerid, 0xFFFFFFFF, "Pořidil jsi si dům !");

}

else if(listitem == 1)

{

if(MajitelDomu[h][playerid] == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "Tento dům není tvůj !");

HouseInfo[h][Vlastnik] = 0;

MajitelDomu[h][playerid] = 0;

GivePlayerMoney(playerid, HouseInfo[h][Cena]);

SendClientMessage(playerid, 0xFFFFFFFF, "Dům prodán, byla ti vrácena cena !");

}

else if(listitem == 2)

{

if(MajitelDomu[h][playerid] == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "Tento dům není tvůj !");

HouseInfo[h][Zamek] = 0;

SendClientMessage(playerid, 0xFFFFFFFF, "Dům zamknut !");

}

else if(listitem == 3)

{

if(MajitelDomu[h][playerid] == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "Tento dům není tvůj !");

SendClientMessage(playerid, 0xFFFFFFFF, "Dům odemknut !");

HouseInfo[h][Zamek] = 1;

}

else if(listitem == 4)

{

SendClientMessage(playerid, 0xFFFFFFFF, "Informace o domu:");

if(HouseInfo[h][Zamek] == 0)

{

SendClientMessage(playerid,0xFFFFFFFF,"Zámek: Zamknutý.");

}else{

SendClientMessage(playerid,0xFFFFFFFF,"Zámek: Odemknutý.");

}

if (HouseInfo[h][Vlastnik] == 0)

{

SendClientMessage(playerid,0xFFFFFFFF,"K Prodeji: Ano");

}else{

SendClientMessage(playerid,0xFFFFFFFF,"K Prodeji: Ne");

}

}

else if(listitem == 5)

{

if(HouseInfo[h][Zamek] == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "Tento dům je zamknut !");

SetPlayerPos(playerid, HouseInfo[h][i_X],HouseInfo[h][i_Y],HouseInfo[h][i_Z]);

SetPlayerInterior(playerid, HouseInfo[h][iin]);

SendClientMessage(playerid, 0xFFFFFFFF, "Dům opustíš L.ALT !");

}

}

}

}

return 1;

}

//------------------------------------|

 


Dům uděláte do OnGameModeInt takto:

AddHouse(X, Y, Z, Interior:X, Interior:Y, Interior:Z, ID Interioru, Cena domu, ID Dialogu);

Už to neni přes ty zastaralí menu ale dialogy, musíte nastavit ID dialogu.

takže například:

1546.370,-1365.945,325.204

AddHouse(1546.370,-1365.945,325.204, -2046.791,361.814,64.241, 6, 90000, 60);

 

P.S.: Už to tu je, ale musíte je definovat, tohle je lechčí, no mohl sem to hodit tam :d ale už to bude starej topic, možná už i je.

Link to comment
Share on other sites

  • Replies 64
  • Created
  • Last Reply

Top Posters In This Topic

Avest-X":1wq38evv]Tak :d Avest-X je tu znovu se svím trapným TuTem jak na dům v podobě includu.

No :lol: můžete si to dát do includu :d ale já to rači v modu, mam v tom pak přehled.

:boss:


Do modu si dejte tyhle řádky ( Už je tady jeden TuT odemě a tam je to všechno popsaný ).

 

#include

#define MAX_HOUSES 50

//-------------------------------------|

enum HOUSE_DATA

{

Float:p_X,

Float:p_Y,

Float:p_Z,

Float:i_X,

Float:i_Y,

Float:i_Z,

iin,

Cena,

Vlastnik,

Dialog,

Zamek

}

new HouseInfo[MAX_HOUSES][HOUSE_DATA];

new HouseCount = 0;

new MajitelDomu[MAX_HOUSES][MAX_PLAYERS];

//------------------------------------|

forward GetPlayerDistanceToPointEx(playerid,Float:x,Float:y,Float:z);

forward IsPlayerInSphere(playerid,Float:x,Float:y,Float:z,radius);

forward AddHouse(Float:pX, Float:pY, Float:pZ, Float:iX, Float:iY, Float:iZ, ii, Cenik, iddialogu);

forward LanovkaTam();

forward Lanovkazpet();

//------------------------------------|

public AddHouse(Float:pX, Float:pY, Float:pZ, Float:iX, Float:iY, Float:iZ, ii, Cenik, iddialogu)

{

if(HouseCount < MAX_HOUSES)

{

HouseInfo[HouseCount][p_X] = pX;

HouseInfo[HouseCount][p_Y] = pY;

HouseInfo[HouseCount][p_Z] = pZ;

 

HouseInfo[HouseCount][i_X] = iX;

HouseInfo[HouseCount][i_Y] = iY;

HouseInfo[HouseCount][i_Z] = iZ;

HouseInfo[HouseCount][iin] = ii;

 

HouseInfo[HouseCount][Cena] = Cenik;

 

HouseInfo[HouseCount][Vlastnik] = 0;

HouseInfo[HouseCount][Zamek] = 0;

 

CreatePickup(1273,1,pX, pY, pZ);

HouseInfo[HouseCount][Dialog] = iddialogu;

HouseCount ++;

}else{

print("");

}

return 1;

}

//------------------------------------|

public IsPlayerInSphere(playerid,Float:x,Float:y,Float:z,radius)

{

if(GetPlayerDistanceToPointEx(playerid,x,y,z) < radius) return 1;

return 0;

}

//------------------------------------|

public GetPlayerDistanceToPointEx(playerid,Float:x,Float:y,Float:z)

{

new Float:x1,Float:y1,Float:z12,Float:tmpdis;

GetPlayerPos(playerid,x1,y1,z12);

tmpdis = floatsqroot(floatpower(floatabs(floatsub(x,x1)),2)

+floatpower(floatabs(floatsub(y,y1)),2)+floatpower(floatabs(floatsub(z,z12)),2));

return floatround(tmpdis);

}

//------------------------------------|

public OnPlayerPickUpPickup(playerid, pickupid)

{

for(new h=0;h

{

if(IsPlayerInSphere(playerid,HouseInfo[h][p_X],HouseInfo[h][p_Y],HouseInfo[h][p_Z],2) == 1)

{

ShowPlayerDialog(playerid,HouseInfo[h][Dialog],DIALOG_STYLE_LIST,"Dům","Koupit\nProdat\nZamknout\nOdemknout\nInformace o domu\nVstoupit","Použít","Nic");

}

}

return 1;

}

//------------------------------------|

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)

{

if(newkeys == KEY_WALK)

{

for(new h=0;h

{

if(IsPlayerInSphere(playerid,HouseInfo[h][i_X],HouseInfo[h][i_Y],HouseInfo[h][i_Z],10) == 1)

{

SetPlayerPos(playerid,HouseInfo[h][p_X],HouseInfo[h][p_Y],HouseInfo[h][p_Z]);

SetPlayerInterior(playerid,0);

}

}

}

return 1;

}

//------------------------------------|

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])

{

for(new h=0;h

{

if(dialogid == HouseInfo[h][Dialog])

{

if(response == 1)

{

if(listitem == 0)

{

if(GetPlayerMoney(playerid) <= HouseInfo[h][Cena]) return SendClientMessage(playerid, 0xFFFFFFFF, "Máš málo peněz !");

if(HouseInfo[h][Vlastnik] == 1) return SendClientMessage(playerid, 0xFFFFFFFF, "Tento dům již někdo vlastní !");

HouseInfo[h][Vlastnik] = 1;

MajitelDomu[h][playerid] = 1;

GivePlayerMoney(playerid, -HouseInfo[h][Cena]);

SendClientMessage(playerid, 0xFFFFFFFF, "Pořidil jsi si dům !");

}

else if(listitem == 1)

{

if(MajitelDomu[h][playerid] == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "Tento dům není tvůj !");

HouseInfo[h][Vlastnik] = 0;

MajitelDomu[h][playerid] = 0;

GivePlayerMoney(playerid, HouseInfo[h][Cena]);

SendClientMessage(playerid, 0xFFFFFFFF, "Dům prodán, byla ti vrácena cena !");

}

else if(listitem == 2)

{

if(MajitelDomu[h][playerid] == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "Tento dům není tvůj !");

HouseInfo[h][Zamek] = 0;

SendClientMessage(playerid, 0xFFFFFFFF, "Dům zamknut !");

}

else if(listitem == 3)

{

if(MajitelDomu[h][playerid] == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "Tento dům není tvůj !");

SendClientMessage(playerid, 0xFFFFFFFF, "Dům odemknut !");

HouseInfo[h][Zamek] = 1;

}

else if(listitem == 4)

{

SendClientMessage(playerid, 0xFFFFFFFF, "Informace o domu:");

if(HouseInfo[h][Zamek] == 0)

{

SendClientMessage(playerid,0xFFFFFFFF,"Zámek: Zamknutý.");

}else{

SendClientMessage(playerid,0xFFFFFFFF,"Zámek: Odemknutý.");

}

if (HouseInfo[h][Vlastnik] == 0)

{

SendClientMessage(playerid,0xFFFFFFFF,"K Prodeji: Ano");

}else{

SendClientMessage(playerid,0xFFFFFFFF,"K Prodeji: Ne");

}

}

else if(listitem == 5)

{

if(HouseInfo[h][Zamek] == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "Tento dům je zamknut !");

SetPlayerPos(playerid, HouseInfo[h][i_X],HouseInfo[h][i_Y],HouseInfo[h][i_Z]);

SetPlayerInterior(playerid, HouseInfo[h][iin]);

SendClientMessage(playerid, 0xFFFFFFFF, "Dům opustíš L.ALT !");

}

}

}

}

return 1;

}

//------------------------------------|

 


Dům uděláte do OnGameModeInt takto:

AddHouse(X, Y, Z, Interior:X, Interior:Y, Interior:Z, ID Interioru, Cena domu, ID Dialogu);

Už to neni přes ty zastaralí menu ale dialogy, musíte nastavit ID dialogu.

takže například:

1546.370,-1365.945,325.204

AddHouse(1546.370,-1365.945,325.204, -2046.791,361.814,64.241, 6, 90000, 60);

 

P.S.: Už to tu je, ale musíte je definovat, tohle je lechčí, no mohl sem to hodit tam :d ale už to bude starej topic, možná už i je.

To s tim trapným tutem si vystihl přesně =D

Link to comment
Share on other sites

Tovíš no :d

na 1Dům mi to šlo, na víc sem nezkoušel :d trochu sem se inspirovat CZproperty, tohle sem nikdy nedělal, ale psáno z vlastní hlavy no :d tut sem tam nakopčil :d ( Jak na dům )

Link to comment
Share on other sites

Avest-X":3pnzusbw]Tovíš no :d

na 1Dům mi to šlo, na víc sem nezkoušel :d trochu sem se inspirovat CZproperty, tohle sem nikdy nedělal, ale psáno z vlastní hlavy no :d tut sem tam nakopčil :d ( Jak na dům )

Mě znepokojuje ta věta " Psáno z vlastní hlavy " .. ty nějakou máš? "lol"

Link to comment
Share on other sites

skús tam date ešte

public AddHouse(Float:pX, Float:pY, Float:pZ, Float:iX, Float:iY, Float:iZ, ii, Cenik, ,vw,iddialogu)
{
if(HouseCount < MAX_HOUSES)
{
HouseInfo[HouseCount][p_X] = pX;
HouseInfo[HouseCount][p_Y] = pY;
HouseInfo[HouseCount][p_Z] = pZ;

HouseInfo[HouseCount][i_X] = iX;
HouseInfo[HouseCount][i_Y] = iY;
HouseInfo[HouseCount][i_Z] = iZ;
HouseInfo[HouseCount][iin] = ii;

HouseInfo[HouseCount][Cena] = Cenik;

HouseInfo[HouseCount][Vlastnik] = 0;
HouseInfo[HouseCount][Zamek] = 0;
HouseInfo[HouseCount][vw] = vw; ///////////// toto
CreatePickup(1273,1,pX, pY, pZ);
HouseInfo[HouseCount][Dialog] = iddialogu;
HouseCount ++;
}else{
print("");
}
return 1;
}

 

a toto takto upravit

enum HOUSE_DATA

{

Float:p_X,

Float:p_Y,

Float:p_Z,

Float:i_X,

Float:i_Y,

Float:i_Z,

iin,

Cena,

Vlastnik,

vw, // virtual word

Dialog,

Zamek

}

 

a ešťe

 

forward AddHouse(Float:pX, Float:pY, Float:pZ, Float:iX, Float:iY, Float:iZ, ii, Cenik, vw,iddialogu);

 

Link to comment
Share on other sites

jinak moc sem to necetl ale ty porovnvas maitele domu podle id prave kupovaneho co kdyz se odpoji pripoji s jinym id? jak budes zjistovat jestli mu to patri ?

No tak to jo :d a jak si to udělal v Rze ? :d

Link to comment
Share on other sites

Avest-X":2ab0xnl8]
jinak moc sem to necetl ale ty porovnvas maitele domu podle id prave kupovaneho co kdyz se odpoji pripoji s jinym id? jak budes zjistovat jestli mu to patri ?

No tak to jo :d a jak si to udělal v Rze ? :d

ja porovnavam jmena maitelu ne ID :d

Link to comment
Share on other sites

  • 4 weeks later...
djmckjuba":1f92mer6]pokud tomu dobre rozumim tak udelam jako kdyby jeden a pak jen pridavam dalsi jen otazka jak se uklada majitel?

Tak si ulož ( kdo to chce ukladat ) uložte si ..

MajitelDomu[iD Domu][playerid]

:d

ale bude to velký, ID je podle toho jak to máš v OnGameModeInt

a nebo ...

for(new h=0; h< HouseCount /* nebo jak to mam */; h++)
{
SAVE ( podle systemu a podlinku dej MajitelDomu[h][playerid] )
}

:kun:

Link to comment
Share on other sites

čavko mam taky dotaz že ked mam takto spravenych viac domov tak vždy ked znejakeho domu vydem tak ma portne pred iní východ neviete niekto jak to napraviť??? pls ak ano tak diki

Link to comment
Share on other sites

čavko mam taky dotaz že ked mam takto spravenych viac domov tak vždy ked znejakeho domu vydem tak ma portne pred iní východ neviete niekto jak to napraviť??? pls ak ano tak diki

Asi si si dal stejný Interior ... já mam i z Wirtual Worldem, ale i z autama a dělal sem si s tim práci tak to sem nedam ...

Link to comment
Share on other sites

čavko mam taky dotaz že ked mam takto spravenych viac domov tak vždy ked znejakeho domu vydem tak ma portne pred iní východ neviete niekto jak to napraviť??? pls ak ano tak diki

Asi si si dal stejný Interior ... já mam i z Wirtual Worldem, ale i z autama a dělal sem si s tim práci tak to sem nedam ...

 

JJ Přesně tak Aveste nikomu jinnemu než mě to nedáš ;):d

Link to comment
Share on other sites

  • 3 weeks later...

Zveřejněna nová verze !

V 1.2

 

Pawn kód:

 

/*==========================================================================================================

|| ||

|| AddHouse System by Avest-X ||

|| ||

|| forward AddHouse(const h_Name[], Float:pX, Float:pY, Float:pZ, Float:iX, Float:iY, Float:iZ, ii, Cenik, iddialogu, VW, Float:a_x, Float:a_y, Float:a_z, Float:a_face, a_dialog);

|| ||

|| h_name[] = jmeno domu ( priklad: "lamkoví dum" ) ||

|| pX, pY, pZ = X,Y,Z nemovitosti ||

|| iX,iY,iZ = X,Y,Z interioru ( portu do nej ) ||

|| ii = ID Interioru ||

|| Cenik = Cena nemovitosti ||

|| iddialogu = ID dialogu na menu ||

|| VW = Virtual World ||

|| a_x, a_y, a_z, a_face = X,Y,Z,FaceAngle auta ||

|| a_dialog = ID Dialogu na Auta ||

|| ||

|| put in to OnGameModeInt ! ||

|| ||

==========================================================================================================

*/

#include

//#include

//#include

//--------[ Defines ]--------|

#define B_MODRA 0x4169FFAA

#define COLOR_GREEN 0x4169FFAA

#define MAX_HOUSES 50

#define MAX_HOUSES_NAME 20

#define HOUSE1 1500

//--------[ New & enum ]--------|

enum HOUSE_DATA

{

HouseName[MAX_HOUSES_NAME],

Float:p_X,

Float:p_Y,

Float:p_Z,

Float:i_X,

Float:i_Y,

Float:i_Z,

iin,

Cena,

Vlastnik,

Dialog,

Zamek,

WiW,

Float:auto_x,

Float:auto_y,

Float:auto_z,

Float:auto_face,

auto_dialog

};

new HouseInfo[MAX_HOUSES][HOUSE_DATA];

new HouseCount = 0;

new MajitelDomu[MAX_HOUSES][MAX_PLAYERS];

new AutoDomu[MAX_HOUSES];

//--------[ Forwards ]--------|

forward GetPlayerDistanceToPointEx(playerid,Float:x,Float:y,Float:z);

forward IsPlayerInSphere(playerid,Float:x,Float:y,Float:z,radius);

forward AddHouse(const h_Name[], Float:pX, Float:pY, Float:pZ, Float:iX, Float:iY, Float:iZ, ii, Cenik, iddialogu, VW, Float:a_x, Float:a_y, Float:a_z, Float:a_face, a_dialog);

//______________________________________________________________________________

 

public IsPlayerInSphere(playerid,Float:x,Float:y,Float:z,radius)

{

if(GetPlayerDistanceToPointEx(playerid,x,y,z) < radius) return 1;

return 0;

}

//==============================================================================

public GetPlayerDistanceToPointEx(playerid,Float:x,Float:y,Float:z)

{

new Float:x1,Float:y1,Float:z12,Float:tmpdis;

GetPlayerPos(playerid,x1,y1,z12);

tmpdis = floatsqroot(floatpower(floatabs(floatsub(x,x1)),2)

+floatpower(floatabs(floatsub(y,y1)),2)+floatpower(floatabs(floatsub(z,z12)),2));

return floatround(tmpdis);

}

//==============================================================================

public AddHouse(const h_Name[], Float:pX, Float:pY, Float:pZ, Float:iX, Float:iY, Float:iZ, ii, Cenik, iddialogu, VW, Float:a_x, Float:a_y, Float:a_z, Float:a_face, a_dialog)

{

if(HouseCount < MAX_HOUSES)

{

format(HouseInfo[HouseCount][HouseName] , MAX_HOUSES_NAME, "%s", h_Name);

 

HouseInfo[HouseCount][p_X] = pX;

HouseInfo[HouseCount][p_Y] = pY;

HouseInfo[HouseCount][p_Z] = pZ;

 

HouseInfo[HouseCount][i_X] = iX;

HouseInfo[HouseCount][i_Y] = iY;

HouseInfo[HouseCount][i_Z] = iZ;

HouseInfo[HouseCount][iin] = ii;

 

HouseInfo[HouseCount][Cena] = Cenik;

HouseInfo[HouseCount][WiW] = VW;

 

HouseInfo[HouseCount][Vlastnik] = 0;

HouseInfo[HouseCount][Zamek] = 0;

 

CreatePickup(1273,1,pX, pY, pZ);

HouseInfo[HouseCount][Dialog] = iddialogu;

 

HouseInfo[HouseCount][auto_x] = a_x;

HouseInfo[HouseCount][auto_y] = a_y;

HouseInfo[HouseCount][auto_z] = a_z;

HouseInfo[HouseCount][auto_face] = a_face;

HouseInfo[HouseCount][auto_dialog] = a_dialog;

 

AutoDomu[HouseCount] = AddStaticVehicle(445,a_x,a_y,a_z,a_face,35,35);

 

HouseCount ++;

}else{

print("");

}

return 1;

}

//==============================================================================

public OnPlayerStateChange(playerid, newstate, oldstate)

{

if(IsPlayerInAnyVehicle(playerid))

{

for(new h=0; h< HouseCount; h++)

{

if(newstate == PLAYER_STATE_DRIVER)

{

new vehicleid = GetPlayerVehicleID(playerid);

if(vehicleid == AutoDomu[h])

{

if(MajitelDomu[h][playerid] == 0)

{

SendClientMessage(playerid, 0xAA3333AA, "Toto vozidlo je domu, dostáváte WL + 1 !");

SetPlayerWantedLevel(playerid, GetPlayerWantedLevel(playerid)+1);

//------------|

for(new i=0; i

{

if(IsPlayerConnected(i))

{

PlayCrimeReportForPlayer(i, playerid, 18);

}

}

}

}

}

}

}

return 1;

}

//==============================================================================

public OnFilterScriptInit()

{

TdOnGameModeInt();

AddHouse("Dum 1", 2126.6511,-1319.9645,26.6240, 225.8965,1022.1873,1084.0156, 7, 1, 681, 24, 2136.1165,-1318.8456,24.6143,0.2171, 680);

AddHouse("Dum 2", 2486.5903,-1646.9220,14.0703, 225.8965,1022.1873,1084.0156, 7, 10000, HOUSE1, 1, 2486.7432,-1653.3481,13.0562,86.6498, 680);

return 1;

}

//==============================================================================

public OnPlayerConnect(playerid)

{

for(new h=0;h

{

CreateMapIcon(31, COLOR_GREEN, HouseInfo[h][p_X],HouseInfo[h][p_Y],HouseInfo[h][p_Z]);

new buyyng[150];

format(buyyng, 150, "Cena: %d",HouseInfo[h][Cena]);

Create3DTextLabel(buyyng,0x00FF00FF,HouseInfo[h][p_X],HouseInfo[h][p_Y],HouseInfo[h][p_Z] + 1,80.0,0);

}

return 1;

}

//==============================================================================

public OnPlayerDisconnect(playerid, reason)

{

ResetMapIconVariables(playerid);

return 1;

}

//==============================================================================

public OnPlayerPickUpPickup(playerid, pickupid)

{

for(new h=0;h

{

if(IsPlayerInSphere(playerid,HouseInfo[h][p_X],HouseInfo[h][p_Y],HouseInfo[h][p_Z],2) == 1)

{

ShowPlayerDialog(playerid,HouseInfo[h][Dialog],DIALOG_STYLE_LIST,"Dům","Koupit\nProdat\nUzamknout\nOdemknout\nInformace o domu\nVstoupit\nKoupit / Zmenit auto","Použít","Nic");

}

}

return 1;

}

//==============================================================================

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)

{

if((newkeys & (KEY_WALK | KEY_SPRINT)) == (KEY_WALK | KEY_SPRINT))

{

for(new h=0;h

{

if(IsPlayerInSphere(playerid,HouseInfo[h][i_X],HouseInfo[h][i_Y],HouseInfo[h][i_Z],10) == 1)

{

if(GetPlayerVirtualWorld(playerid) == HouseInfo[h][WiW])

{

SetPlayerPos(playerid,HouseInfo[h][p_X],HouseInfo[h][p_Y],HouseInfo[h][p_Z]);

SetPlayerInterior(playerid,0);

SetPlayerVirtualWorld(playerid, 0);

}

}

}

}

return 1;

}

//==============================================================================

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])

{

for(new h=0;h

{

if(dialogid == HouseInfo[h][Dialog])

{

if(response == 1)

{

if(listitem == 0)

{

new cena[150];

format(cena, sizeof(cena), "Potrebujes %d$ !",HouseInfo[h][Cena]);

if(GetPlayerMoney(playerid) < HouseInfo[h][Cena]) return SendClientMessage(playerid, 0xFFFFFFFF, cena);

if(HouseInfo[h][Vlastnik] == 1) return SendClientMessage(playerid, 0xFFFFFFFF, "Tento dům již někdo vlastní !");

HouseInfo[h][Vlastnik] = 1;

MajitelDomu[h][playerid] = 1;

GivePlayerMoney(playerid, -HouseInfo[h][Cena]);

new cena2[150];

format(cena2, 150, "Koupil jsi si dum za %d$ !", HouseInfo[h][Cena]);

SendClientMessage(playerid, 0xFFFFFFFF, cena2);

}

else if(listitem == 1)

{

new cena[150];

if(MajitelDomu[h][playerid] == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "Tento dům není tvůj !");

HouseInfo[h][Vlastnik] = 0;

MajitelDomu[h][playerid] = 0;

GivePlayerMoney(playerid, HouseInfo[h][Cena]);

format(cena, sizeof(cena), "Dům prodán, bylo ti vráceno zpět %d$ !",HouseInfo[h][Cena]);

SendClientMessage(playerid, 0xFFFFFFFF, cena);

}

else if(listitem == 2)

{

if(MajitelDomu[h][playerid] == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "Tento dům není tvůj !");

HouseInfo[h][Zamek] = 0;

SendClientMessage(playerid, 0xFFFFFFFF, "Dům úspěšně uzamknut !");

}

else if(listitem == 3)

{

if(MajitelDomu[h][playerid] == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "Tento dům není tvůj !");

SendClientMessage(playerid, 0xFFFFFFFF, "Dům úspěšně odemknut !");

HouseInfo[h][Zamek] = 1;

}

else if(listitem == 4)

{

SendClientMessage(playerid, 0xAA3333AA, "|===========================[ Dům ]===========================|");

if(HouseInfo[h][Zamek] == 0)

{

SendClientMessage(playerid,0xFFFFFFFF,"Stav zámku: Zamknutý.");

}else{

SendClientMessage(playerid,0xFFFFFFFF,"Stav zámku: Odemknutý.");

}

//----|

new cena[150];

format(cena, 150, "Cena domu %d$",HouseInfo[h][Cena]);

SendClientMessage(playerid,0xFFFFFFFF,cena);

//----|

if (HouseInfo[h][Vlastnik] == 0)

{

SendClientMessage(playerid,0xFFFFFFFF,"Možnost odkoupení: Ano");

}else{

SendClientMessage(playerid,0xFFFFFFFF,"Možnost odkoupení: Ne");

}

SendClientMessage(playerid, 0xAA3333AA, "|===========================[ Dům ]===========================|");

}

else if(listitem == 5)

{

if(MajitelDomu[h][playerid] == 1)

{

SetPlayerPos(playerid, HouseInfo[h][i_X],HouseInfo[h][i_Y],HouseInfo[h][i_Z]);

SetPlayerInterior(playerid, HouseInfo[h][iin]);

SetPlayerVirtualWorld(playerid, HouseInfo[h][WiW]);

SendDrawMessage(playerid, "Dum opustis ~r~L.ALT~w~ + ~r~Mezernik~w~ !");

return 0;

}

else if(HouseInfo[h][Zamek] == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "Tento dům je zamknut !");

SetPlayerPos(playerid, HouseInfo[h][i_X],HouseInfo[h][i_Y],HouseInfo[h][i_Z]);

SetPlayerInterior(playerid, HouseInfo[h][iin]);

SetPlayerVirtualWorld(playerid, HouseInfo[h][WiW]);

SendDrawMessage(playerid, "Dum opustis ~r~L.ALT~w~ + ~r~Mezernik~w~ !");

}

else if(listitem == 6)

{

if(MajitelDomu[h][playerid] == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "Tento dům není tvůj !");

ShowPlayerDialog(playerid,HouseInfo[h][auto_dialog],DIALOG_STYLE_LIST,"Koupit vozy k domu","Admiral - 2000$\nNGR-500 - 15000$\nTornado - 3500$\nGreenwood - 2500$\nHustler - 1300$\nClover - 1500$\nTurismo - 25000$","Koupit","Nic");

}

}

}

if(dialogid == HouseInfo[h][auto_dialog])

{

if(response == 1)

{

if(listitem == 0)

{

if(GetPlayerMoney(playerid) < 2000) return SendClientMessage(playerid, 0xFFFFFFFF, "Potřebuješ 2000$ !");

DestroyVehicle(AutoDomu[h]);

AutoDomu[h] = AddStaticVehicle(445,HouseInfo[h][auto_x],HouseInfo[h][auto_y],HouseInfo[h][auto_z],HouseInfo[h][auto_face],35,35);

GivePlayerMoney(playerid, -2000);

SendClientMessage(playerid, 0xFFFFFFFF, "K domu bylo přikoupeno auto !");

}

else if(listitem == 1)

{

if(GetPlayerMoney(playerid) < 15000) return SendClientMessage(playerid, 0xFFFFFFFF, "Potřebuješ 15000$ !");

DestroyVehicle(AutoDomu[h]);

AutoDomu[h] = AddStaticVehicle(522,HouseInfo[h][auto_x],HouseInfo[h][auto_y],HouseInfo[h][auto_z],HouseInfo[h][auto_face],35,35);

GivePlayerMoney(playerid, -15000);

SendClientMessage(playerid, 0xFFFFFFFF, "K domu byla přikoupena motorka !");

}

else if(listitem == 2)

{

if(GetPlayerMoney(playerid) < 3500) return SendClientMessage(playerid, 0xFFFFFFFF, "Potřebuješ 3500$ !");

DestroyVehicle(AutoDomu[h]);

AutoDomu[h] = AddStaticVehicle(576,HouseInfo[h][auto_x],HouseInfo[h][auto_y],HouseInfo[h][auto_z],HouseInfo[h][auto_face],35,35);

GivePlayerMoney(playerid, -3500);

SendClientMessage(playerid, 0xFFFFFFFF, "K domu bylo přikoupeno auto !");

}

else if(listitem == 3)

{

if(GetPlayerMoney(playerid) < 2500) return SendClientMessage(playerid, 0xFFFFFFFF, "Potřebuješ 2500$ !");

DestroyVehicle(AutoDomu[h]);

AutoDomu[h] = AddStaticVehicle(492,HouseInfo[h][auto_x],HouseInfo[h][auto_y],HouseInfo[h][auto_z],HouseInfo[h][auto_face],35,35);

GivePlayerMoney(playerid, -2500);

SendClientMessage(playerid, 0xFFFFFFFF, "K domu bylo přikoupeno auto !");

}

else if(listitem == 4)

{

if(GetPlayerMoney(playerid) < 1300) return SendClientMessage(playerid, 0xFFFFFFFF, "Potřebuješ 1300$ !");

DestroyVehicle(AutoDomu[h]);

AutoDomu[h] = AddStaticVehicle(545,HouseInfo[h][auto_x],HouseInfo[h][auto_y],HouseInfo[h][auto_z],HouseInfo[h][auto_face],35,35);

GivePlayerMoney(playerid, -1300);

SendClientMessage(playerid, 0xFFFFFFFF, "K domu bylo přikoupeno auto !");

}

else if(listitem == 5)

{

if(GetPlayerMoney(playerid) < 1500) return SendClientMessage(playerid, 0xFFFFFFFF, "Potřebuješ 1500$ !");

DestroyVehicle(AutoDomu[h]);

AutoDomu[h] = AddStaticVehicle(542,HouseInfo[h][auto_x],HouseInfo[h][auto_y],HouseInfo[h][auto_z],HouseInfo[h][auto_face],122,113);

GivePlayerMoney(playerid, -1500);

SendClientMessage(playerid, 0xFFFFFFFF, "K domu bylo přikoupeno auto !");

}

else if(listitem == 6)

{

if(GetPlayerMoney(playerid) < 25000) return SendClientMessage(playerid, 0xFFFFFFFF, "Potřebuješ 25000$ !");

DestroyVehicle(AutoDomu[h]);

AutoDomu[h] = AddStaticVehicle(451,HouseInfo[h][auto_x],HouseInfo[h][auto_y],HouseInfo[h][auto_z],HouseInfo[h][auto_face],35,35);

GivePlayerMoney(playerid, -25000);

SendClientMessage(playerid, 0xFFFFFFFF, "K domu bylo přikoupeno auto !");

}

}

}

}

return 1;

}

//==============================================================================

//|| © 2009/10 Avest-X for my modes ! ||

//==============================================================================

 


 

Použití:

AddHouse(const h_Name[], Float:pX, Float:pY, Float:pZ, Float:iX, Float:iY, Float:iZ, ii, Cenik, iddialogu, VW, Float:a_x, Float:a_y, Float:a_z, Float:a_face, a_dialog);

const h_Name[] = Jméno domu ( nastavit " Sem " )

pX, pY, pZ = Souřadnice X,Y,Z domu (kde stojí)

iX, iY, iZ = Souřadnice interioru

ii = ID interioru

Cenik = Cena domu

iddialogu = ID dialogu domu

VW = Vitrual World interioru

a_x, a_y, a_z, a_face = X,Y,Z,FacingAngle auta

a_dialog = ID Dialogu auta

 

Příjemné scriptování :)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...