Jump to content

Otevírání bran zatroubením z auta


Recommended Posts

Tak nyní si ukazeme takovou hezkou funkci otevirani bran zatroubenim

 

Nejdríve si v mta race ulozime brany

 

dete do MTA Race Map Editoru stahnete Zde

 

ulozte branu jak otevrenou, tak i zavrenou

 

mapu najdete v ve slozce MTA San Andreas (tam kam jste nainstalovaly mta)

 

http://gtamap.delux-host.com/ - Zde mapu prekonvertujte do pawn

 

Nahoru do modu

 

#define KEY_HORN   2
new ibrana;
forward IsPlayerInSphere(playerid,Float:x,Float:y,Float:z,radius);
forward GetPlayerDistanceToPointEx(playerid,Float:x,Float:y,Float:z);
forward Brana();

 

Do public OnGameModeInit()

 

ibrana = CreateObject(SOURADNICE VASI ZAVRENE BRANY);

 

Do public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)

 

if(newkeys == KEY_HORN)
{
if (IsPlayerInSphere(playerid,Float:X,Float:Y,Float:Z Zavrene brany,30) == 1)
{
MoveObject(ibrana,Float:X,Float:Y,Float:Z Otevrene brany, 4.5);
//4.5 = Rychlost otviran
SetTimerEx("Brana",15000,0,"d",playerid);
}}

 

Dolu do modu

 

public Brana()
{
MoveObject(ibrana,Float:X,Float:Y,Float:Z Zavrene brany, 3.5);
return 1;
}
public IsPlayerInSphere(playerid,Float:x,Float:y,Float:z,radius)
{
if(GetPlayerDistanceToPointEx(playerid,x,y,z) < radius){
return 1;
}
return 0;
}
public GetPlayerDistanceToPointEx(playerid,Float:x,Float:y,Float:z)
{
new Float:x1,Float:y1,Float:z12,Float:tmpdis;
GetPlayerPos(playerid,x1,y1,z12);
tmpdis = floatsqroot(floatpower(floatabs(floatsub(x,x1)),2)
+floatpower(floatabs(floatsub(y,y1)),2)+floatpower(floatabs(floatsub(z,z12)),2));
return floatround(tmpdis);
}

 

Jak zjistit Float:x,Float:y,Float:z brany

 

Pokud mate nejakou branu napriklad takto

 

izavora = CreateObject(976, 1549.284668, -1626.937744, 12.544723, 0.0000, 0.0000, 90.0000);

 

Tak tucne cislice jsou ty , ktere potrebujeme

Link to comment
Share on other sites

Guest SlipknoT
a zavření ?? zapmněl si timer

 

 

ono to tam je :):lol: len si to poriadne kukni :lol:

 

 

a chytrak chyba ! mas tam timer s nazvom brany a public brana :)

Link to comment
Share on other sites

  • 2 weeks later...

No já si fakt cením tohoto serveru, protože jsem díky němu a tak yještě jednomu českému dokázal napsat FilterScripty. Ale tady mám problém - udělal jsem si objekty, upe vše,přidal jsem si to k povolání reportérky, a chci aby tam byla závora, ale jelikož mi mód brání v úpravě, vytvářím si FS, a takm je mi jedno že tam bude msto závora brána. Takže vše OK, ale když si chci všechno zkompilovat, tak mi to hodí 4errory a 1Upozornění-že mód je nepoužitelný.

Tady dávám screen:

chybakm5.th.png

 

Pokud je to malý, tak je problém v řádku 99:

if(IsPlayerInSphere(playerid,-2486.067,-619.584,132.357,Zavrene brany,30) == 1)

 

Ty chyby jsou:

Řádek     |Chyba                                            
99       |Undefined symbol "Zavrene".
99       |Undefined symbol "brany".
99       |Expected token ";", but found ")".
99       |Too many error messages on one line.  

Nevíte jak to řešit, pls?Fakt díky! ;)

Link to comment
Share on other sites

  • 2 weeks later...

C:\Documents and Settings\Martin\Plocha\city1.0kopie,dobra.pwn(1515) : error 021: symbol already defined: "IsPlayerInSphere"

C:\Documents and Settings\Martin\Plocha\city1.0kopie,dobra.pwn(1522) : error 021: symbol already defined: "GetPlayerDistanceToPointEx"

 

hlasi mi to chybu

 

posilam jak to mam ja

public Brana()
{
MoveObject(brana,-1540.9021,483.1098,7.1797,3);
return 1;
}
public IsPlayerInSphere(playerid,Float:x,Float:y,Float:z,radius)
{
if(GetPlayerDistanceToPointEx(playerid,x,y,z) < radius){
return 1;
}
return 0;
}
public GetPlayerDistanceToPointEx(playerid,Float:x,Float:y,Float:z)
{
new Float:x1,Float:y1,Float:z12,Float:tmpdis;
GetPlayerPos(playerid,x1,y1,z12);
tmpdis = floatsqroot(floatpower(floatabs(floatsub(x,x1)),2)
+floatpower(floatabs(floatsub(y,y1)),2)+floatpower(floatabs(floatsub(z,z12)),2));
return floatround(tmpdis);
}

 

a pls uprav mi to,jak to ma byt

a chtel bych to takhle,otevrena- MoveObject(brana,-1540.9021,483.1098,7.1797,3);

a zavrena - MoveObject(brana,-1529.4528,482.2213,7.1797,3);

Link to comment
Share on other sites

mam to takhle

nahore v modu mam

new brana;
#define KEY_HORN   2

forward IsPlayerInSphere(playerid,Float:x,Float:y,Float:z,radius);
forward GetPlayerDistanceToPointEx(playerid,Float:x,Float:y,Float:z);
forward Brana();

V ongamemodeinit mam

brana = CreateObject(980,-1529.4528,482.2213,7.1797,0.0,0.0,-00.000);

v OnPlayerKeyStateChange

if(iPlayerRole[playerid] == 2)
if(newkeys == KEY_HORN)
{
if (IsPlayerInSphere(playerid,-1529.4528,482.2213,7.1797,30) == 1)
{
MoveObject(brana,-1540.9021,483.1098,7.1797,3);
//4.5 = Rychlost otviran
SetTimerEx("Brana",15000,0,"d",playerid);
}}
return 1;
}

a dole v modu

public Brana()
{
MoveObject(brana,-1540.9021,483.1098,7.1797,3);
return 1;
}
public IsPlayerInSphere(playerid,Float:x,Float:y,Float:z,radius)
{
if(GetPlayerDistanceToPointEx(playerid,x,y,z) < radius){
return 1;
}
return 0;
}
public GetPlayerDistanceToPointEx(playerid,Float:x,Float:y,Float:z)
{
new Float:x1,Float:y1,Float:z12,Float:tmpdis;
GetPlayerPos(playerid,x1,y1,z12);
tmpdis = floatsqroot(floatpower(floatabs(floatsub(x,x1)),2)
+floatpower(floatabs(floatsub(y,y1)),2)+floatpower(floatabs(floatsub(z,z12)),2));
return floatround(tmpdis);
}

a hazi mi to tyto errory

C:\Documents and Settings\Martin\Plocha\city1.0kopie,dobra.pwn(1508) : error 021: symbol already defined: "IsPlayerInSphere"
C:\Documents and Settings\Martin\Plocha\city1.0kopie,dobra.pwn(1515) : error 021: symbol already defined: "GetPlayerDistanceToPointEx"

Link to comment
Share on other sites

zmaz toto

public IsPlayerInSphere(playerid,Float:x,Float:y,Float:z,radius)
{
if(GetPlayerDistanceToPointEx(playerid,x,y,z) < radius){
return 1;
}
return 0;
}
public GetPlayerDistanceToPointEx(playerid,Float:x,Float:y,Float:z)
{
new Float:x1,Float:y1,Float:z12,Float:tmpdis;
GetPlayerPos(playerid,x1,y1,z12);
tmpdis = floatsqroot(floatpower(floatabs(floatsub(x,x1)),2)
+floatpower(floatabs(floatsub(y,y1)),2)+floatpower(floatabs(floatsub(z,z12)),2));
return floatround(tmpdis);
}

Link to comment
Share on other sites

if(newkeys == KEY_HORN)

{

if (IsPlayerInSphere(playerid,Float:X,Float:Y,Float:Z Zavrene brany,30) == 1)

{

MoveObject(ibrana,Float:X,Float:Y,Float:Z Otevrene brany, 4.5);

//4.5 = Rychlost otviran

SetTimerEx("Brana",15000,0,"d",playerid);

}}

 

 

Dolu do modu

 

public Brana()

{

MoveObject(ibrana,Float:X,Float:Y,Float:Z Otevrene brany, 3.5);

return 1;

}

 

Dulezite udaje sou cerne, spusti specialni settimer, ktery se bude opakovat jen jendou

s publicem brana, cas za ktery se public spusti,

 

dalsi cast je sam public, v kterem je prikaz na zavreni brany.

Link to comment
Share on other sites

muzes mi pls napsat presne jak to tam mam cele dat? pls,napisu ti akorad jak ma byt zavrena a jak otevrena brana,diky

 

otevrena

-1540.9021,483.1098,7.1797

zavrena

-1529.4528,482.2213,7.1797

Link to comment
Share on other sites

Je mi to divny, měl sem výtah na 10 sekund (pawno.cz > mapy bo co to je > wangdef

tu ten výtah ještě je ale vždy po 1 použití dával jen 1 sekundu

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...