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: curvemaster - 2011. augusztus 20. - 11:44:43

Cím: Parancs
Írta: curvemaster - 2011. augusztus 20. - 11:44:43
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. :)
Cím: Parancs
Írta: JackBronson - 2011. augusztus 20. - 13:02:54
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
Cím: Parancs
Írta: curvemaster - 2011. augusztus 20. - 14:06:38
Nem jó, mert ezzel csak minden 5 másodpercbe ad 5.000$-t... :(
Cím: Parancs
Írta: palesz_88 - 2011. augusztus 20. - 14:17:34
SetTimer(\"lop\", 5000, false);

 
Így jó lesz.
Cím: Parancs
Írta: curvemaster - 2011. augusztus 20. - 14:38:26
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.
Cím: Parancs
Írta: palesz_88 - 2011. augusztus 20. - 14:45:31
:mistrust:
Ottvan amit irt Jack, az mûködik, csak a SetTimert cseréld ki az enyémre.
Cím: Parancs
Írta: curvemaster - 2011. augusztus 20. - 14:48:39
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..
Cím: Parancs
Írta: palesz_88 - 2011. augusztus 20. - 15:09:21
Ahová irtad, hogy 5 mp szünet legyen.
Cím: Parancs
Írta: curvemaster - 2011. augusztus 20. - 15:54:19
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!
Cím: Parancs
Írta: JackBronson - 2011. augusztus 20. - 15:57:35
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:
Cím: Parancs
Írta: curvemaster - 2011. augusztus 20. - 16:01:51
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... :(
Cím: Parancs
Írta: JackBronson - 2011. augusztus 20. - 16:11:11
Hát nemtom,hogy kell azt emgoldani max ugy,hogy atsz mindegyiknek 1 értéket és arról kérdezze le
Cím: Parancs
Írta: curvemaster - 2011. augusztus 20. - 16:12:17
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!
Cím: Parancs
Írta: ►ѕтa - 2011. augusztus 20. - 16:57:28
[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

   {


      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.
Cím: Parancs
Írta: Kovacs_Bela - 2011. augusztus 20. - 19:31:30
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]
Cím: Parancs
Írta: curvemaster - 2011. augusztus 20. - 23:57:59
Köszönöm srácok.
sTaR:
15 warningom van. Miért? :(
 
C:\\Users\\Gebhard\\Downloads\\samp03csvr_R2-2_win32\\filterscripts\\AS.pwn(29) : warning 213: tag mismatch
C:\\Users\\Gebhard\\Downloads\\samp03csvr_R2-2_win32\\filterscripts\\AS.pwn(29) : warning 213: tag mismatch
C:\\Users\\Gebhard\\Downloads\\samp03csvr_R2-2_win32\\filterscripts\\AS.pwn(29) : warning 213: tag mismatch
C:\\Users\\Gebhard\\Downloads\\samp03csvr_R2-2_win32\\filterscripts\\AS.pwn(30) : warning 213: tag mismatch
C:\\Users\\Gebhard\\Downloads\\samp03csvr_R2-2_win32\\filterscripts\\AS.pwn(30) : warning 213: tag mismatch
C:\\Users\\Gebhard\\Downloads\\samp03csvr_R2-2_win32\\filterscripts\\AS.pwn(30) : warning 213: tag mismatch
C:\\Users\\Gebhard\\Downloads\\samp03csvr_R2-2_win32\\filterscripts\\AS.pwn(31) : warning 213: tag mismatch
C:\\Users\\Gebhard\\Downloads\\samp03csvr_R2-2_win32\\filterscripts\\AS.pwn(31) : warning 213: tag mismatch
C:\\Users\\Gebhard\\Downloads\\samp03csvr_R2-2_win32\\filterscripts\\AS.pwn(31) : warning 213: tag mismatch
C:\\Users\\Gebhard\\Downloads\\samp03csvr_R2-2_win32\\filterscripts\\AS.pwn(32) : warning 213: tag mismatch
C:\\Users\\Gebhard\\Downloads\\samp03csvr_R2-2_win32\\filterscripts\\AS.pwn(32) : warning 213: tag mismatch
C:\\Users\\Gebhard\\Downloads\\samp03csvr_R2-2_win32\\filterscripts\\AS.pwn(32) : warning 213: tag mismatch
C:\\Users\\Gebhard\\Downloads\\samp03csvr_R2-2_win32\\filterscripts\\AS.pwn(33) : warning 213: tag mismatch
C:\\Users\\Gebhard\\Downloads\\samp03csvr_R2-2_win32\\filterscripts\\AS.pwn(33) : warning 213: tag mismatch
C:\\Users\\Gebhard\\Downloads\\samp03csvr_R2-2_win32\\filterscripts\\AS.pwn(33) : warning 213: tag mismatch
Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase
 
15 Warnings.

 
Mi a baja má\' megint? :D
Amúgy ezzel a pár sorral van baja:
[pawn]
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}
};
[/pawn]
EDIT:
sTaR, nem mûködik, amit írtál :(