Szerző Téma: Időnként mozgó objekt  (Megtekintve 1676 alkalommal)

Időnként mozgó objekt
« Dátum: 2015. Július 08. - 16:37:16 »
0 Show voters
Sziasztok!
Leírjátok, hogyan tudnék időnként mozgó objektet létrehozni? Az objekt egy sífelvonó lenne a chilliad tetejére.
Mikor a felvonó lent van:
5837, -2099.14990, -2237.17969, 33.05110,   0.00000, 0.00000, 142.62920

 
Mikor a felvonó fent van:
5837, -2391.9258, -2002.0930, 301.2155,   0.0000, 0.0000, 140.5846

 
Úgy szeretném megcsinálni, hogy fent és lent is 10 másodpercet legyen, szóval mikor felér a fenti leszállóhelyre akkor ott 10 mp-t várakozik, és mikor letelt akkor elkezd lefelé menni. Mikor leér akkor ott is 10 mp és így tovább..
« Utoljára szerkesztve: 2015. Július 08. - 21:09:55 írta Zippanto »

Nem elérhető 1Mark6

  • 437
    • Profil megtekintése
Időnként mozgó objekt
« Válasz #1 Dátum: 2015. Július 09. - 09:16:15 »
0 Show voters
Eléggé egyszerű megcsinálna, csak Timer és egy Move(Dynamic)Object kell hozzá, szerintem te is megtudod csinálni.
Nem teszteltem, de logikailag mükődnie kell :
 
#include <a_samp>
new Lift;
forward LiftFelkuld();
forward LiftLekuld();
main()
{
print(\"\\n----------------------------------\");
print(\" LIFT\");
print(\"----------------------------------\\n\");
}
 
public OnGameModeInit()
{
    Lift = CreateObject(5837, -2099.14990, -2237.17969, 33.05110,   0.00000, 0.00000, 142.62920);
SetTimer(\"LiftFelkuld\",10000,0);
return 1;
}
public LiftFelkuld()
{
MoveObject(Lift,-2391.9258, -2002.0930, 301.2155,   0.0000, 0.0000, 140.5846);
SetTimer(\"LiftLekuld\",10000,0);
}
public LiftLekuld()
{
MoveObject(Lift,-2099.14990, -2237.17969, 33.05110,   0.00000, 0.00000, 142.62920);
SetTimer(\"LiftFelkuld\",10000,0);
}
« Utoljára szerkesztve: 2015. Július 09. - 10:21:40 írta 1Mark6 »

Időnként mozgó objekt
« Válasz #2 Dátum: 2015. Július 09. - 10:22:26 »
0 Show voters
Megnézem
« Utoljára szerkesztve: 2015. Július 09. - 10:31:41 írta Zippanto »

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
Időnként mozgó objekt
« Válasz #3 Dátum: 2015. Július 09. - 10:25:00 »
0 Show voters
A moveobjectnek megse adtál sebességet.

Időnként mozgó objekt
« Válasz #4 Dátum: 2015. Július 09. - 10:51:31 »
0 Show voters
Megadtam a sebességet, de a lift az alsó megállóhelyen van és nem mozdul meg.

Nem elérhető 1Mark6

  • 437
    • Profil megtekintése
Időnként mozgó objekt
« Válasz #5 Dátum: 2015. Július 09. - 10:57:53 »
0 Show voters
Tesztelve!
100-as sebbeségel 10mp-t vár, ezt tudod szabályozni : felrakod a várakozási időt 20mp-re és a sebbeséget 50re akkor is 10mpt fog várni csak lassab lesz!
 
#include <a_samp>
new Lift;
forward LiftFelkuld();
forward LiftLekuld();
main()
{
print(\"\\n----------------------------------\");
print(\" LIFT\");
print(\"----------------------------------\\n\");
}
 
public OnGameModeInit()
{
    Lift = CreateObject(5837, -2099.14990, -2237.17969, 33.05110,   0.00000, 0.00000, 142.62920);
SetTimer(\"LiftFelkuld\",10000,0);
return 1;
}
public LiftFelkuld()
{
MoveObject(Lift,-2391.9258, -2002.0930, 301.2155, 100, 0.0000, 0.0000, 140.5846);
SetTimer(\"LiftLekuld\",10000,0);
}
public LiftLekuld()
{
MoveObject(Lift,-2099.14990, -2237.17969, 33.05110,   100, 0.00000, 0.00000, 142.62920);
SetTimer(\"LiftFelkuld\",10000,0);
}
« Utoljára szerkesztve: 2015. Július 09. - 11:07:46 írta 1Mark6 »

Időnként mozgó objekt
« Válasz #6 Dátum: 2015. Július 09. - 11:18:59 »
0 Show voters
Ugyanaz a hiba, nem mozdul. Az baj, hogy nem a módba írtam, hanem egy külön filterscriptbe?

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
Időnként mozgó objekt
« Válasz #7 Dátum: 2015. Július 09. - 11:58:58 »
0 Show voters
Írtam neked egyet egy másik megoldással.
 
#include <a_samp>
forward MoveLift();
new lift, liftobject;
public OnFilterScriptInit()
{
SetTimer(\"lift\", 20000, true);
    liftobject = CreateObject(5837, -2099.14990, -2237.17969, 33.05110,   0.00000, 0.00000, 142.62920);
return 1;
}
public MoveLift() {
    lift = !lift;
if(lift) MoveObject(liftobject, -2391.9258, -2002.0930, 301.2155, 15.0, 0.0000, 0.0000, 140.5846);
else MoveObject(liftobject, -2099.14990, -2237.17969, 33.05110, 15, 0.00000, 0.00000, 142.62920);
return 1;
}

Időnként mozgó objekt
« Válasz #8 Dátum: 2015. Július 09. - 12:10:34 »
0 Show voters
Most meg az objektet nem teszi le. :(
Ha megkérlek titeket(téged) akkor írsz egy parancsot hozzá?
Úgy kéne, hogyha beírja /felvonó , akkor ha fent van a felvonó akkor lehozza, ha lent van akkora felvigye, és amikor út közben írják be akkor írjon ki nekik valamit.
Gondolom ezt is timerrel és változókkal kell.
« Utoljára szerkesztve: 2015. Július 09. - 12:42:19 írta Zippanto »

Időnként mozgó objekt
« Válasz #9 Dátum: 2015. Július 09. - 13:14:53 »
0 Show voters
Nem teszteltem!
Ha nincs ott az Object, akkor ellenőrizd a koordinátákat.
 

#include <a_samp>
#include <zcmd>
forward MoveLift();
new lift, liftobject;
public OnFilterScriptInit()
{
liftobject = CreateObject(5837, -2099.14990, -2237.17969, 33.05110, 0.00000, 0.00000, 142.62920);
return 1;
}
public MoveLift()
{
lift = !lift;
if(lift) MoveObject(liftobject, -2391.9258, -2002.0930, 301.2155, 15.0, 0.0000, 0.0000, 140.5846);
else MoveObject(liftobject, -2099.14990, -2237.17969, 33.05110, 15, 0.00000, 0.00000, 142.62920);
return 1;
}
CMD:felvono(playerid)
{
if(IsObjectMoving(liftobject)) return SendClientMessage(playerid, -1, \"Jelenleg mozog a felvonó!\");
MoveLift();
return 1;
}

Időnként mozgó objekt
« Válasz #10 Dátum: 2015. Július 09. - 13:56:45 »
0 Show voters
Kordinátákat ellenőriztem. Az objekt nem látszódik, és a parancsot nem ismeri fel (nincs ilyen parancs azt írja).

Időnként mozgó objekt
« Válasz #11 Dátum: 2015. Július 09. - 14:07:51 »
0 Show voters
Ne filterscript ként használd, hanem tedd bele a módba. Gondolom, hogy azt nem kell leírni, hogy mit hova, mivel elég egyértelmű :)

Időnként mozgó objekt
« Válasz #12 Dátum: 2015. Július 09. - 15:24:11 »
0 Show voters
Beraktam a parancsot és minden dolgot még ami kellett hozzá, amikor beírtam a parancsot a szerveren ezt kaptam: SERVER: Unknown command.
Mi a baj ezzel?
 
if(strcmp(cmd, \"/felvonó\", true) == 0)
{
if(IsPlayerConnected(playerid))
{
   if(IsObjectMoving(liftobject))
   {
      MoveLift();
      return 1;
   }
   else
   {
       SendClientMessage(playerid, -1, \"Jelenleg mozog a felvonó!\");
       return 1;
   }
}
return 1;
}

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
Időnként mozgó objekt
« Válasz #13 Dátum: 2015. Július 09. - 15:26:57 »
0 Show voters
if(strcmp(cmd, \"/felvonó\", true) == 0) {
if(!IsObjectMoving(liftobject)) MoveLift();
else SendClientMessage(playerid, -1, \"Jelenleg mozog a felvonó!\");
return 1;
}

Időnként mozgó objekt
« Válasz #14 Dátum: 2015. Július 09. - 15:32:48 »
0 Show voters
Ugyanaz a probléma áll fent. Nem mozdul és ezt a szöveget adja ki : SERVER: Unknown command.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal