CMD:acar(playerid, params[]){if(pInfo[playerid][pAdmin] >= 3){ new alma; new Float:asdX, Float:asdY, Float:asdZ; GetPlayerPos(playerid,asdX, asdY, asdZ); alma = CreateVehicle(411, Float:asdX, Float:asdY, Float:asdZ, 0, 1, 1, 0); PutPlayerInVehicle(playerid, alma, 0); } return 1;}
public OnPlayerStateChange(playerid, newstate, oldstate) {if(newstate == PLAYER_STATE_ONFOOT) {if(GetPlayerVehicleID(playerid) == alma) DestroyVehicle(alma);}return 1;}
public OnPlayerEnterVehicle(playerid, vehicleid) { if(pInfo[playerid][pAdmin] < 3) {if(vehicleid == alma) { ClearAnimations(playerid); SendClientMessage(playerid, 0xff0000ff, \"Ez a jármű nem a tied!\");} }return 1;}
Szia! A változóban vannak már problémák!Tedd a programkódod elejére, a függvénykönyvtárak betallózása alá, a következő változó deklarációját; new AdminVehicle[MAX_PLAYERS] = {INVALID_VEHICLE_ID, ...}; Ezek után az \"acar\" parancsodat írd át a következőre; CMD:acar(playerid, params[]){if(pInfo[playerid][pAdmin] >= 3){ CheckAdminVehicle(playerid);new Float:asdX, Float:asdY, Float:asdZ;GetPlayerPos(playerid,asdX, asdY, asdZ);AdminVehicle[playerid] = CreateVehicle(411, Float:asdX, Float:asdY, Float:asdZ, 0, 1, 1, 0);PutPlayerInVehicle(playerid, AdminVehicle[playerid], 0);}return 1;} És egy kis védelem gyanánt tedd még a következő kódot, az OnPlayerDisconnect callbackhoz, amely azt eredményezi, hogy amikor kilép egy admin, ellenőrzi, hogy le hívott-e adminjárművet, és ha igen, törli azt; CheckAdminVehicle(playerid); //Igen, még akkor is ellenőrizzük, ha nem admin. (Hogyha időközben elvették volna az adminját akkor is törli.) Továbbá akkor a kérésed teljesítéséhez az OnPlayerStateChange callback alá szúrd be az alábbi kódot: if(oldstate == PLAYER_STATE_DRIVER) CheckAdminVehicle(playerid); És persze a CheckAdminVehicle függvény: stock CheckAdminVehicle(playerid) { if(AdminVehicle[playerid] != INVALID_VEHICLE_ID) { //Ha van neki adminjárműve.. AdminVehicle[playerid] = INVALID_VEHICLE_ID; DestroyVehicle(AdminVehicle[playerid]); }} Spoiler for Külön scriptben megírva, hogy minden érthető legyen!: #define FILTERSCRIPT#include <a_samp>#include <zcmd>new AdminVehicle[MAX_PLAYERS] = {INVALID_VEHICLE_ID, ...};CMD:acar(playerid, params[]){if(pInfo[playerid][pAdmin] >= 3){ CheckAdminVehicle(playerid); new Float:asdX, Float:asdY, Float:asdZ; GetPlayerPos(playerid,asdX, asdY, asdZ); AdminVehicle[playerid] = CreateVehicle(411, Float:asdX, Float:asdY, Float:asdZ, 0, 1, 1, 0); PutPlayerInVehicle(playerid, AdminVehicle[playerid], 0);}return 1;}public OnPlayerDisconnect(playerid, reason){CheckAdminVehicle(playerid); //Igen, még akkor is ellenőrizzük, ha nem admin. (Hogyha időközben elvették volna az adminját akkor is törli.)return 1;}public OnPlayerStateChange(playerid, newstate, oldstate){ if(oldstate == PLAYER_STATE_DRIVER) CheckAdminVehicle(playerid);return 1;}stock CheckAdminVehicle(playerid) { if(AdminVehicle[playerid] != INVALID_VEHICLE_ID) { //Ha van neki adminjárműve.. AdminVehicle[playerid] = INVALID_VEHICLE_ID; DestroyVehicle(AdminVehicle[playerid]); }} Eltolódások miatt pastebin link: http://pastebin.com/NNb6k0Ai
new AdminVehicle[MAX_PLAYERS] = {INVALID_VEHICLE_ID, ...};
CMD:acar(playerid, params[]){if(pInfo[playerid][pAdmin] >= 3){ CheckAdminVehicle(playerid);new Float:asdX, Float:asdY, Float:asdZ;GetPlayerPos(playerid,asdX, asdY, asdZ);AdminVehicle[playerid] = CreateVehicle(411, Float:asdX, Float:asdY, Float:asdZ, 0, 1, 1, 0);PutPlayerInVehicle(playerid, AdminVehicle[playerid], 0);}return 1;}
CheckAdminVehicle(playerid); //Igen, még akkor is ellenőrizzük, ha nem admin. (Hogyha időközben elvették volna az adminját akkor is törli.)
if(oldstate == PLAYER_STATE_DRIVER) CheckAdminVehicle(playerid);
stock CheckAdminVehicle(playerid) { if(AdminVehicle[playerid] != INVALID_VEHICLE_ID) { //Ha van neki adminjárműve.. AdminVehicle[playerid] = INVALID_VEHICLE_ID; DestroyVehicle(AdminVehicle[playerid]); }}
Bár jobb lett volna ha ezt mLife-n mondtad volna el! [/quote]