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

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => A témát indította: Buba - 2011. április 01. - 20:29:05

Cím: Autómatikus kocsi javító(letiltható)
Írta: Buba - 2011. április 01. - 20:29:05
[FS]Autómatikus kocsi javító
~~~~~~~~~ Bevezetés ~~~~~~~~~
Üdv!!
Ugye sok stunt szerveren van /fix vagy /vr parancs ...
De stunt közben ezeket beírni nehéz és elronthatod vele a mutatványt, amíg írsz(shortkey macerás szerintem)
Ha meg olyan kocsi javítót alkalmazunk, ami mindig megjavítja a kocsid, akkor nem mehetsz derbyzni, meg semmi értelme ha lövik a kocsid...
DE:
Ezt elkerülhetjük azzal hogy....
A kocsi javítást letiltjuk, engedélyezzük.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~ Letöltés ~~~~~~~~~
/repairletilt
/repairenged
Gondolom érthetõ, amit elér a hatásuk
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~ Jogok ~~~~~~~~~
A script teljes mértékben BuBa keze alatt készült, a módosítása engedélyezett. A teljes script sajátként feltüntetése script lopásnak számít.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~ Plugins ~~~~~~~~~
zcmd.inc
Tipp:A zcmd.inc -t tedd a pawno/includes mappába.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~ Letöltés ~~~~~~~~~
Autorepair [AMX + PWN]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Cím: Autómatikus kocsi javító(letiltható)
Írta: #YoYo# - 2011. április 01. - 21:14:56
Ránézésre ötletes :D majd kipróbálom
Cím: Autómatikus kocsi javító(letiltható)
Írta: DrAkE - 2011. április 04. - 09:57:37
Csak annyit fûznék hozzá hogy semmi értelme olyan Timert használni ami 1 másodpercenként megjavítaná a kocsikat (tudtommal senkinek se javítaná a kocsiját, mivel a kocsijavit(playerid) prototípusban nem hiovatkoztál rá hogy melyik playeridnek a kocsiját javítsa meg, ezáltal nem javítaná mindenkinek, hacsak egy for ciklussal mindenkinek megjavítanád) mikor értelmesebben is meglehet oldani.
Itt egy jobb, kevésbé terhelõ, picivel gyorsabb, tömörebb verzió:
 
#include <a_samp>
#include <zcmd>
#define COLOR_SIKERES 0x000080AA
#define COLOR_SIKERTELEN 0xFF0000AA
public OnFilterScriptInit() print(\" Autómatikus kocsi javító betöltve\");
public OnFilterScriptExit() print(\" Autómatikus kocsi javító kivéve\");
public OnPlayerConnect(playerid) SetPVarInt(playerid, \"javito\", 0);
public OnPlayerDisconnect(playerid, reason) SetPVarInt(playerid, \"javito\", 0);
public OnVehicleDamageStatusUpdate(vehicleid, playerid) if(GetPVarInt(playerid, \"javito\")) RepairVehicle(vehicleid);
CMD:repairletilt(playerid,params[]) // A játékos letilthatja magának
{
    if(!GetPVarInt(playerid, \"javito\")) SetPVarInt(playerid, \"javito\", 1),
SendClientMessage(playerid,COLOR_SIKERES,\"Sikeresen letiltottad az autód javítását, ha összetöröd nem javul meg!\"),
SendClientMessage(playerid,COLOR_SIKERES,\"Ha újra törhetetlenné akarod tenni: /repairenged \");
else SendClientMessage(playerid,COLOR_SIKERTELEN,\"Már le volt tiltva neked az autómatikus javítás!!!\");
return 1;
}
CMD:repairenged(playerid,params[]) // A játékos engedélyezheti
{
    if(GetPVarInt(playerid, \"javito\")) SetPVarInt(playerid, \"javito\", 0),
SendClientMessage(playerid,COLOR_SIKERES,\"A kocsid törhetetlen újra! Ha akarod hogy \'törékeny\' legyen, /repairletilt\");
else SendClientMessage(playerid,COLOR_SIKERTELEN,\"Neked eddig is engedélyezve volt a kocsi törhetetlenség!\");
return 1;
}
Cím: Autómatikus kocsi javító(letiltható)
Írta: Koncz_Norbert - 2011. április 04. - 11:18:41
Idézetet írta: Buba date=1301682545\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"7267\" data-ipsquote-contentclass=\"forums_Topic
...
~~~~~~~~~ Plugins ~~~~~~~~~[/color]
zcmd.inc
Tipp:A zcmd.inc -t tedd a pawno/includes mappába.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...
 
El vagy tájolva. :D
Az nem plugin. De ha pluginos akkor sry :angel:
(még nem probáltam ki)
Cím: Autómatikus kocsi javító(letiltható)
Írta: Zsolesszka - 2011. április 04. - 11:48:42
Idézetet írta: DrAkE date=1301903857\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"7267\" data-ipsquote-contentclass=\"forums_Topic
Csak annyit fûznék hozzá hogy semmi értelme olyan Timert használni ami 1 másodpercenként megjavítaná a kocsikat (tudtommal senkinek se javítaná a kocsiját, mivel a kocsijavit(playerid) prototípusban nem hiovatkoztál rá hogy melyik playeridnek a kocsiját javítsa meg, ezáltal nem javítaná mindenkinek, hacsak egy for ciklussal mindenkinek megjavítanád) mikor értelmesebben is meglehet oldani.
Itt egy jobb, kevésbé terhelõ, picivel gyorsabb verzió, tömör verzió:
 
#include <a_samp>
#include <zcmd>
#define COLOR_SIKERES 0x000080AA
#define COLOR_SIKERTELEN 0xFF0000AA
public OnFilterScriptInit() print(\" Autómatikus kocsi javító betöltve\");
public OnFilterScriptExit() print(\" Autómatikus kocsi javító kivéve\");
public OnPlayerConnect(playerid) SetPVarInt(playerid, \"javito\", 0);
public OnPlayerDisconnect(playerid, reason) SetPVarInt(playerid, \"javito\", 0);
public OnVehicleDamageStatusUpdate(vehicleid, playerid) if(GetPVarInt(playerid, \"javito\")) RepairVehicle(vehicleid);
CMD:repairletilt(playerid,params[]) // A játékos letilthatja magának
{
    if(!GetPVarInt(playerid, \"javito\")) SetPVarInt(playerid, \"javito\", 1),
SendClientMessage(playerid,COLOR_SIKERES,\"Sikeresen letiltottad az autód javítását, ha összetöröd nem javul meg!\"),
SendClientMessage(playerid,COLOR_SIKERES,\"Ha újra törhetetlenné akarod tenni: /repairenged \");
else SendClientMessage(playerid,COLOR_SIKERTELEN,\"Már le volt tiltva neked az autómatikus javítás!!!\");
return 1;
}
CMD:repairenged(playerid,params[]) // A játékos engedélyezheti
{
    if(GetPVarInt(playerid, \"javito\")) SetPVarInt(playerid, \"javito\", 0),
SendClientMessage(playerid,COLOR_SIKERES,\"A kocsid törhetetlen újra! Ha akarod hogy \'törékeny\' legyen, /repairletilt\");
else SendClientMessage(playerid,COLOR_SIKERTELEN,\"Neked eddig is engedélyezve volt a kocsi törhetetlenség!\");
return 1;
}

 

Valóban DrAkE megoldása sokkal jobb, nincs plusz felesleges timer.
Egyet felejtettetek el mivel zcmd-t használtok és filterscriptként írtátok meg.
 

Note #1: If you want to use zcmd in a filterscript, put this define before including:
 

#define FILTERSCRIPT

 

[/quote]

ZCMD
Tehát helyesen:
 

#include <a_samp>
#define FILTERSCRIPT
#include <zcmd>
Cím: Autómatikus kocsi javító(letiltható)
Írta: jana4 - 2011. április 04. - 15:37:27
Szép lett, Drake megoldása jobb, hatékonyabb, mivel PVar-t használt.

Megjegyezném:

 
public OnVehicleDamageStatusUpdate(vehicleid, playerid) if(GetPVarInt(playerid, \"javito\")) RepairVehicle(vehicleid);

 
Ez sajnos nem mindig jó. Pl., felborultál, keresed a /flip parancso (  ;D ) és akkor nem fog elállni az égés hanem felfogsz robbanni. Ezért használom én még mindig a timeres megoldást (vagy OnPlayerUpdatest ?!)