AvestX 5 Odesláno: 25. Prosinec, 2009 Share Odesláno: 25. Prosinec, 2009 Tak Avest-X je tu znovu se svím trapným TuTem jak na dům v podobě includu. No můžete si to dát do includu ale já to rači v modu, mam v tom pak přehled. 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 ale už to bude starej topic, možná už i je. Link to comment Share on other sites More sharing options...
Guest Odesláno: 25. Prosinec, 2009 Share Odesláno: 25. Prosinec, 2009 Avest-X":1wq38evv]Tak Avest-X je tu znovu se svím trapným TuTem jak na dům v podobě includu.No můžete si to dát do includu ale já to rači v modu, mam v tom pak přehled. 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 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 More sharing options...
AvestX 5 Odesláno: 25. Prosinec, 2009 Author Share Odesláno: 25. Prosinec, 2009 Tovíš no na 1Dům mi to šlo, na víc sem nezkoušel trochu sem se inspirovat CZproperty, tohle sem nikdy nedělal, ale psáno z vlastní hlavy no tut sem tam nakopčil ( Jak na dům ) Link to comment Share on other sites More sharing options...
Guest Odesláno: 25. Prosinec, 2009 Share Odesláno: 25. Prosinec, 2009 Avest-X":3pnzusbw]Tovíš no na 1Dům mi to šlo, na víc sem nezkoušel trochu sem se inspirovat CZproperty, tohle sem nikdy nedělal, ale psáno z vlastní hlavy no tut sem tam nakopčil ( 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 More sharing options...
AvestX 5 Odesláno: 25. Prosinec, 2009 Author Share Odesláno: 25. Prosinec, 2009 Sry ale tohle je offtopic ( Trochu ) Mam ale moc v ní toho zase nemam Link to comment Share on other sites More sharing options...
dymi 0 Odesláno: 25. Prosinec, 2009 Share Odesláno: 25. Prosinec, 2009 Super TUT mě se hodí 10/10 a nejsem asi jediný Link to comment Share on other sites More sharing options...
AvestX 5 Odesláno: 25. Prosinec, 2009 Author Share Odesláno: 25. Prosinec, 2009 Njn jestli to někdo nelockne že to tady je jinak no ale to to nenaruší .. Hodně lidí me o to žebralo jako bezdomovci Link to comment Share on other sites More sharing options...
Roox 1 Odesláno: 25. Prosinec, 2009 Share Odesláno: 25. Prosinec, 2009 JJ good 9/10 -1 za malo funkci Link to comment Share on other sites More sharing options...
AvestX 5 Odesláno: 25. Prosinec, 2009 Author Share Odesláno: 25. Prosinec, 2009 Já nemůžu za to že si tam dáváš auto xD at si ho koupí ve wangu nebo v autoprodejně xD zas tak bohatej aby si dovolil auto bejt nemůže xD Link to comment Share on other sites More sharing options...
Psychedelic 13 Odesláno: 25. Prosinec, 2009 Share Odesláno: 25. Prosinec, 2009 j docela good možná to využiju Link to comment Share on other sites More sharing options...
AvestX 5 Odesláno: 25. Prosinec, 2009 Author Share Odesláno: 25. Prosinec, 2009 Hlavně nemente funkce ! prasátka a pak žebrejte na ICQ "Error" nwm jestli to dobře de no.... Link to comment Share on other sites More sharing options...
RmT_Kjuba 10 Odesláno: 25. Prosinec, 2009 Share Odesláno: 25. Prosinec, 2009 pokud tomu dobre rozumim tak udelam jako kdyby jeden a pak jen pridavam dalsi jen otazka jak se uklada majitel? Link to comment Share on other sites More sharing options...
AvestX 5 Odesláno: 25. Prosinec, 2009 Author Share Odesláno: 25. Prosinec, 2009 To by si si musel udělat aby si vlastnil jen jeden dům ;-) Link to comment Share on other sites More sharing options...
Guest Odesláno: 26. Prosinec, 2009 Share Odesláno: 26. Prosinec, 2009 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 More sharing options...
ATomas 290 Odesláno: 26. Prosinec, 2009 Share Odesláno: 26. Prosinec, 2009 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 ? Link to comment Share on other sites More sharing options...
AvestX 5 Odesláno: 26. Prosinec, 2009 Author Share Odesláno: 26. Prosinec, 2009 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 a jak si to udělal v Rze ? Link to comment Share on other sites More sharing options...
ATomas 290 Odesláno: 26. Prosinec, 2009 Share Odesláno: 26. Prosinec, 2009 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 a jak si to udělal v Rze ? ja porovnavam jmena maitelu ne ID Link to comment Share on other sites More sharing options...
AvestX 5 Odesláno: 20. Leden, 2010 Author Share Odesláno: 20. Leden, 2010 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] 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] ) } Link to comment Share on other sites More sharing options...
Spak 0 Odesláno: 24. Leden, 2010 Share Odesláno: 24. Leden, 2010 č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 More sharing options...
_Killer_ 1 Odesláno: 25. Leden, 2010 Share Odesláno: 25. Leden, 2010 je to dobre viuzijem to Link to comment Share on other sites More sharing options...
AvestX 5 Odesláno: 25. Leden, 2010 Author Share Odesláno: 25. Leden, 2010 č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 More sharing options...
Vidie 5 Odesláno: 25. Leden, 2010 Share Odesláno: 25. Leden, 2010 č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áš Link to comment Share on other sites More sharing options...
AvestX 5 Odesláno: 25. Leden, 2010 Author Share Odesláno: 25. Leden, 2010 Jen kamarádum např fugas ty a td Link to comment Share on other sites More sharing options...
Spak 0 Odesláno: 25. Leden, 2010 Share Odesláno: 25. Leden, 2010 aon dal som rovnaky int ale rozdiely virtulal world a myslel som si že to bude fungovať ale mýlil som sa Link to comment Share on other sites More sharing options...
AvestX 5 Odesláno: 11. Únor, 2010 Author Share Odesláno: 11. Únor, 2010 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now