-
Üdv!
Van egy heal parancsom, aminek az lenne a lényege hogy feltudjam tölteni más játékos életét ,de valamiért , ha akármit írok utána azt írja, hogy A játékos nem található! Itt a kód:
CMD:heal(playerid, params[])
{
new id;
if(sscanf(params, \"u\", id)) return SendClientMessage(playerid, 0xFF0000AA, \"Usage: \\\"/heal <Játékos/id>\\\"\");
if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid, 0xFF0000AA, \"Játékos nem található!\");
SetPlayerHealth(id, 100);
SendClientMessage(id, 0x00FF00AA, \"Életed feltöltve!\");
SendClientMessage(playerid, 0x00FF00AA, \"Játékos élete\");
return 1;
}
És írtam egy benzin scriptet ami jó és fasza, csak az a baj vele hogy én úgy szeretném tankolni a kocsit hogy mellé állok, és nem benne ülök. Azt mivel tudnám megcsinálni? Mert a próbálkozásaim nem nagyon jöttek be.
Remélem valaki tud segíteni!
-
Tipp: A benzines cucchoz megadhatnád az autó pozicióját X,Y,Z-nek és aztán IsPlayerRangeOfPoint-al megoldanád a tankolást.
Heal:
CMD:heal(playerid,params[])
{
new target;
if(IsPlayerAdmin(playerid)) if(sscanf(params,\"d\",target)) return SendClientMessage(playerid,COLOR_RED,\"Használat : /heal [iD]\"); else SetPlayerHealth(target,100.0);
if(target == INVALID_PLAYER_ID) return SendClientMessage(playerid,COLOR_RED,\"HIBA!\");
return 1;
}
zcmd betöltése szükséges!
Modod elejére:
[pawn]#include zcmd[/pawn]
-
Kösz mûködik a heal!
A tankolást meg igen úgy próbáltam ahogy írtad valahogy így:
CMD:tankolas(playerid,params[])
{
new kocsi = GetPlayerVehicleID(playerid);
new Float:X , Float:Y , Float:Z ;
GetVehiclePos(kocsi,X,Y,Z);
if(!IsPlayerInRangeOfPoint(kocsi,5,X,Y,Z)) return SendClientMessage(playerid,0xAA3333AA,\"!!!Nem vagy kocsi közelében!!!\");
if(jatekostankol[playerid]) return SendClientMessage(playerid,0xFF99AADD,\"!!!Már tankolsz!!!\"); //Ha már a játékos tankol akkor MEGÁLLÍTJA a parancsot
if(GetPlayerMoney(playerid) - 40 <0) return SendClientMessage(playerid,0xCCFFDD56,\"!!!Nincsen elég pénzed!!!\"); //Ha a játékosnak NINCS elég pénze akkor nem használhatja
GivePlayerMoney(playerid,-40); //De ha van akkor leveszi
TogglePlayerControllable(playerid,0);
jatekostankol[playerid] = 1; //Beálítja a refuel értéket 1 re hogy ne tudjon SPAMOLNI
TextDrawSetString(td_benzin[playerid],\"Most tankolsz...\"); //Kicseréli a TextDrawot
SetTimerEx(\"timer_tankolas\",4500,false,\"i\",playerid); //És beálítja az ujratöltési idõt
return 1;
}
-
lehet,hogy az én felfogásom a rossz,de a GetPlayerVehicleID(playerid); az azt kéri le amibe ül :angel:
new kocsi = GetPlayerSurfingVehicleID(playerid);
próbáld ezzel ;D
Igaz, ez inkább fun/fail kinézetet ad a dolognak,mivel rá kell álni a kocsira :laugh: :hihi:
EDIT: Holnapig megálmodom mitkéne ^-^
-
Nem nagyon akar összejönni azzal se :S
-
Benzin rendszerhez tutorial : http://sampforum.hu/index.php?topic=6482.0
-
new Float: Pos[3];
GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
if(!IsPlayerInRangeOfPoint(id, 3.0, Pos[0], Pos[1], Pos[2])) return SendClientMessage(playerid,0xAA3333AA,\"!!!Nem vagy kocsi közelében!!!\");
Probáld erre kicserélni az elejét..
-
Nem jó!
De itt a parancshoz tartozó timer egésze, hátha segít valamit:
public timer_tankolas(playerid)
{
new vid = GetPlayerVehicleID(playerid);
new string[128];
fuel[vid] = fuel[vid] +7;
jatekostankol[playerid] = 0;
format(string,sizeof(string),\"benzin:[%d]\",fuel[vid]);
TextDrawSetString(td_benzin[playerid],string);
TogglePlayerControllable(playerid,1);
}