Szerző Téma: Parancs  (Megtekintve 2124 alkalommal)

Parancs
« Dátum: 2011. augusztus 20. - 11:44:43 »
0 Show voters
Sziasztok.
Már-már haladok a scripteléssel.
De most elakadtam.
Kérdésem:
Van egy /lop parancsom, amivel ha az SF-ben lévõ egyik monitor mellett állsz, akkor ellopod, és kapsz érte 5.000$-t.
Itt van:
[pawn]
CMD:lop(playerid, params[])
{
   if(IsPlayerInRangeOfPoint(playerid, 2, -1658.1497,1218.9059,7.2500))
      {
          SendClientMessage(playerid, COLOR_GREEN, \"Elkezdted kiszerelni a monitort!\");
          // Itt legyen 5 másodperc szünet
          SendClientMessage(playerid, COLOR_GREEN, \"Elloptad, és eladtad a monitort! Kaptál érte 5.000$-t!\");
          GivePlayerMoney(playerid, 5000);
      } else {
      SendClientMessage(playerid, COLOR_GRAD1, \"Nem vagy monitornál!\");
      }
   return 1;
}
[/pawn]
Azt hogy lehetne, hogy az \"Elkezdted kiszerelni a monitort!\" és az \"Elloptad, és eladtad a monitort! Kaptál érte 5.000$-t!\" szöveg között legyen 5 másodperc szünet. Nem tudtam megoldani, hogy lehetne?
Köszi, Erik. :)

Nem elérhető JackBronson

  • 1499
  • ??
    • Profil megtekintése
Parancs
« Válasz #1 Dátum: 2011. augusztus 20. - 13:02:54 »
+1 Show voters
csináld meg forward-al csinálsz egy timert oda pl
[pawn]SetTimer(\"lop\",5000,false);[/pawn]
és akkor a módod aljára meg ezt:
[pawn]public lop(playerid)
{
SendClientMessage(playerid, COLOR_GREEN, \"Elloptad, és eladtad a monitort! Kaptál érte 5.000$-t!\");
GivePlayerMoney(playerid, 5000);
return 1;
}[/pawn]
De elõtte a módod elejére zt illeszed be:
[pawn]forward lop(playerid);[/pawn]
Ennek mûködni e kell ha minden igaz itt irtam meg
Ha jó jöhet a + :D
UI: Tessék javutottam
« Utoljára szerkesztve: 2011. augusztus 20. - 15:56:22 írta JackBronson »

Parancs
« Válasz #2 Dátum: 2011. augusztus 20. - 14:06:38 »
0 Show voters
Nem jó, mert ezzel csak minden 5 másodpercbe ad 5.000$-t... :(

Parancs
« Válasz #3 Dátum: 2011. augusztus 20. - 14:17:34 »
+1 Show voters
SetTimer(\"lop\", 5000, false);

 
Így jó lesz.

Parancs
« Válasz #4 Dátum: 2011. augusztus 20. - 14:38:26 »
0 Show voters
Nem mûködik. De én úgy szeretném, hogy miután beírtam a parancsot, kiírja, hogy \"Elkezdted kiszerelni a monitort!\", és 5 másodperc múlva pedig adja az 5.000 $-t és kiírja, hogy \"Elloptad a monitort, és kaptál érte 5.000$!\"
Ezt szeretném.

Parancs
« Válasz #5 Dátum: 2011. augusztus 20. - 14:45:31 »
0 Show voters
:mistrust:
Ottvan amit irt Jack, az mûködik, csak a SetTimert cseréld ki az enyémre.

Parancs
« Válasz #6 Dátum: 2011. augusztus 20. - 14:48:39 »
0 Show voters
De nem mûködik. Kicseréltem. Itt a parancs:
[pawn]CMD:lop(playerid, params[])
{
   if(IsPlayerInRangeOfPoint(playerid, 2, -1658.1497,1218.9059,7.2500))
      {
          SendClientMessage(playerid, COLOR_GREEN, \"Elkezdted kiszerelni a monitort!\");
             SendClientMessage(playerid, COLOR_GREEN, \"Elloptad, és eladtad a monitort! Kaptál érte 5.000$-t!\");
               GivePlayerMoney(playerid, 5000);
      } else {
      SendClientMessage(playerid, COLOR_GRAD1, \"Nem vagy monitornál!\");
      }
   return 1;
}[/pawn]
Hova kell berakni a SetTimert?
Lehet, hogy hülyének nézel, de nem vagyok még profi a scriptelésben..

Parancs
« Válasz #7 Dátum: 2011. augusztus 20. - 15:09:21 »
0 Show voters
Ahová irtad, hogy 5 mp szünet legyen.

Parancs
« Válasz #8 Dátum: 2011. augusztus 20. - 15:54:19 »
0 Show voters
Köszönöm!
Most azt szeretném, hogy több monitornál is lehessen használni ezt a parancsot. Megcsináltam, mûködik, csak ugye megnézi mindegyik monitornál, hogy ott vagyok-e. Így kb. 6x kiírja, hogy \"Nem vagy monitornál!\", így az egyiknél (amelyiknél vagyok) ellopom, és megadja a pénzt.
Hogy lehetne megoldani, hogy ne nézze meg mindegyiknél?
Parancs:
[pawn]CMD:lop(playerid, params[])
{
   if(IsPlayerInRangeOfPoint(playerid, 2, -1658.1497,1218.9059,7.2500))
      {
          SendClientMessage(playerid, COLOR_GREEN, \"Elkezdted kiszerelni a monitort!\");
          SetTimer(\"lop\", 5000, false);
      } else {
      SendClientMessage(playerid, COLOR_GRAD1, \"Nem vagy monitornál!\");
      }
   if (IsPlayerInRangeOfPoint(playerid, 2, -1661.6805,1220.5009,7.2500))
      {
          SendClientMessage(playerid, COLOR_GREEN, \"Elkezdted kiszerelni a monitort!\");
          SetTimer(\"lop\", 5000, false);
      } else {
      SendClientMessage(playerid, COLOR_GRAD1, \"Nem vagy monitornál!\");
      }
   if(IsPlayerInRangeOfPoint(playerid, 2, -1665.5941,1206.4523,7.2546))
      {
          SendClientMessage(playerid, COLOR_GREEN, \"Elkezdted kiszerelni a monitort!\");
          SetTimer(\"lop\", 5000, false);
      } else {
      SendClientMessage(playerid, COLOR_GRAD1, \"Nem vagy monitornál!\");
      }
   if(IsPlayerInRangeOfPoint(playerid, 2, -1649.6812,1208.8097,7.2500))
      {
          SendClientMessage(playerid, COLOR_GREEN, \"Elkezdted kiszerelni a monitort!\");
          SetTimer(\"lop\", 5000, false);
      } else {
      SendClientMessage(playerid, COLOR_GRAD1, \"Nem vagy monitornál!\");
      }
   if(IsPlayerInRangeOfPoint(playerid, 2, -1653.9803,1208.1417,7.2500))
      {
          SendClientMessage(playerid, COLOR_GREEN, \"Elkezdted kiszerelni a monitort!\");
          SetTimer(\"lop\", 5000, false);
      } else {
      SendClientMessage(playerid, COLOR_GRAD1, \"Nem vagy monitornál!\");
      }
   if(IsPlayerInRangeOfPoint(playerid, 2, -1659.9050,1209.7484,7.2500))
      {
          SendClientMessage(playerid, COLOR_GREEN, \"Elkezdted kiszerelni a monitort!\");
          SetTimer(\"lop\", 5000, false);
      } else {
      SendClientMessage(playerid, COLOR_GRAD1, \"Nem vagy monitornál!\");
      }
   return 1;
}[/pawn]
Köszi!
« Utoljára szerkesztve: 2011. augusztus 20. - 15:56:52 írta curvemaster »

Nem elérhető JackBronson

  • 1499
  • ??
    • Profil megtekintése
Parancs
« Válasz #9 Dátum: 2011. augusztus 20. - 15:57:35 »
0 Show voters
EZt most nemértem amit mondasz,ennél a parancsnál most ugyvan ,hogy mittomén mennyi helyen tudja beirni a parancsoét és eltudja lopni.Ebbe mi a baj? :mistrust:

Parancs
« Válasz #10 Dátum: 2011. augusztus 20. - 16:01:51 »
0 Show voters
Logot küldök, hogy mit csinál.
 
[15:46:38] Elkezdted kiszerelni a monitort!
[15:46:38] Nem vagy monitornál!
[15:46:38] Nem vagy monitornál!
[15:46:38] Nem vagy monitornál!
[15:46:38] Nem vagy monitornál!
[15:46:38] Nem vagy monitornál!
[15:46:44] Elloptad, és eladtad a monitort! Kaptál érte 5.000$-t!

 
Így kiírja, hogy nem vagy monitornál. Azt szeretném, hogyha beírom egy monitornál, hogy /lop, akkor ne nézze meg minden monitornál, hogy ott vagyok-e, hanem csak annál nézze meg, amelyik közelébe vagyok!
Nem tudom rendesen megfogalmazni... :(

Nem elérhető JackBronson

  • 1499
  • ??
    • Profil megtekintése
Parancs
« Válasz #11 Dátum: 2011. augusztus 20. - 16:11:11 »
0 Show voters
Hát nemtom,hogy kell azt emgoldani max ugy,hogy atsz mindegyiknek 1 értéket és arról kérdezze le

Parancs
« Válasz #12 Dátum: 2011. augusztus 20. - 16:12:17 »
0 Show voters
Majd ha egy profibb scripter megnézi, akkor majd leírja... Azért köszi :)
E:
Lenne még egy kérdésem/kérésem.
Szeretnék csinálni egy /gotokocsi és /getkocsi parancsot. (Amilyen az RP szervereken van.)
A szerverem nem RP lesz, de azért jól jönne ez a két parancs.
Valaki írna nekem egy pawn-t, hogy hogy kell zcmd-vel és sscanf-el megcsinálni? Köszönöm!
« Utoljára szerkesztve: 2011. augusztus 20. - 16:39:53 írta curvemaster »

Nem elérhető ►ѕтa

  • 2016
  • Newbie
    • Profil megtekintése
Parancs
« Válasz #13 Dátum: 2011. augusztus 20. - 16:57:28 »
+1 Show voters
[pawn]
#define FPublic:%0(%1) forward %0(%1); \\
           public     %0(%1)
new monitorok[][] = {
{-1658.1497,1218.9059,7.2500},
{-1661.6805,1220.5009,7.2500},
{-1665.5941,1206.4523,7.2546},
{-1653.9803,1208.1417,7.2500},
{-1659.9050,1209.7484,7.2500}
};
CMD:lop(playerid, params[])
{
new i;
while(i < sizeof(monitorok))
{
   if(IsPlayerInRangeOfPoint(playerid, 2, monitorok
  • , monitorok[1], monitorok[2])


   {


      SendClientMessage(playerid, COLOR_GREEN, \"Elkezdted kiszerelni a monitort!\");


      SetTimerEx(\"monitorlopas\", 5000, false, \"i\", playerid);


   } else {


      SendClientMessage(playerid, COLOR_GRAD1, \"Nem vagy monitornál!\");


   }


   ++i;


}


return 1;


}


FPublic:monitorlopas(playerid)


{


SendClientMessage(playerid, COLOR_GREEN, \"Elloptad és eladtad a monitort! Kaptál 5000$-t!\");


GivePlayerMoney(playerid, 5000);


return 1;


}


[/pawn]


Remélem mûködik.

Kovacs_Bela

  • Vendég
Parancs
« Válasz #14 Dátum: 2011. augusztus 20. - 19:31:30 »
+1 Show voters
Kész:
[pawn]
#include <a_samp>
#include <zcmd>
#include <sscanf2>
new Float:gtkX,Float:gtkY,Float:gtkZ;
new Float:getkX,Float:getkY,Float:getkZ;
CMD:gotokocsi(playerid,params[])
{
new kocsiid;
if(sscanf(params,\"i\",kocsiid)) return SendClientMessage(playerid,0xff0000ff,\"Használat: /gotokocsi (kocsiid)\");
new str[128];
format(str,128,\"Sikeresen odateleportáltad magad egy jármûvet! ID-je: %d\",kocsiid);
SendClientMessage(playerid,0x0000ff00,str);
GetVehiclePos(kocsiid,gtkX,gtkY,gtkZ);
SetPlayerPos(playerid,gtkX,gtkY,gtkZ);
return 1;
}
CMD:getkocsi(playerid,params[])
{
new kocsiid;
if(sscanf(params,\"i\",kocsiid)) return SendClientMessage(playerid,0xff0000ff,\"Használat: /getkocsi (kocsiid)\");
new str[128];
format(str,128,\"Sikeresen magadhoz hívtál egy jármûvet. ID-je: %d\",kocsiid);
SendClientMessage(playerid,0x0000ff00,str);
GetPlayerPos(playerid,getkX,getkY,getkZ);
SetVehiclePos(kocsiid,getkX,getkY,getkZ);
return 1;
}[/pawn]
« Utoljára szerkesztve: 2011. augusztus 20. - 19:40:53 írta [R]obo[T] »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal