GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Szkript kérések => A témát indította: Yakuza™ - 2012. március 15. - 17:34:46

Cím: /kirak parancs
Írta: Yakuza™ - 2012. március 15. - 17:34:46
Csá all.
Kéne egy olyan,hogy beirja az admin/rendõr,hogy /kirak és az útra kirak egy szöges drótot.
Ha átmegy rajta az autó akkor defektes legyen a gumija.
Köszönöm...
Cím: /kirak parancs
Írta: CANNONN - 2012. március 15. - 17:42:44
Mi a szögesdrót object idje?
Cím: /kirak parancs
Írta: JackBronson - 2012. március 15. - 17:48:07
Én ugy tudom,hogy  az objektes szöges drót-tól nem lesz defektes a kocsi de nem biztos.
Cím: /kirak parancs
Írta: Yakuza™ - 2012. március 15. - 17:50:01
Cannonn mindjárt mondom.
JaCk igen úgy nem lehet,de valahogy meglehet,hogy a gumit defektelje,mert már láttam egy szerón ilyent.

Dupla hozzászólás automatikusan összefûzve. ( 2012. március 15. - 17:50:37 )

Object id:
2892
Cím: /kirak parancs
Írta: CANNONN - 2012. március 15. - 17:56:07
Ötletem van a megvalósításra, de kedvem nincs hozzá.
Egyszerre csak 1et lehet lerakni megoldás.
Ha leraksz egy szögesdrótot egy boolean változó értékét igazra állítod. Elindítasz egy timert, ami az összes csatlakozott játékossal lefuttatja, hogy a szögesdrótnál van-e. ( IsPlayerInRangeOfPoint ) Ha ott van, akkor UpdateVehicleDamageStatus(vehicleid, panels, doors, lights, 15);.
Remélem azért valamennyit segítettem.
Edit:
Mégis megírtam, mûködik, tessék.
Parancsok: /kirak, /berak
 

#include a_samp
#include zcmd
new bool:szogesdrot, drot, timer, Float:x, Float:y, Float:z, Float:Fordulas;
forward szogestimer();
CMD:kirak(playerid, params[])
{
if(szogesdrot == true) return SendClientMessage(playerid,0xff0000AA,\"Figyelem.Már raktak le szögesdrótot, ha leraksz még egyet, a régit nem lehet felvenni.\"), szogesdrot = false;
szogesdrot = true;
GetPlayerPos(playerid, x, y, z);
GetPlayerFacingAngle(playerid, Fordulas);
timer = SetTimer(\"szogestimer\", 1000, true);
DestroyObject(drot);
drot = CreateObject(2892, x-1, y, z-1, 0.0, 0.0, Fordulas);
SendClientMessage(playerid,0x009924AA,\"Leraktál egy szögesdrótot. Felvenni a /berak paranccsal tudod.\");
return 1;
}
CMD:berak(playerid, params[])
{
szogesdrot = false;
DestroyObject(drot);
KillTimer(timer);
SendClientMessage(playerid,0x009924AA,\"Felszedtél egy szögesdrótot.\");
return 1;
}
public OnPlayerUpdate(playerid)
{
new vehicleid = GetPlayerVehicleID(playerid);
new panels, doors, lights, tires;
GetVehicleDamageStatus(vehicleid, panels, doors, lights, tires);
if(szogesdrot == true && IsPlayerInRangeOfPoint(playerid, 4.0, x, y, z) && IsPlayerInAnyVehicle(playerid)) UpdateVehicleDamageStatus(vehicleid, panels, doors, lights, 15);
return 1;
}
Cím: /kirak parancs
Írta: nyE - 2012. március 15. - 18:15:59
[FS] Spike Strips
Cím: /kirak parancs
Írta: Yakuza™ - 2012. március 15. - 18:28:30
Köszönöm Cannonn! és persze Antonyo -nak is,hogy linkelt.
Már értem mi ez a bool változó...