Magyar GTA Közösség
San Andreas Többjátékos => San Andreas Multiplayer és openMP => Szerverfejelsztés => A témát indította: Pedró - 2018. május 24. - 22:45:51
-
Sziasztok.
Pedró vagyok, és ezt a szkriptet én még nagyon régen csináltam. (A legutolsó módosítás a gépem szerint 2014. szeptember)
Szeretném megosztani veletek!
A szkript annyit tud, hogy ha beírod a /neon parancsot, akkor előjön egy dialog lista, és kiválaszthatod a számodra szimpatikus neont (vagy akár többet), és rá kerül a járművedre..
Amikor a jármű megsemmisül akkor a Neonok is eltűnnek róla vele együtt.
Használjátok nyugodtan.
Szükséges pluginok: Streamer, GVar
Szükséges függvénykönyvtár: ZCMD parancs kezelő
#define FILTERSCRIPT
#include <a_samp>
#include <gvar>
#include <streamer>
#include <zcmd>
#define DIALOG_NEON 2048
new string[144];
enum e_Neons { neonName[32], neonObjectID, Float:nPosX, Float:nPosY, Float:nPosZ, Float:nPosRotX, Float:nPosRotY, Float:nPosRotZ, bool:nDouble }
new Neons[][e_Neons] = {
{"Kék", 18648, 0.8, 0.0, -0.70, 0.0, 0.0, 0.0, true}, // + -0.8
{"Piros", 18647, 0.8, 0.0, -0.70, 0.0, 0.0, 0.0, true}, // + -0.8
{"Zöld", 18649, 0.8, 0.0, -0.70, 0.0, 0.0, 0.0, true}, // + -0.8
{"Fehér", 18652, 0.8, 0.0, -0.70, 0.0, 0.0, 0.0, true}, // + -0.8
{"Rózsaszín", 18651, 0.8, 0.0, -0.70, 0.0, 0.0, 0.0, true}, // + -0.8
{"Sárga", 18650, 0.8, 0.0, -0.70, 0.0, 0.0, 0.0, true}, // + -0.8
{"Rendőr fény", 18646, 0.8, 0.0, -0.70, 0.0, 0.0, 0.0, true}, // + -0.8
{"Interior Fény", 18646, 0.0, 0.0, 0.0, 2.0, 2.0, 3.0, false},
{"Hátsó Neon", 18646, 0.0, -1.5, -1.0, 2.0, 2.0, 3.0, false},
{"Első Neon", 18646, 0.0, 1.5, -0.6, 2.0, 2.0, 3.0, false},
{"Tető Neon", 18646, -0.5, -0.2, 0.8, 2.0, 2.0, 3.0, false}
};
CMD:neon(playerid) {
new dialog_string[512];
for(new x; x < sizeof(Neons); x++) {
format(dialog_string, sizeof(dialog_string), "%s%s\n", dialog_string, Neons[x][neonName]);
}
format(dialog_string, sizeof(dialog_string), "%sMinden neon törlése", dialog_string);
ShowPlayerDialog(playerid, DIALOG_NEON, DIALOG_STYLE_LIST, "Válassz a lehetőségek közül", dialog_string, "Kiválaszt", "Kilépés");
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
switch(dialogid) {
case DIALOG_NEON: {
if(!response) return 1;
if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, 0xFF0000FF, "Hiba! Nem ülsz autóban!");
new vehicleid = GetPlayerVehicleID(playerid), objectid;
if(listitem == sizeof(Neons)) { // Tehát ha az utolsó lehetőséget választja..
RemoveNeonFromVeh(vehicleid);
SendClientMessage(playerid, 0xAFCCCFFF, "Neon: Sikeresen törölted az összeset!");
}else{
objectid = CreateDynamicObject(Neons[listitem][neonObjectID], 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
AttachDynamicObjectToVehicle(objectid, vehicleid, Neons[listitem][nPosX], Neons[listitem][nPosY], Neons[listitem][nPosZ], Neons[listitem][nPosRotX], Neons[listitem][nPosRotY], Neons[listitem][nPosRotZ]);
format(string, 32, "Neon%i", listitem);
SetGVarInt(string, objectid, vehicleid);
if(Neons[listitem][nDouble] == true) {
objectid = CreateDynamicObject(Neons[listitem][neonObjectID], 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
AttachDynamicObjectToVehicle(objectid, GetPlayerVehicleID(playerid), -Neons[listitem][nPosX], Neons[listitem][nPosY], Neons[listitem][nPosZ], Neons[listitem][nPosRotX], Neons[listitem][nPosRotY], Neons[listitem][nPosRotZ]);
format(string, 32, "Neon%i_2", listitem);
SetGVarInt(string, objectid, vehicleid);
}
format(string, 144, "Neon: Sikeresen telepítetted a(z) '%s' neoncsövet!", Neons[listitem][neonName]);
SendClientMessage(playerid, 0x00FF00FF, string);
}
}
}
return 0;
}
public OnVehicleSpawn(vehicleid) {
RemoveNeonFromVeh(vehicleid);
return 1;
}
public OnVehicleDeath(vehicleid, killerid) {
RemoveNeonFromVeh(vehicleid);
return 1;
}
stock RemoveNeonFromVeh(vehicleid) {
for(new x; x < sizeof(Neons); x++) {
format(string, 32, "Neon%i", x);
if(GetGVarType(string, vehicleid) == GLOBAL_VARTYPE_NONE) continue;
DestroyDynamicObject(GetGVarInt(string, vehicleid));
DeleteGVar(string, vehicleid);
if(Neons[x][nDouble] == true) {
format(string, 32, "Neon%i_2", x);
DestroyDynamicObject(GetGVarInt(string, vehicleid));
DeleteGVar(string, vehicleid);
}
}
}