Skripta koju koristim:NBE x14
Detaljan opis problema:kako da stavim kucu na prodaju?
Dio skripte:/
Neke slike/video za lakse dobivanje pomoci(neobavezno):/
[Pomoc]Kuca
333
pregleda
4
postova
7. Maj 2013.
Quote
Posto vidim da mnogi pocetnici u skriptanju postavaljaju iskljucivo pitanja o ovoj temi,odlucio sam vam postati ovaj TUT,
Prvo morate definirati broj kuca koliko ste dodali u MTA IL DEBUGU
Kod:
#define MAX_HOUSES 200//tu stavite broj kuca
Zatim dodajte;
Kod:
enum houseinfo
{
HouseNames, //imena kuca
HouseCost, //cjena kuce
HouseOwner, // vlasnik kuce
Float😛ickupX, // PickupX
Float😛ickupY, //PickupY
Float😛ickupZ, //PickupZ
Float:TeleX, //lokacija kuce x
Float:TeleY, //lokacija kuce y
Float:TeleZ, //lokacija kuce z
Interior, //interior kuce
HouseSell, //kuca za sell
Owned, //1 ako je kuca u vlasnistvu,0 ako nije
Virtual//posjedovanje vise kuca
}
new HouseInfo;
new HouseCount = -1;
new PickupID;
new InHouse = -1;
Sada ubacite vase kuce ispod OnGameModeInit:
primjer
Kod:
stock CreateHouse(Filename[], Cost, Float😛ickupx, Float😛ickupy, Float😛ickupz, Float:Telex, Float:Teley, Float:Telez, interior, sell)
{
if(!dini_Exists("Owners.ini"))
{
dini_Create("Owners.ini");
}
HouseCount ++;
new ID = HouseCount; //HouseID
format(HouseInfo, 60, "%s", Filename); //Saves the HouseName into a variable
HouseInfo = Cost;
HouseInfo = Pickupx;
HouseInfo = 2000000 + ID;
HouseInfo = Pickupy;
HouseInfo = Pickupz;
HouseInfo = Telex;
HouseInfo = Teley;
HouseInfo = Telez;
HouseInfo = interior;
HouseInfo = sell;
format(HouseInfo, 24, "gj9043jg-er((23");
if(strlen(dini_Get("Owners.ini", Filename))) //This is to see if there is any owner.
{
format(HouseInfo, 24, "%s", dini_Get("Owners.ini", Filename));
HouseInfo = 1;
}
PickupID = CreatePickup(1273, 23, Pickupx, Pickupy, Pickupz, -1); //Creates the pickup 🙂.
Create3DTextLabel("House", 0x00A0F6AA, Pickupx, Pickupy, Pickupz + 0.75, 15.0, 0, 1);
}
}
FileName - spremanje vase kuce (save as)
Cost - cjena kuce
Pickupx - x lokacija
Pickupy - y lokacija
Pickupz - z lokacija
Telex - x tele lokacija
Teley - y tele lokacija
Telez - z tele lokacija
interior - interior kuce
sell - sell kuce
Sada ubacite pod OnPlayerPickUpPickup ovaj kod koji provjerava dali je vasa kuca
Kod:
{
for(new J; J {
if(pickupid == PickupID) //provjerava pickup
{
new str;
if(HouseInfo == 1)
{
format(str, sizeof(str), "~r~House Info~n~~g~Owner: ~w~%s", HouseInfo);
}
if(HouseInfo == 0)
{
format(str, sizeof(str), "~r~House Info~n~~g~Owner: ~w~Nobody");
SendClientMessage(playerid, 0x67F6F6AA, "Kuca je na prodaju! Type /buy to buy it");
}
new str2;
format(str2, sizeof(str2), "~g~Cost price:~w~ %d ~n~~g~Sell Price:~w~ %d", HouseInfo, HouseInfo);
new str3;
format(str3, sizeof(str3), "%s~n~%s", str, str2);
GameTextForPlayer(playerid, str3, 3500, 3);
return 1;
}
}
return 1;
}
Nakon toga dodajte ispod OnPlayerCommandText komande koje ce vam trebat(/buy /sell /enter /exit)
Kod:
if (strcmp("/buy", cmdtext, true, 10) == 0)
{
for(new i; i {
if(!IsPlayerInRangeOfPoint(playerid, 3, HouseInfo, HouseInfo, HouseInfo)) continue;
new Pname; GetPlayerName(playerid, Pname, 24);
for(new S; S {
if(!strcmp(dini_Get("Owned.ini", HouseInfo), Pname)) return SendClientMessage(playerid, 0xF60000AA, "You already have a house!");
}
if(GetPlayerMoney(playerid) < HouseInfo) return SendClientMessage(playerid, 0xF60000AA, "You don't have enough money to buy this house");
if(HouseInfo == 1) return SendClientMessage(playerid, 0xF60000AA, "Kuca ima vlasnika!");
GivePlayerMoney(playerid, - HouseInfo);
GameTextForPlayer(playerid, "~r~House Purchased!", 2000, 3);
HouseInfo = 1;
GetPlayerName(playerid, Pname, 24);
format(HouseInfo, 24, "%s", Pname);
dini_Set("Owners.ini", HouseInfo, Pname);
return 1;
}
SendClientMessage(playerid, 0xF60000AA, "Niste dovoljno blizu kuce");
return 1;
}
if (strcmp("/sell", cmdtext, true, 10) == 0)
{
for(new i; i {
if(IsPlayerInRangeOfPoint(playerid, 3, HouseInfo, HouseInfo, HouseInfo))
{
new Pname; GetPlayerName(playerid, Pname, 24);
if(strcmp(Pname, HouseInfo)) return SendClientMessage(playerid, 0xF60000AA, "Ti ne posjedujes kucu!");
GivePlayerMoney(playerid, HouseInfo);
GameTextForPlayer(playerid, "~r~House Sold!", 2000, 3);
HouseInfo = 0;
format(HouseInfo, 24, "0943jt3u9*egjlfd");
dini_Unset("Owners.ini", HouseInfo);
return 1;
}
}
SendClientMessage(playerid, 0xF60000AA, "Niste dovljno blizu kuce");
return 1;
}
return 0;
}
Kod:
public OnPlayerCommandText(playerid, cmdtext)
{
if (strcmp("/enter", cmdtext, true, 10) == 0)
{
for(new i; i {
if(IsPlayerInRangeOfPoint(playerid, 3, HouseInfo, HouseInfo, HouseInfo))
{
new Pname; GetPlayerName(playerid, Pname, 24);
if(strcmp(Pname, HouseInfo)) return SendClientMessage(playerid, 0xF60000AA, "You don't own this house!");
SetPlayerPos(playerid, HouseInfo, HouseInfo, HouseInfo);
SetPlayerInterior(playerid, HouseInfo);
InHouse = i;
SetPlayerVirtualWorld(playerid, HouseInfo);
SendClientMessage(playerid, 0x00C4F6AA, "Usao si u kucu");
return 1;
}
}
SendClientMessage(playerid, 0xF60000AA, "Niste dovoljno blizu kuce");
return 1;
}
if (strcmp("/exit", cmdtext, true, 10) == 0)
{
if(InHouse == -1) return SendClientMessage(playerid, 0xF60000AA, "Usao si u kucu");
SetPlayerPos(playerid, HouseInfo[InHouse], HouseInfo[InHouse], HouseInfo[InHouse]);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
SendClientMessage(playerid, 0x00C4F6AA, "Izasao si iz kuce");
InHouse = -1;
return 1;
}
napomena:TUT preuzet sa forum.sa-mp.com..,
« Poslednja izmena: Septembar 29, 2010, 00:12:48 pre podne cristiane »
Prvo morate definirati broj kuca koliko ste dodali u MTA IL DEBUGU
Kod:
#define MAX_HOUSES 200//tu stavite broj kuca
Zatim dodajte;
Kod:
enum houseinfo
{
HouseNames, //imena kuca
HouseCost, //cjena kuce
HouseOwner, // vlasnik kuce
Float😛ickupX, // PickupX
Float😛ickupY, //PickupY
Float😛ickupZ, //PickupZ
Float:TeleX, //lokacija kuce x
Float:TeleY, //lokacija kuce y
Float:TeleZ, //lokacija kuce z
Interior, //interior kuce
HouseSell, //kuca za sell
Owned, //1 ako je kuca u vlasnistvu,0 ako nije
Virtual//posjedovanje vise kuca
}
new HouseInfo;
new HouseCount = -1;
new PickupID;
new InHouse = -1;
Sada ubacite vase kuce ispod OnGameModeInit:
primjer
Kod:
stock CreateHouse(Filename[], Cost, Float😛ickupx, Float😛ickupy, Float😛ickupz, Float:Telex, Float:Teley, Float:Telez, interior, sell)
{
if(!dini_Exists("Owners.ini"))
{
dini_Create("Owners.ini");
}
HouseCount ++;
new ID = HouseCount; //HouseID
format(HouseInfo, 60, "%s", Filename); //Saves the HouseName into a variable
HouseInfo = Cost;
HouseInfo = Pickupx;
HouseInfo = 2000000 + ID;
HouseInfo = Pickupy;
HouseInfo = Pickupz;
HouseInfo = Telex;
HouseInfo = Teley;
HouseInfo = Telez;
HouseInfo = interior;
HouseInfo = sell;
format(HouseInfo, 24, "gj9043jg-er((23");
if(strlen(dini_Get("Owners.ini", Filename))) //This is to see if there is any owner.
{
format(HouseInfo, 24, "%s", dini_Get("Owners.ini", Filename));
HouseInfo = 1;
}
PickupID = CreatePickup(1273, 23, Pickupx, Pickupy, Pickupz, -1); //Creates the pickup 🙂.
Create3DTextLabel("House", 0x00A0F6AA, Pickupx, Pickupy, Pickupz + 0.75, 15.0, 0, 1);
}
}
FileName - spremanje vase kuce (save as)
Cost - cjena kuce
Pickupx - x lokacija
Pickupy - y lokacija
Pickupz - z lokacija
Telex - x tele lokacija
Teley - y tele lokacija
Telez - z tele lokacija
interior - interior kuce
sell - sell kuce
Sada ubacite pod OnPlayerPickUpPickup ovaj kod koji provjerava dali je vasa kuca
Kod:
{
for(new J; J
if(pickupid == PickupID) //provjerava pickup
{
new str;
if(HouseInfo == 1)
{
format(str, sizeof(str), "~r~House Info~n~~g~Owner: ~w~%s", HouseInfo);
}
if(HouseInfo == 0)
{
format(str, sizeof(str), "~r~House Info~n~~g~Owner: ~w~Nobody");
SendClientMessage(playerid, 0x67F6F6AA, "Kuca je na prodaju! Type /buy to buy it");
}
new str2;
format(str2, sizeof(str2), "~g~Cost price:~w~ %d ~n~~g~Sell Price:~w~ %d", HouseInfo, HouseInfo);
new str3;
format(str3, sizeof(str3), "%s~n~%s", str, str2);
GameTextForPlayer(playerid, str3, 3500, 3);
return 1;
}
}
return 1;
}
Nakon toga dodajte ispod OnPlayerCommandText komande koje ce vam trebat(/buy /sell /enter /exit)
Kod:
if (strcmp("/buy", cmdtext, true, 10) == 0)
{
for(new i; i
if(!IsPlayerInRangeOfPoint(playerid, 3, HouseInfo, HouseInfo, HouseInfo)) continue;
new Pname; GetPlayerName(playerid, Pname, 24);
for(new S; S
if(!strcmp(dini_Get("Owned.ini", HouseInfo), Pname)) return SendClientMessage(playerid, 0xF60000AA, "You already have a house!");
}
if(GetPlayerMoney(playerid) < HouseInfo) return SendClientMessage(playerid, 0xF60000AA, "You don't have enough money to buy this house");
if(HouseInfo == 1) return SendClientMessage(playerid, 0xF60000AA, "Kuca ima vlasnika!");
GivePlayerMoney(playerid, - HouseInfo);
GameTextForPlayer(playerid, "~r~House Purchased!", 2000, 3);
HouseInfo = 1;
GetPlayerName(playerid, Pname, 24);
format(HouseInfo, 24, "%s", Pname);
dini_Set("Owners.ini", HouseInfo, Pname);
return 1;
}
SendClientMessage(playerid, 0xF60000AA, "Niste dovoljno blizu kuce");
return 1;
}
if (strcmp("/sell", cmdtext, true, 10) == 0)
{
for(new i; i
if(IsPlayerInRangeOfPoint(playerid, 3, HouseInfo, HouseInfo, HouseInfo))
{
new Pname; GetPlayerName(playerid, Pname, 24);
if(strcmp(Pname, HouseInfo)) return SendClientMessage(playerid, 0xF60000AA, "Ti ne posjedujes kucu!");
GivePlayerMoney(playerid, HouseInfo);
GameTextForPlayer(playerid, "~r~House Sold!", 2000, 3);
HouseInfo = 0;
format(HouseInfo, 24, "0943jt3u9*egjlfd");
dini_Unset("Owners.ini", HouseInfo);
return 1;
}
}
SendClientMessage(playerid, 0xF60000AA, "Niste dovljno blizu kuce");
return 1;
}
return 0;
}
Kod:
public OnPlayerCommandText(playerid, cmdtext)
{
if (strcmp("/enter", cmdtext, true, 10) == 0)
{
for(new i; i
if(IsPlayerInRangeOfPoint(playerid, 3, HouseInfo, HouseInfo, HouseInfo))
{
new Pname; GetPlayerName(playerid, Pname, 24);
if(strcmp(Pname, HouseInfo)) return SendClientMessage(playerid, 0xF60000AA, "You don't own this house!");
SetPlayerPos(playerid, HouseInfo, HouseInfo, HouseInfo);
SetPlayerInterior(playerid, HouseInfo);
InHouse = i;
SetPlayerVirtualWorld(playerid, HouseInfo);
SendClientMessage(playerid, 0x00C4F6AA, "Usao si u kucu");
return 1;
}
}
SendClientMessage(playerid, 0xF60000AA, "Niste dovoljno blizu kuce");
return 1;
}
if (strcmp("/exit", cmdtext, true, 10) == 0)
{
if(InHouse == -1) return SendClientMessage(playerid, 0xF60000AA, "Usao si u kucu");
SetPlayerPos(playerid, HouseInfo[InHouse], HouseInfo[InHouse], HouseInfo[InHouse]);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
SendClientMessage(playerid, 0x00C4F6AA, "Izasao si iz kuce");
InHouse = -1;
return 1;
}
napomena:TUT preuzet sa forum.sa-mp.com..,
« Poslednja izmena: Septembar 29, 2010, 00:12:48 pre podne cristiane »
Morate biti prijavljeni da biste odgovorili na ovu temu.
Prijava