Neopry 0 Odesláno: 24. Červenec, 2013 Share Odesláno: 24. Červenec, 2013 Ahoj, Stáhnul jsem si HouseSystem ale vůbec nevím kam mám přidat domy, buď jsem slepej nebo to tam není, no posuďte sam Předem díky... #include <a_samp> #include <dini> #define MAX_HOUSES 50 #define IsPlayerInRangeOfPoint //-------------------------------------| enum HOUSE_DATA { Float:p_X, Float:p_Y, Float:p_Z, Float:i_X, Float:i_Y, Float:i_Z, iin, Cena, Vlastnik[MAX_PLAYER_NAME], Dialog, Text3D:Text, Pickup, VW, Zamek } new HouseInfo[MAX_HOUSES][HOUSE_DATA]; new InHouse[MAX_PLAYERS] = {-1,...}; new HouseCount = -1; //------------------------------------| 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) { HouseCount ++; 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][VW] = 50+HouseCount; HouseInfo[HouseCount][Vlastnik] = 0; HouseInfo[HouseCount][Zamek] = 0; HouseInfo[HouseCount][Dialog] = iddialogu; new s[128]; format(s,128,"Houses/%d.txt",HouseCount); if(!fexist(s)){ dini_Create(s); dini_Set(s,"Owner","none"); dini_IntSet(s,"Locked",0); } new sx[100]; if(strcmp(dini_Get(s,"Owner"),"none",true) == 0){ format(HouseInfo[HouseCount][Vlastnik],MAX_PLAYER_NAME,"Nikto"); HouseInfo[HouseCount][Zamek] = 0; HouseInfo[HouseCount][Pickup] = CreatePickup(1273,1,pX, pY, pZ); format(sx,100,"Dom č.%d\r\nMajiteľ: Nikto\r\nCena: %d",HouseCount,Cenik); HouseInfo[HouseCount][Text] = Create3DTextLabel(sx,0xFF0000FF,pX,pY,pZ+1,50,0); }else{ HouseInfo[HouseCount][Pickup] = CreatePickup(1272,1,pX, pY, pZ); format(HouseInfo[HouseCount][Vlastnik],MAX_PLAYER_NAME,"%s",dini_Get(s,"Owner")); HouseInfo[HouseCount][Zamek] = dini_Int(s,"Locked"); format(sx,100,"Dom č.%d\r\nMajiteľ: %s",HouseCount,dini_Get(s,"Owner")); HouseInfo[HouseCount][Text] = Create3DTextLabel(sx,0xFF0000FF,pX,pY,pZ+1,50,0); } printf("Dom %d Vytvorený",HouseCount); }else{ print("<!-- Kapacita AddHouse prekrocena, dum nebyl vytvoren !-->"); } return 1; } //------------------------------------| public OnPlayerPickUpPickup(playerid, pickupid) { for(new h=0;h<HouseCount+1;h++) { if(IsPlayerInRangeOfPoint(playerid,2,HouseInfo[h][p_X],HouseInfo[h][p_Y],HouseInfo[h][p_Z])) { 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) { if(InHouse[playerid] != -1){ new HouseId = InHouse[playerid]; if(IsPlayerInRangeOfPoint(playerid,10,HouseInfo[HouseId][i_X],HouseInfo[HouseId][i_Y],HouseInfo[HouseId][i_Z])) { SetPlayerPos(playerid,HouseInfo[HouseId][p_X],HouseInfo[HouseId][p_Y],HouseInfo[HouseId][p_Z]); SetPlayerInterior(playerid,0); SetPlayerVirtualWorld(playerid,0); InHouse[playerid] = -1; } } } return 1; } //------------------------------------| public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { for(new h=0;h<HouseCount+1;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(!IsHouseForSale(h)) return SendClientMessage(playerid, 0xFFFFFFFF, "Tento dům již někdo vlastní !"); new s[128]; format(s,128,"Houses/%d.txt",h); dini_Set(s,"Owner",PlayerName(playerid)); GivePlayerMoney(playerid, -HouseInfo[h][Cena]); SendClientMessage(playerid, 0xFFFFFFFF, "Pořidil jsi si dům !"); new sx[100]; format(sx,100,"Dom č.%d\r\nMajiteľ: %s",h,dini_Get(s,"Owner")); Update3DTextLabelText(HouseInfo[h][Text],0xFF0000FF,sx); DestroyPickup(HouseInfo[h][Pickup]); HouseInfo[h][Pickup] = CreatePickup(1272,1,HouseInfo[h][p_X],HouseInfo[h][p_Y],HouseInfo[h][p_Z]); } else if(listitem == 1) { if(!IsPlayerHouseOwner(playerid,h)) return SendClientMessage(playerid, 0xFFFFFFFF, "Tento dům není tvůj !"); new s[128]; format(s,128,"Houses/%d.txt",h); dini_Set(s,"Owner","none"); GivePlayerMoney(playerid, HouseInfo[h][Cena]/2); SendClientMessage(playerid, 0xFFFFFFFF, "Dům prodán, byla ti vrácena cena !"); new sx[100]; format(sx,100,"Dom č.%d\r\nMajiteľ: Nikto\r\nCena: %d",h,HouseInfo[h][Cena]); Update3DTextLabelText(HouseInfo[h][Text],0xFF0000FF,sx); DestroyPickup(HouseInfo[h][Pickup]); HouseInfo[h][Pickup] = CreatePickup(1273,1,HouseInfo[h][p_X],HouseInfo[h][p_Y],HouseInfo[h][p_Z]); } else if(listitem == 2) { if(!IsPlayerHouseOwner(playerid,h)) return SendClientMessage(playerid, 0xFFFFFFFF, "Tento dům není tvůj !"); new s[128]; format(s,128,"Houses/%d.txt",h); dini_IntSet(s,"Locked",1); HouseInfo[h][Zamek] = 0; SendClientMessage(playerid, 0xFFFFFFFF, "Dům zamknut !"); } else if(listitem == 3) { if(!IsPlayerHouseOwner(playerid,h)) return SendClientMessage(playerid, 0xFFFFFFFF, "Tento dům není tvůj !"); SendClientMessage(playerid, 0xFFFFFFFF, "Dům odemknut !"); new s[128]; format(s,128,"Houses/%d.txt",h); dini_IntSet(s,"Locked",0); 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 (IsHouseForSale(h)) { 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]); SetPlayerVirtualWorld(playerid,HouseInfo[h][VW]); InHouse[playerid] = h; SendClientMessage(playerid, 0xFFFFFFFF, "Dům opustíš L.ALT !"); } } } } return 1; } //------------------------------------| stock PlayerName(playerid){ new name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name,MAX_PLAYER_NAME); return name; } stock IsPlayerHouseOwner(playerid,houseid) { new cesta[50]; format(cesta,150,"Houses/%d.txt",houseid); if(strcmp(PlayerName(playerid),dini_Get(cesta,"Owner"), false) == 0) return true; return false; } stock IsHouseForSale(houseid) { new cesta[50]; format(cesta,150,"Houses/%d.txt",houseid); if(strcmp("none",dini_Get(cesta,"Owner"), false) == 0) return true; return false; } Link to comment Share on other sites More sharing options...
0 jenkings 121 Odesláno: 24. Červenec, 2013 Share Odesláno: 24. Červenec, 2013 Co třeba vytvořit domy pomocí fce: AddHouse(Float:pX, Float:pY, Float:pZ, Float:iX, Float:iY, Float:iZ, ii, Cenik, iddialogu) ?? Link to comment Share on other sites More sharing options...
Dotaz
Neopry 0
Ahoj,
Stáhnul jsem si HouseSystem ale vůbec nevím kam mám přidat domy, buď jsem slepej nebo to tam není, no posuďte sam
Předem díky...
Link to comment
Share on other sites
1 odpověd na tuto otázku
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