Wysłany: 2013-05-30, 22:27
akon823
Czekotubka :D
Wiek: 29 Na forum: 4815 dni Posty: 399
Nick w MP: Remik14
Piwa : 152
Witam
Mam problem
Posiadam kod na IsPlayerInArea lecz kompletnie go nie czaje ...
Mog?by mi kto? wyja?ni? co do czego s?u?y i poda? przyk?adowy kod do tego publicka? Chodzi g?ownie o to co ,gdzie mam wpisa? . Czyta?em na Wiki Samp ale nie kumam dalej
Kod
Kod: forward PrzestanekxD(playerid);
public PrzestanekxD(playerid)
{
new vehicle;
vehicle = GetPlayerVehicleID(playerid);
if(gTeam[playerid] == TEAM_KIEROWCAA)
{
if(vehicle == 431)
{
IsPlayerInArea(playerid, Float:MinX, Float:MinY, Float:MaxX, Float:MaxY)
{
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X, Y, Z);
if(X >= MinX && X <= MaxX && Y >= MinY && Y <= MaxY)
{
return 1;
}
//tutaj iconki
}
}
}
return 1;
}
Pozdrawiam
Wysłany: 2013-05-30, 22:53
xqz
otaku desu!
Wiek: 32 Na forum: 6406 dni Posty: 723
Nick w MP: xqz
Piwa : 5465
o-----------
| obszar. |
| ........... |
-----------o
tam gdzie o pobierasz pozycj?.
W obu pozycjach masz X,Y,Z.
W tej funkcji
Kod: IsPlayerInArea(playerid, Float:MinX, Float:MinY, Float:MaxX, Float:MaxY)
kolejno wpisujesz:
playerid,
najmniejsza wspolrzedna X z pozycji ktore pobrales
najmniejsza wspolrzedna Y z pozycji ktora pobrales
najwieksza wspolrzedna X z pozycji ktore pobrales
najwieksza wspolrzedna Y z pozycji ktora pobrales
Proste
Wysłany: 2013-05-30, 23:05
akon823
Czekotubka :D
Wiek: 29 Na forum: 4815 dni Posty: 399
Nick w MP: Remik14
Piwa : 152
I reszty mam nie zmienia??
Je?li bym chcia? wi?cej tych aren to po prostu powtarzam funkcj??
Je?li bym chcia? aby pokazywa?o na minmapce gdzie jest kolejny punkt oraz aby przy ostatnim dostawa?o si? pieni?dze za przejazd .
I czy mo?na by ustawi? co? takiego , ?e po kolei pokazuje gdzie jecha? (czyli jak si? wjedzie w 1 punkt to pokazuje nast?pny) czy ju? to od razy b?dzie?:D
Sory za to ale pierwszy raz u?ywam tej funkcji
Pozdrawiam
Wysłany: 2013-05-30, 23:45
xqz
otaku desu!
Wiek: 32 Na forum: 6406 dni Posty: 723
Nick w MP: xqz
Piwa : 5465
"akon823" napisał/a :e?li bym chcia? wi?cej tych aren to po prostu powtarzam funkcj??
tak
Powinno to wygladac tak:
Kod: forward PrzestanekxD(playerid);
public PrzestanekxD(playerid)
{
new vehicle;
vehicle = GetPlayerVehicleID(playerid);
if(gTeam[playerid] == TEAM_KIEROWCAA)
{
if(vehicle == 431)
{
if(IsPlayerInArea(playerid, Float:MinX, Float:MinY, Float:MaxX, Float:MaxY))
{
//tutaj iconki
}
}
}
return 1;
}
"akon823" napisał/a :Je?li bym chcia? aby pokazywa?o na minmapce gdzie jest kolejny punkt oraz aby przy ostatnim dostawa?o si? pieni?dze za przejazd .
Jaki punkt?
"akon823" napisał/a :I czy mo?na by ustawi? co? takiego , ?e po kolei pokazuje gdzie jecha? (czyli jak si? wjedzie w 1 punkt to pokazuje nast?pny) czy ju? to od razy b?dzie?:D
Jaki punkt?!
Wysłany: 2013-05-31, 00:25
akon823
Czekotubka :D
Wiek: 29 Na forum: 4815 dni Posty: 399
Nick w MP: Remik14
Piwa : 152
Bo ja chcia?em przystanek autobusowy , chcia?em taka jakby trase dla kierowcy autobusu ze aby jezdzil od punktu do punktu chcia?em po prostu aby by?y checkpointy i musial jezdzic do tych punkt?w i na przystanku timer na 2 minuty aby mogli wszyscy wsiasc i w tym czasie kierowca zamrozony to wszystko ju? mam opr?cz wlasnie tej trasy ze ma jezdzic od przystanku do przystanku i w tym celu wlasnie kazali mi zrobi? IsPlayerInArena a ja chcia?em po prostu trase cos na zasadzie zdawania na prawko i jak si? dojedzie do ostatniego punktu to kierowca dostaje wynagrodzenie
Pomozesz?:D
Pozdrawiam
Wysłany: 2013-05-31, 10:11
xqz
otaku desu!
Wiek: 32 Na forum: 6406 dni Posty: 723
Nick w MP: xqz
Piwa : 5465
Kto kaza? strefe zrobic? ;o
Checkpointy tutaj trzeba
Wysłany: 2013-05-31, 10:56
akon823
Czekotubka :D
Wiek: 29 Na forum: 4815 dni Posty: 399
Nick w MP: Remik14
Piwa : 152
W?a?nie wiem , lecz kompletnie nie wiem jak to zrobi? patrzy?em ju? na skrypty oparte na tym , ?e je?dzisz do checkpointow ale nadal nie wiem jak zrobi? aby by?a trasa Pomo?e kto??:D
Wysłany: 2013-05-31, 11:16
xqz
otaku desu!
Wiek: 32 Na forum: 6406 dni Posty: 723
Nick w MP: xqz
Piwa : 5465
Przyklad zrobilem tutaj:
Kod: #include a_samp
#include zcmd
#define TIME_TO_UNFREEZE_BUS 1000 //czas do odmrozenia po wjechaniu w checkpoint
new Float:Pos_checkpoint[10][4]={ //twoje pozycje checkpointow, kolejno: x,y,z,rozmiar cylindra
{2483.5767,-1661.1938,13.3359,4.0},
{2412.1675,-1660.1268,13.3438,4.0},
{2289.6028,-1658.2565,14.8459,4.0},
{2187.2253,-1640.8170,14.9331,4.0},
{2120.8071,-1620.6145,13.3904,4.0},
{2036.9312,-1612.3821,13.3828,4.0},
{2001.5435,-1695.8450,13.3828,4.0},
{2038.1719,-1752.2499,13.3828,4.0},
{2137.7568,-1752.2389,13.3828,4.0},
{2213.0842,-1732.3092,13.3828,4.0} //to ostatni checkpoint (z flaga) ktory konczy misje busa
},
checkpoint_now[MAX_PLAYERS]=-1;
CMD:test(playerid,cmd[])
{
checkpoint_now[playerid]=0; //to umieszczasz tam gdzie startujesz misje
StartTheBus(playerid); // to umieszczasz tam gdzie startujesz misje
return 1;
}
stock StartTheBus(playerid)
{
switch(checkpoint_now[playerid])
{
case 0: SetPlayerRaceCheckpoint(playerid,0,Pos_checkpoint[checkpoint_now[playerid]][0],Pos_checkpoint[checkpoint_now[playerid]][1],Pos_checkpoint[checkpoint_now[playerid]][2],Pos_checkpoint[checkpoint_now[playerid]+1][0],Pos_checkpoint[checkpoint_now[playerid]+1][1],Pos_checkpoint[checkpoint_now[playerid]+1][2],Pos_checkpoint[checkpoint_now[playerid]][3]),TogglePlayerControllable(playerid,false);
case 1: SetPlayerRaceCheckpoint(playerid,0,Pos_checkpoint[checkpoint_now[playerid]][0],Pos_checkpoint[checkpoint_now[playerid]][1],Pos_checkpoint[checkpoint_now[playerid]][2],Pos_checkpoint[checkpoint_now[playerid]+1][0],Pos_checkpoint[checkpoint_now[playerid]+1][1],Pos_checkpoint[checkpoint_now[playerid]+1][2],Pos_checkpoint[checkpoint_now[playerid]][3]),TogglePlayerControllable(playerid,false);
case 2: SetPlayerRaceCheckpoint(playerid,0,Pos_checkpoint[checkpoint_now[playerid]][0],Pos_checkpoint[checkpoint_now[playerid]][1],Pos_checkpoint[checkpoint_now[playerid]][2],Pos_checkpoint[checkpoint_now[playerid]+1][0],Pos_checkpoint[checkpoint_now[playerid]+1][1],Pos_checkpoint[checkpoint_now[playerid]+1][2],Pos_checkpoint[checkpoint_now[playerid]][3]),TogglePlayerControllable(playerid,false);
case 3: SetPlayerRaceCheckpoint(playerid,0,Pos_checkpoint[checkpoint_now[playerid]][0],Pos_checkpoint[checkpoint_now[playerid]][1],Pos_checkpoint[checkpoint_now[playerid]][2],Pos_checkpoint[checkpoint_now[playerid]+1][0],Pos_checkpoint[checkpoint_now[playerid]+1][1],Pos_checkpoint[checkpoint_now[playerid]+1][2],Pos_checkpoint[checkpoint_now[playerid]][3]),TogglePlayerControllable(playerid,false);
case 4: SetPlayerRaceCheckpoint(playerid,0,Pos_checkpoint[checkpoint_now[playerid]][0],Pos_checkpoint[checkpoint_now[playerid]][1],Pos_checkpoint[checkpoint_now[playerid]][2],Pos_checkpoint[checkpoint_now[playerid]+1][0],Pos_checkpoint[checkpoint_now[playerid]+1][1],Pos_checkpoint[checkpoint_now[playerid]+1][2],Pos_checkpoint[checkpoint_now[playerid]][3]),TogglePlayerControllable(playerid,false);
case 5: SetPlayerRaceCheckpoint(playerid,0,Pos_checkpoint[checkpoint_now[playerid]][0],Pos_checkpoint[checkpoint_now[playerid]][1],Pos_checkpoint[checkpoint_now[playerid]][2],Pos_checkpoint[checkpoint_now[playerid]+1][0],Pos_checkpoint[checkpoint_now[playerid]+1][1],Pos_checkpoint[checkpoint_now[playerid]+1][2],Pos_checkpoint[checkpoint_now[playerid]][3]),TogglePlayerControllable(playerid,false);
case 6: SetPlayerRaceCheckpoint(playerid,0,Pos_checkpoint[checkpoint_now[playerid]][0],Pos_checkpoint[checkpoint_now[playerid]][1],Pos_checkpoint[checkpoint_now[playerid]][2],Pos_checkpoint[checkpoint_now[playerid]+1][0],Pos_checkpoint[checkpoint_now[playerid]+1][1],Pos_checkpoint[checkpoint_now[playerid]+1][2],Pos_checkpoint[checkpoint_now[playerid]][3]),TogglePlayerControllable(playerid,false);
case 7: SetPlayerRaceCheckpoint(playerid,0,Pos_checkpoint[checkpoint_now[playerid]][0],Pos_checkpoint[checkpoint_now[playerid]][1],Pos_checkpoint[checkpoint_now[playerid]][2],Pos_checkpoint[checkpoint_now[playerid]+1][0],Pos_checkpoint[checkpoint_now[playerid]+1][1],Pos_checkpoint[checkpoint_now[playerid]+1][2],Pos_checkpoint[checkpoint_now[playerid]][3]),TogglePlayerControllable(playerid,false);
case 8: SetPlayerRaceCheckpoint(playerid,0,Pos_checkpoint[checkpoint_now[playerid]][0],Pos_checkpoint[checkpoint_now[playerid]][1],Pos_checkpoint[checkpoint_now[playerid]][2],Pos_checkpoint[checkpoint_now[playerid]+1][0],Pos_checkpoint[checkpoint_now[playerid]+1][1],Pos_checkpoint[checkpoint_now[playerid]+1][2],Pos_checkpoint[checkpoint_now[playerid]][3]),TogglePlayerControllable(playerid,false);
case 9: SetPlayerRaceCheckpoint(playerid,1,Pos_checkpoint[checkpoint_now[playerid]][0],Pos_checkpoint[checkpoint_now[playerid]][1],Pos_checkpoint[checkpoint_now[playerid]][2],Pos_checkpoint[checkpoint_now[playerid]][0],Pos_checkpoint[checkpoint_now[playerid]][1],Pos_checkpoint[checkpoint_now[playerid]][2],Pos_checkpoint[checkpoint_now[playerid]][3]),TogglePlayerControllable(playerid,false);
}
SetTimerEx("Check_unfreeze",TIME_TO_UNFREEZE_BUS,false,"d",playerid);
return 1;
}
forward Check_unfreeze(p);
public Check_unfreeze(p)
{
TogglePlayerControllable(p,true);
return 1;
}
public OnPlayerEnterRaceCheckpoint(playerid)
{
if(checkpoint_now[playerid] < 9 && checkpoint_now[playerid] != -1)
{
checkpoint_now[playerid]++;
StartTheBus(playerid);
}
else
{ //tutaj co sie dzieje po skonczeniu ( np. dajesz kase)
SendClientMessage(playerid,-1,"SKONCZYLES!");
checkpoint_now[playerid]=-1;
DisablePlayerRaceCheckpoint(playerid);
}
return 1;
}
Wysłany: 2013-05-31, 11:37
akon823
Czekotubka :D
Wiek: 29 Na forum: 4815 dni Posty: 399
Nick w MP: Remik14
Piwa : 152
Okej dzi?ki wszystko zrozumia?em zaraz zrobie . A co do tematu to mam jeszcze problem przy wsiadaniu do pojazdu bylejakiego wyskakuje mi masz ju? bilet wpisz /dajbilet aby da? go kierowcy a chcia?em ?eby tylko przy wsiadaniu do autobusu to by?o:D
Kod Kod: new vehicle;
vehicle = GetPlayerVehicleID(playerid);
if(vehicle == 437 && !maszbilet[playerid])
{
SendClientMessage(playerid, -1, "Nie Masz Biletu ! /kupbilet");
RemovePlayerFromVehicle(playerid);
}
else
{
SendClientMessage(playerid, -1, "Masz Bilet Wpisz /dajbilet po wejsiu do autobusu.");
}
if( ToAnbulans(vehicleid) && gTeam[playerid] != TEAM_POGOTOWIE && !ispassenger)
{
ClearAnimations(playerid);
SendClientMessage(playerid, -1, "Nie mo?esz wej?? do pojazdu Frakcyjnego!");
return 1;
}
//pd
if( ToPD(vehicleid) && gTeam[playerid] != TEAM_POMOCDROGOWA && !ispassenger)
{
ClearAnimations(playerid);
SendClientMessage(playerid, -1, "Nie mo?esz wej?? do pojazdu Frakcyjnego!");
return 1;
}
//poli
if( ToPoli(vehicleid) && gTeam[playerid] != TEAM_POLICJA && !ispassenger)
{
ClearAnimations(playerid);
SendClientMessage(playerid, -1, "Nie mo?esz wej?? do pojazdu Frakcyjnego!");
return 1;
}
TextDrawShowForPlayer(playerid,pojazd[playerid]);
SendClientMessage(playerid, Czerwony, "** Aby odpali? pojazd wci?nij CTRL lub wpisz /vp **");
return 1;
}
Oraz 2 sprawa to dlaczego gdy przy wsianiu do pojazdu robi mi si? ta taka mgie?ka z fotoradaru (bia?y ekran) i znika dopiero po odpaleniu pojazdu?
Wysłany: 2013-05-31, 11:52
xqz
otaku desu!
Wiek: 32 Na forum: 6406 dni Posty: 723
Nick w MP: xqz
Piwa : 5465
Kod: if(vehicle == 437 && !maszbilet[playerid])
437 to model autobusu a nie jego ID
zmien ta linijke na:
Kod: if(GetVehicleModel(vehicle) == 437 && !maszbilet[playerid])
Co do mgie?ki z fotoradaru to nie mam pojecia.
Wysłany: 2013-05-31, 13:42
akon823
Czekotubka :D
Wiek: 29 Na forum: 4815 dni Posty: 399
Nick w MP: Remik14
Piwa : 152
Aaaa okej dzi?ki wielkie :>
Piwka lec?
Pozdrawiam
@EDIT
A jeszcze pytanko , jakbym chcia? wi?cej tras? Kt?re po wpisaniu komendy randomowo by si? wybiera?o? To ju? ostatnie pytanko:D
@EDIT2
Zmieni?em OnPlayerEnterVehicle na to co poda?e? i teraz to wgl wyskakuje na raz :
"Nie mo?esz wej?? do pojazdu frakcyjnego"
"Masz bilet /dajbilet blabla"
"Panel pojazdu /vp"
Masakra
Help:p
Wysłany: 2013-05-31, 14:33
xqz
otaku desu!
Wiek: 32 Na forum: 6406 dni Posty: 723
Nick w MP: xqz
Piwa : 5465
No nie wiem czy to moze byc "RemovePlayerFromVehicle" w OnPlayerEnterVehicle skoro gracz jeszcze nie siedzi w tym samochodzie
Kod: if(vehicle == 437 && !maszbilet[playerid])
{
SendClientMessage(playerid, -1, "Nie Masz Biletu ! /kupbilet");
RemovePlayerFromVehicle(playerid);
}
else
{
SendClientMessage(playerid, -1, "Masz Bilet Wpisz /dajbilet po wejsiu do autobusu.");
}
Daj to w
Kod: public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_PASSENGER)
{
new vehicle = GetPlayerVehicleID(playerid);
if(GetVehicleModel(vehicle) == 437 && !maszbilet[playerid])
{
SendClientMessage(playerid, -1, "Nie Masz Biletu ! /kupbilet");
RemovePlayerFromVehicle(playerid);
}
else
{
SendClientMessage(playerid, -1, "Masz Bilet Wpisz /dajbilet po wejsiu do autobusu.");
}
}
//reszta kodu
return 1;
}
"akon823" napisał/a :A jeszcze pytanko , jakbym chcia? wi?cej tras? Kt?re po wpisaniu komendy randomowo by si? wybiera?o? To ju? ostatnie pytanko:D
Rozne trasy? Musisz wszystko jakby 2 razy (tak najprosciej) zrobic. Tylko nazwe zmiennej i funkcji zmienic
Ostatnio zmieniony przez xqz 2013-05-31, 15:39, w całości zmieniany 1 raz
Wysłany: 2013-05-31, 15:31
akon823
Czekotubka :D
Wiek: 29 Na forum: 4815 dni Posty: 399
Nick w MP: Remik14
Piwa : 152
Okej wszystko ?adnie i pi?knie dzia?a za co dzi?kuj? , lecz gdy wsiadam do pojazdu jako kierowca to wyskakuje mi "Masz bilet /dajbilet blabla" Chocia? go wgl nie kupowa?em ? I ja chce aby to wyskakiwalo gdy si? wsiada jako pasa?er a nie jako kierowca ;] A teraz gdy wsiadam jako pasa?er to nic si? nie dzieje . Oraz gdy wsiadam do ka?dego pojazdu to wyskakuje "Masz bilet /dajbilet blabla" . A 2 sprawa to jak zablokowa? aby tylko w danym poje?dzie mo?naby?o u?ywa? komendy /trasa?
Wysłany: 2013-05-31, 15:42
xqz
otaku desu!
Wiek: 32 Na forum: 6406 dni Posty: 723
Nick w MP: xqz
Piwa : 5465
"akon823" napisał/a : I ja chce aby to wyskakiwalo gdy si? wsiada jako pasa?er a nie jako kierowca ;]
Kod: public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_PASSENGER)
{
new vehicle = GetPlayerVehicleID(playerid);
if(GetVehicleModel(vehicle) == 437)
{
if(!maszbilet[playerid])
{
SendClientMessage(playerid, -1, "Nie Masz Biletu ! /kupbilet");
RemovePlayerFromVehicle(playerid);
}
else
{
SendClientMessage(playerid, -1, "Masz Bilet Wpisz /dajbilet po wejsiu do autobusu.");
}
}
}
//reszta kodu
return 1;
}
Kod: Oraz gdy wsiadam do ka?dego pojazdu to wyskakuje "Masz bilet /dajbilet blabla"
Usunales kod z OnPlayerEnterVehicle?
"akon823" napisał/a :A 2 sprawa to jak zablokowa? aby tylko w danym poje?dzie mo?naby?o u?ywa? komendy /trasa?
Mozna zrobic komende na Model pojazdu (437 = bus) lub jego ID jesli jest statyczny
Wysłany: 2013-05-31, 17:29
akon823
Czekotubka :D
Wiek: 29 Na forum: 4815 dni Posty: 399
Nick w MP: Remik14
Piwa : 152
Okej wszystko ?adnie dzia?a tylko dlaczego jak wsiadam do autobusu a nie mam biletu to mnie z niego nie wywala ani nie jest napisane ze musze kupic bilet
Cmd mam takie :
Kod: CMD:kupbilet(playerid, params[])
{
if(maszbilet[playerid]) return SendClientMessage(playerid, -1, "Masz Juz Bilet");
if(GetPlayerMoney(playerid) < 2) return SendClientMessage(playerid,0xAA3333AA, "Nie Masz Tyle Kasy");
GivePlayerMoney(playerid, -2);
SendClientMessage(playerid,-1,"Kupiles Bilet Autobusowy");
maszbilet[playerid] = 1;
return 1;
}
CMD:dajbilet(playerid, params[])
{
if(!maszbilet[playerid]) return SendClientMessage(playerid, -1, "Nie Masz Biletu");
SendClientMessage(playerid,-1,"Dales Bilet Kierowcy Brawo !");
maszbilet[playerid] = 0;
return 1;
}
I chcia?bym aby te komendy moznabylo uzywac tylko w autobusie
Pozdrawiam.
Tagi: isplayerinarea
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: