Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: Jugoslavija.amx poslato Decembar 24, 2014, 16:27:58 POSLE PODNE

Naslov: [Pomoc] Ne oduzimaju se pare pri kupovini (treba pCash ubacit u komandu)
Poruka od: Jugoslavija.amx poslato Decembar 24, 2014, 16:27:58 POSLE PODNE
Skripta koju koristim:NGRP
Detaljan opis problema: Ovako, uzeo sam Greedy ovu skriptu za House System, ubacio u mod i sve radi, problem je to sto npr kada kupim kucu pare mi se oduzmu i vrate na staro stanje, vjerovatno zato sto nije definisana varijabla za novac u komandi, mozete li mi napraviti jedan primjer a ja ću ostalo?
Hvala puno :)
VARIJABLA ZA NOVAC JE  pCash

Dio skripte:

CMD:kupikucu(playerid, params[])
{
    for(new i; i < sizeof(KucaInfo); i++)
{
    if(IsPlayerInRangeOfPoint(playerid, 3.0, KucaInfo[i][kUlazX], KucaInfo[i][kUlazY], KucaInfo[i][kUlazZ]))
    {
    if(!strcmp(KucaInfo[i][kVlasnik], "Niko", true) && KucaInfo[i][kProveraVlasnika] == 0)
    {
        if(PlayerInfo[playerid][pPosedovanjeKuce] != -1) return SCM(playerid,-1, ""CRVENA"HL:RP "SIVA"Vec imas kucu!");
        if(GetPlayerScore(playerid) < KucaInfo[i][kLevel]) return SCM(playerid,-1,"HL:RP "CRVENA"Nemate dovoljan level za kupovinu kuce!");
        if(GetPlayerMoney(playerid) < KucaInfo[i][kCena]) return SCM(playerid,-1, "HL:RP "CRVENA"Nemate dovoljno novca za kupovinu kuce!");
if(PlayerInfo[playerid][pRent] != -1) return SCM(playerid,-1,"HL:RP "CRVENA"Rentate kucu prvo unrentajte kucu da bi kupili ovu!");
strmid(KucaInfo[i][kVlasnik], ImeIgraca(playerid), 0, strlen(ImeIgraca(playerid)), 255);
        KucaInfo[i][kProveraVlasnika] = 1; SetPlayerInterior(playerid, KucaInfo[i][kInt]); PlayerInfo[playerid][pPosedovanjeKuce] = i;
        SetPlayerVirtualWorld(playerid, KucaInfo[i][kVW]); SetPlayerPos(playerid, KucaInfo[i][kIzlazX], KucaInfo[i][kIzlazY], KucaInfo[i][kIzlazZ]);
        KucaInfo[i][kZatvoreno] = 0; GivePlayerMoney(playerid, -KucaInfo[i][kCena]); KuceLP(i); SacuvajKucu(i);
        SCM(playerid,-1, ""SPLAVA"HL:RP | "SIVA"Cestitamo, kupili ste kucu!");
        SCM(playerid,-1, ""SPLAVA"HL:RP | "SIVA"Za komande kuce koristite /kuca!");
        SCM(playerid,-1, ""SPLAVA"HL:RP | "SIVA"Za ulaz u kucu koristi tipku F!");
        return 1;
}
else return SCM(playerid, -1, ""CRVENA"HL:RP "SIVA"Ta kuca se ne prodaje!");
}
}
    return 1;
}




Neke slike/video za lakse dobivanje pomoci(neobavezno): //
Naslov: Odg: [Pomoc] Ne oduzimaju se pare pri kupovini (treba pCash ubacit u komandu)
Poruka od: Denis_Lapi poslato Decembar 24, 2014, 16:54:23 POSLE PODNE
Pa ubacu u strukturu (enum) pCash i onda ubaci ovako u toj komandi

PlayerInfo[playerid][pCash] -= -KucaInfo[i][kCena];
Naslov: Odg: [Pomoc] Ne oduzimaju se pare pri kupovini (treba pCash ubacit u komandu)
Poruka od: Jugoslavija.amx poslato Decembar 24, 2014, 17:15:28 POSLE PODNE
Kako misliš da ubacim strukturu enum pCash?,
Opet ista stvar, evo primjer komande za kupnju kuce koji radi ali taj House Sys sam izbacio


CMD:buyhouse(playerid, params[])
{
    new string[128];
    new playername[MAX_PLAYER_NAME];
    new sendername[MAX_PLAYER_NAME];
    new Float:oldposx, Float:oldposy, Float:oldposz;
    GetPlayerName(playerid, playername, sizeof(playername));
    GetPlayerPos(playerid, oldposx, oldposy, oldposz);
    for(new h = 0; h < sizeof(HouseInfo); h++)
{
        if(IsPlayerInRangeOfPoint(playerid,2.0,HouseInfo[h][hExteriorX], HouseInfo[h][hExteriorY], HouseInfo[h][hExteriorZ]) )
{
            if( HouseInfo[h][hOwned] == 0 )
{
                if(PlayerInfo[playerid][pLevel] < HouseInfo[h][hLevel])
{
                    format(string, sizeof(string), "   Moras biti level %d da kupis ovo!", HouseInfo[h][hLevel]);
                    SendClientMessageEx(playerid, COLOR_GRAD5, string);
                    return 1;
                }
                if(PlayerInfo[playerid][pPhousekey] == INVALID_HOUSE_ID)
{

if(GetPlayerCash(playerid) > HouseInfo[h][hValue])
{
PlayerInfo[playerid][pPhousekey] = h;
HouseInfo[h][hOwned] = 1;
GetPlayerName(playerid, sendername, sizeof(sendername));
strmid(HouseInfo[h][hOwner], sendername, 0, strlen(sendername), 255);
GivePlayerCash(playerid,-HouseInfo[h][hValue]);
SetPlayerInterior(playerid,HouseInfo[h][hHInteriorWorld]);
if(HouseInfo[h][hCustomInterior] == 1)
{
TogglePlayerControllable(playerid, 0);
GameTextForPlayer(playerid, "Ucitavanje objekata...", 4000, 5);
SetPVarInt(playerid, "Loading..Interior", 1);
SetTimerEx("SafeLoadObjects", 4000, 0, "d", playerid);
}
SetPlayerPos(playerid,HouseInfo[h][hInteriorX],HouseInfo[h][hInteriorY],HouseInfo[h][hInteriorZ]);
GameTextForPlayer(playerid, "~w~Dobrodosao kuci~n~Mozes uvijek izac dolazeci do ovih vrata i kucanjem /izlaz.", 5000, 3);
PlayerInfo[playerid][pInt] = HouseInfo[h][hHInteriorWorld];
SendClientMessageEx(playerid, COLOR_WHITE, "Cestitamo na vasoj novoj kupovini!");
SendClientMessageEx(playerid, COLOR_WHITE, "Upisi /help da vidis pomoc vezanu za ovu sekciju!");
SaveHouses();
OnPlayerStatsUpdate(playerid);
PlayerInfo[playerid][pLocal] = h+6000;
PlayerInfo[playerid][pVW] = h+6000;
SetPlayerVirtualWorld(playerid, h+6000);
DestroyDynamicPickup(HouseInfo[h][hPickupID]);
HouseInfo[h][hPickupID] = CreateDynamicPickup(1273, 23, HouseInfo[h][hExteriorX], HouseInfo[h][hExteriorY], HouseInfo[h][hExteriorZ]);
format(string, sizeof(string), "Ova kuca je u vlasnistvu od:\n %s\nPotreban Level: %d\nID: %d",HouseInfo[h][hOwner],HouseInfo[h][hLevel],h);
UpdateDynamic3DTextLabelText(HouseInfo[h][hTextID], COLOR_GREEN, string);
new ip[32];
GetPlayerIp(playerid,ip,sizeof(ip));
format(string,sizeof(string),"%s (IP: %s) has bought house ID %d for $%d.",GetPlayerNameEx(playerid),ip,h,HouseInfo[h][hValue]);
Log("logs/house.log", string);
return 1;
}
else
{
SendClientMessageEx(playerid, COLOR_WHITE, "   You don't have the cash for that!");
return 1;
}
}
Naslov: Odg: [Pomoc] Ne oduzimaju se pare pri kupovini (treba pCash ubacit u komandu)
Poruka od: [UG]Cile poslato Decembar 24, 2014, 17:43:09 POSLE PODNE
Ovaj dio obrisi
GivePlayerMoney(playerid, -KucaInfo[i][kCena]);

a ovaj ispod ubaci u komandu

GivePlayerCash(playerid, -KucaInfo[i][kCena]);
Naslov: Odg: [Pomoc] Ne oduzimaju se pare pri kupovini (treba pCash ubacit u komandu)
Poruka od: Jugoslavija.amx poslato Decembar 24, 2014, 19:49:02 POSLE PODNE
Hvala, radi :D
Možeš li mi sada dati primjer ovoga, kada hocu nesto da kupim u firmi pise da nemam dovoljno novca a imam, i to sam isto ubacivao.. samo mi daj primjer
EVO DIO I DIALOGA

new i = PlayerInfo[playerid][pImaFirmu];
if(PlayerInfo[playerid][pCash] < 15) return SCM(playerid, COLOR_WHITE, ""SVPLAVA"[BD Info] | "BIJELA"Nemate dovoljno novca");
GivePlayerCash(playerid, -15);
FI[IntID[i]][fNovac] += 15;
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_SPRUNK);
SCM(playerid, -1, ""SVPLAVA"[BD Info] | "BIJELA"Kupio si votku");
new string[128];
new pname[MAX_PLAYER_NAME];
  GetPlayerName(playerid, pname, sizeof(pname));
  format(string, sizeof(string), "%s pije votku", pname);
    SCM(playerid, 0x586433FF, string);
Sigraca(playerid);
SacuvajFirmu(i);
Naslov: Odg: [Pomoc] Ne oduzimaju se pare pri kupovini (treba pCash ubacit u komandu)
Poruka od: ▂ ▃ ▅ Rudimental ▅ ▃ ▂ poslato Decembar 24, 2014, 20:13:55 POSLE PODNE
Pa za proveru novca dali igrac ima dovoljno koliko bi trebalo za nesto mozes koristiti tu varijablu pCash ako ti je ona lepo sredjena da zapisuje tacan broj novca
if(PlayerInfo[playerid][pCash] < 15) return SCM(playerid, -1, "Nemate dovoljno novca");

A takodje mozes koristiti i funkciju GetPlayerMoney
if(GetPlayerMoney(playerid) < 15) return SCM(playerid, -1, "Nemate dovoljno novca");
Naslov: Odg: [Pomoc] Ne oduzimaju se pare pri kupovini (treba pCash ubacit u komandu)
Poruka od: Jugoslavija.amx poslato Decembar 24, 2014, 20:16:15 POSLE PODNE
Hvala puno, probao sam ovako i radi

if(GetPlayerCash(playerid) < 150) return SCM(playerid,-1, "HS | "CRVENA"Nemate dovoljno novca za kupovinu kuce!");


LOCK :D