-
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. :)
-
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
-
Nem jó, mert ezzel csak minden 5 másodpercbe ad 5.000$-t... :(
-
SetTimer(\"lop\", 5000, false);
Így jó lesz.
-
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.
-
:mistrust:
Ottvan amit irt Jack, az mûködik, csak a SetTimert cseréld ki az enyémre.
-
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..
-
Ahová irtad, hogy 5 mp szünet legyen.
-
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!
-
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:
-
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... :(
-
Hát nemtom,hogy kell azt emgoldani max ugy,hogy atsz mindegyiknek 1 értéket és arról kérdezze le
-
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!
-
[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[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.
-
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]
-
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 :(