Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: SpawneR. poslato Januar 20, 2013, 12:17:33 POSLE PODNE

Naslov: [Pomoc]Vozila samo za zaposlene i ugovor
Poruka od: SpawneR. poslato Januar 20, 2013, 12:17:33 POSLE PODNE
Skripta koju koristim: Burn Gaming od 0
Detaljan opis problema: Kako da namestim da samo zaposleni mogu da voze kosilicu? i kako da namestim da treba da se ispuni 4h ugovra da bi ste dali otkaz?

Dio skripte:

otkaz komanda za ugovor :)
YCMD:otkaz(playerid, params[], help)
{
    #pragma unused help
    if(PlayerInfo[playerid][pPosao] < 1) return SendClientMessage(playerid,-1,"Niste zaposljeni!");
PlayerInfo[playerid][pPosao] = 0;
SendClientMessage(playerid,-1,"Dali ste otkaz");
return true;
    }


Naslov: Odg: [Pomoc]Vozila samo za zaposlene i ugovor
Poruka od: SpawneR. poslato Januar 20, 2013, 12:27:26 POSLE PODNE
dobro posto ni payday ni level system nisam jos radio reci mi kako da namestim da samo kosac trave moze da vozi kosilicu?  :)
Naslov: Odg: [Pomoc]Vozila samo za zaposlene i ugovor
Poruka od: [DO]Wegy poslato Januar 20, 2013, 12:45:57 POSLE PODNE
Ovako stavi za ta vozila, samo da se moze vozit kad se zaposlis:


forward KosacVozilo(carid);
new kosacvozilo;

public KosacVozilo(carid)
{
for(new i = 0; i < sizeof(kosacvozilo); i++)
{
if(carid == kosacvozilo[i]) return 1;
}
return 0;
}
//--Ovo dodas u OnPlayerStateChange
if(newstate == PLAYER_STATE_DRIVER)
{
if(KosacVozilo(newcar))
{
if(PlayerInfo[playerid][pJob]== 4)  // Stavi svoj ID posla umjesto 4
{
CanTurnEngine[playerid] = newcar;
}
else
{
SafeRemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "** Nemate kljuceve ovoga vozila!");
}
}
}
// Ovo dodas u OnGamemodeInit
kosacvozilo = AddStaticVehicle(--------------------)



Samo ljepo namjesi ovo, jer nemogu pomaknit s TAB-om...
Naslov: Odg: [Pomoc]Vozila samo za zaposlene i ugovor
Poruka od: Blaeks poslato Januar 20, 2013, 12:52:09 POSLE PODNE
CMD:otkaz(playerid, params[])
{
        new satiposla = 5 - PlayerInfo[playerid][pContractTime];
if(PlayerInfo[playerid][pJob] == 0) return SCM(playerid, GRAD2, "(greska) Ne mozete dati otkaz, kada niste zaposleni!");
if(PlayerInfo[playerid][pContractTime] < 5) return SCMF(playerid, SVETLOPLAVA, "Ne mozete dati otkaz, odradili ste %d od potrebnih 5 sati ugovora!", satiposla / 5);
PlayerInfo[playerid][pJob] = 0;
SCM(playerid, -1, "* Dali ste otkaz,zelimo vam vise srece u drugom poslu.");
return 1;
}
pcontract time izmeni u tvoju varijablu za sate igranja
Naslov: Odg: [Pomoc]Vozila samo za zaposlene i ugovor
Poruka od: SpawneR. poslato Januar 20, 2013, 12:56:36 POSLE PODNE
Wegy - ja vec imam definisan stock za vozilokosaca

stock VoziloKosaca(carid)
{
for(new i = 0; i < sizeof(kosilica); i++)
{
if(carid == kosilica[i]) return 1;
}
return 0;
}


a ovo tvoje sto sam stavio pod OnPlayerStateChange
sam prilagodio mom poslu ovako:

public OnPlayerStateChange(playerid, newstate, oldstate)
{
    if(newstate == PLAYER_STATE_DRIVER)
{
if(VoziloKosaca(newcar))
{
if(PlayerInfo[playerid][pPosao]== 1)
{
CanTurnEngine[playerid] = newcar;
}
else
{
SafeRemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "** Nemate kljuceve ovoga vozila!");
}
}
}
return 1;
}


izbacuje mi ove errore

d:\My Documents\Desktop\Burn Gaming Roleplay\gamemodes\BG.pwn(1084) : error 017: undefined symbol "newcar"
d:\My Documents\Desktop\Burn Gaming Roleplay\gamemodes\BG.pwn(1088) : error 017: undefined symbol "CanTurnEngine"
d:\My Documents\Desktop\Burn Gaming Roleplay\gamemodes\BG.pwn(1088) : warning 215: expression has no effect
d:\My Documents\Desktop\Burn Gaming Roleplay\gamemodes\BG.pwn(1088) : error 001: expected token: ";", but found "]"
d:\My Documents\Desktop\Burn Gaming Roleplay\gamemodes\BG.pwn(1088) : error 029: invalid expression, assumed zero
d:\My Documents\Desktop\Burn Gaming Roleplay\gamemodes\BG.pwn(1088) : fatal error 107: too many error messages on one line


na ovoj liniji:

CanTurnEngine[playerid] = newcar;

Naslov: Odg: [Pomoc]Vozila samo za zaposlene i ugovor
Poruka od: Blaeks poslato Januar 20, 2013, 12:57:35 POSLE PODNE
zato sto ti je on dao Gf kodove, prelistaj to u tvoje varijable iz 0
Naslov: Odg: [Pomoc]Vozila samo za zaposlene i ugovor
Poruka od: SpawneR. poslato Januar 20, 2013, 13:00:15 POSLE PODNE
Citat: Blaeks poslato Januar 20, 2013, 12:57:35 POSLE PODNE
zato sto ti je on dao Gf kodove, prelistaj to u tvoje varijable iz 0

S'a be?! Kakve iz 0?
Naslov: Odg: [Pomoc]Vozila samo za zaposlene i ugovor
Poruka od: [DO]Wegy poslato Januar 20, 2013, 13:05:41 POSLE PODNE
Dodaj ovo gore na pocetak di su ti svi "new"

new CanTurnEngine[MAX_PLAYERS];

Ovo dodaj posle "if(newstate == PLAYER_STATE_DRIVER)"

new newcar = GetPlayerVehicleID(playerid);
Naslov: Odg: [Pomoc]Vozila samo za zaposlene i ugovor
Poruka od: FlasH poslato Januar 20, 2013, 13:15:04 POSLE PODNE
Probaj ovako radit ako ti je lakše.

new KosaciCar[4];

forward IsAKosacCar(carid);

public IsAKosacCar(carid)
{
for(new i = 0; i < sizeof(KosaciCar); i++)
{
if(carid == KosaciCar[i])
        return 1;
}
return 0;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER)
{
if(IsAKosacCar(newcar))
{
    if(PlayerInfo[playerid][pJob] == idposla) {}
    else
    {
      RemovePlayerFromVehicle(playerid);
        SendClientMessage(playerid, COLOR_GREY,"Nemate kljuceve od ovog vozila.");
    }
    }
}
return 1;
}

// OnGameModeInit
KosaciCar[0] = AddStaticVehicleEx(koordinate);
KosaciCar[1] = AddStaticVehicleEx(koordinate);
KosaciCar[2] = AddStaticVehicleEx(koordinate);
Naslov: Odg: [Pomoc]Vozila samo za zaposlene i ugovor
Poruka od: SpawneR. poslato Januar 20, 2013, 17:19:01 POSLE PODNE
Reseno! Lock