GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: kriszrap - 2014. február 18. - 19:53:46

Cím: frakció kapuk nyitása/zárása
Írta: kriszrap - 2014. február 18. - 19:53:46
Sziasztok!!
Segítségeteket kérném van kb 20 frakció kapu külömbözõ  helyeken.
Hogy tudnám azt megcsinálni oda megyek a frakció kapuhoz és beírom /nyit akkor kinyitja /zar akkor bezárja?
Ja és ha nincs abba a frakcióba akkor ki ír valamit.
Hogy lehet a legegyszerûbben elkészíteni ??
szerk.: nem kell meg nevezni pl kapu 1 kapu 2 ha nem csak pozicó adok meg úgy is megy???
\" MoveObject(obj, 0, 0, 10, 2.00);\"  // itt obj a név de odda poziciót írok menni fog??
Cím: frakció kapuk nyitása/zárása
Írta: SnooP - 2014. február 20. - 11:05:56

#include <a_samp>
#include <zcmd>
#pragma tabsize 0
new
    bool:nyit;
CMD:objectletrehozas(playerid)
{
CreateObject(980, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); // Létrehoztuk az objectet amit mozgatni fogunk
return 1;
}
CMD:frakcio(playerid)
{
SetPlayerTeam(playerid, 1); // Ez most csak frakció szimulálása ként írtam, ha te neked a frakció más tömbökbe mentõdik te azokat használd.
return 1;
}
 
CMD:nyit(playerid, params[])
{
new Float: kapu1 = GetPlayerDistanceFromPoint(playerid, 237.9, 115.6, 1010.2); // A te kapud X,Y,Z koordinátáit cseréld fel az itt lévõkre
if(kapu1 > 10.0) SendClientMessage(playerid, -1, \"Nem vagy az elsõ kapuhoz közél, menj közelebb!\");
   {
if(GetPlayerTeam(playerid) == 1) SendClientMessage(playerid, -1, \"Te nem vagy ebben a frakcióban, így nem tudod kinyitni a kaput!\");
      if(nyit == false)
     {
     MoveObject(980, 0, 0, 10, 2.00); // Kinyitasi pozicio Float:X, Float:Y, Float:Z-t
     nyit = true;
     }
}
   return 1;
}
CMD:zar(playerid, params[])
{
new Float: kapu1 = GetPlayerDistanceFromPoint(playerid, 237.9, 115.6, 1010.2);
if(kapu1 > 10.0) SendClientMessage(playerid, -1, \"Nem vagy az elsõ kapuhoz közél, menj közelebb!\");
   {
if(GetPlayerTeam(playerid) == 1) SendClientMessage(playerid, -1, \"Te nem vagy ebben a frakcióban, így nem tudod kinyitni a kaput!\");
      if(nyit == true)
     {
     MoveObject(980, 0, 0, 10, 2.00); // Bezarasi pozicio Float:X, Float:Y, Float:Z-t
     nyit = false;
     }
   }
   return 1;

 

Idézetet írta: kriszrap date=1392749626\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"46595\" data-ipsquote-contentclass=\"forums_Topic
szerk.: nem kell meg nevezni pl kapu 1 kapu 2 ha nem csak pozicó adok meg úgy is megy???
\" MoveObject(obj, 0, 0, 10, 2.00);\"  // itt obj a név de odda poziciót írok menni fog??
 
Nos, hogy egyszerûen elmondjam: Az \"obj\" paraméter helye annak az objectnek az ID-ját jelöli amelyiket te mozgatni akarod (lásd : CreateObject). Ha a szervereden több ilyen kapu van amiknek ugyan az az object ID-je akkor kell használj változókat ezeknek az objecteknek a megkülönböztetésére, mivel MoveObjectnél nem tudja majd a függvény melyik objectre gondoltál és emiatt buggolni fog a filterscript/gamemode jobb esetben és rosszabban pedig fagyásokat is okozhat :)
Remélem segíteni tudtam.


Amúgy ajánlom figyelmedbe a magyar wikipédiát, ami az oldalé és az összes függvény / eljárás megvan rajta, na azokat tanulgasd ;)
Link: http://sampforum.hu/wiki/
Cím: frakció kapuk nyitása/zárása
Írta: Kovacs_Richard - 2014. február 20. - 11:39:28
Idézetet írta: RusH. date=1392890756\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"46595\" data-ipsquote-contentclass=\"forums_Topic
Ha a szervereden több ilyen kapu van amiknek ugyan az az object ID-je akkor kell használj változókat ezeknek az objecteknek a megkülönböztetésére, mivel MoveObjectnél nem tudja majd a függvény melyik objectre gondoltál és emiatt buggolni fog a filterscript/gamemode jobb esetben és rosszabban pedig fagyásokat is okozhat :)
 
nem lehet 2 object-nek ugyanaz az ID-ja! és ha véletlen bug miatt ugyanaz lenne akkor a 2 változó értéke is ugyanaz lenne :) a változó azért kell, hogy egyszerûbb legyen azonosítani a tárgyat, de nem kötelezõ! hivatkozhatsz a változó értékére is de beírhatod kézzel is, hogy te a 82-es ID-jú tárgyat akarod mozgatni.
Cím: frakció kapuk nyitása/zárása
Írta: kriszrap - 2014. február 20. - 12:17:09
köszi a hasznos infót:)) meg minden igy már menni fog:)
getdistancefrompoint vagy mi helyet asználhatom isplayerinrangeofpoint is simán nem?:)
Cím: frakció kapuk nyitása/zárása
Írta: Kovacs_Richard - 2014. február 20. - 12:27:21
igen
Cím: frakció kapuk nyitása/zárása
Írta: kriszrap - 2014. február 20. - 12:33:51
köszi zárok:)