Skocz do zawartości

Nowy szablon forum

mygo.pl

Stworzyliśmy dla Was nowy wygląd forum. Z pewnością znajdziesz rzeczy, które wg Ciebie mogą zostać zmienione - wspomnij o tym w specjalnym wątku.

Czytaj więcej

Jak założyć własną sieć

serwerów CS

Zastanawiasz się nad prowadzeniem własnej sieci serwerów? Przeczytaj podstawowe informacje, na które należy zwrócić uwagę, przy takim projekcie.

Czytaj więcej

Tworzymy spis sieci

dodaj swoją

Dodaj sieć do której należysz, pozwoli to na promocję i budowę ogólnopolskiej bazy sieci CS.

Czytaj więcej

RSSEdit Models menu


MYGO.pl
 Udostępnij

Rekomendowane odpowiedzi

  • RSSy
Hi, can anyone edit the code below
Adding the default jailbreak models from the edited OcixCrom mod : https://www.amxx-bg.info/forum/viewt...hp?f=96&t=2420
By just putting it on by default
Because otherwise are the normal models of cs
terror / guerrilla, etc.

Php code:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <hamsandwich>
#include <fvault>

#define VERSION "1.2"

new Array:g_szNames, Array:g_szModel, Array:g_szFlag, Array:g_iTeam, Trie:UserModel[2]
new iTotalModels, iCurrentModel[33]
new p_admin_only, p_admin_flag, p_set_atm, p_save

new const szDefaultModels[][][] =
{
{ "terror", "leet", "arctic", "guerilla" },
{ "urban", "gsg9", "sas", "gign" }
}

new const szPrefix[] = "ModelsMenu"
new const szFVaultFile[] = "models_menu"

public plugin_init()
{
register_plugin("Models Menu", VERSION, "TheRedShoko")
register_cvar("models_menu", VERSION, FCVAR_SERVER | FCVAR_SPONLY)

register_clcmd("say /models", "show_model_menu")
register_clcmd("say_team /models", "show_model_menu")

RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawnPost", 1)
register_forward(FM_SetClientKeyValue, "fw_SetClientKeyValue")

p_admin_only = register_cvar("models_menu_adminonly", "0")
p_admin_flag = register_cvar("models_menu_adminflag", "a")
p_set_atm = register_cvar("models_menu_setnow", "1")
p_save = register_cvar("models_menu_save", "1")
}

public plugin_precache()
{
g_szNames = ArrayCreate(32, 1)
g_szModel = ArrayCreate(32, 1)
g_szFlag = ArrayCreate(8, 1)
g_iTeam = ArrayCreate(8, 1)
UserModel[0] = TrieCreate()
UserModel[1] = TrieCreate()

load_menu_file()
load_user_file()
}

public plugin_end()
{
ArrayDestroy(g_szNames)
ArrayDestroy(g_szModel)
ArrayDestroy(g_szFlag)
ArrayDestroy(g_iTeam)
TrieDestroy(UserModel[0])
TrieDestroy(UserModel[1])
}

public client_putinserver(id)
{
if (get_pcvar_num(p_save))
{
LoadModel(id)
}
}

public client_disconnect(id)
{
if (get_pcvar_num(p_save))
{
SaveModel(id)
}
}

public fw_PlayerSpawnPost(id)
{
if (is_user_alive(id) && 1 <= get_user_team(id) <= 2)
{
new szModel[32]
if (iCurrentModel[id])
{
new iTeam = ArrayGetCell(g_iTeam, iCurrentModel[id])

if (iTeam && get_user_team(id) == iTeam)
{
ArrayGetString(g_szModel, iCurrentModel[id], szModel, charsmax(szModel))
}
else if (iTeam)
{
ColorMessage(id, "^x04[%s]^x01 Your current model is not for your team!", szPrefix)
}
}

if (szModel[0] == EOS)
{
new szName[32]
get_user_name(id, szName, charsmax(szName))

if (TrieKeyExists(UserModel[get_user_team(id) - 1], szName))
{
TrieGetString(UserModel[get_user_team(id) - 1], szName, szModel, charsmax(szModel))
}
else
{
copy(szModel, charsmax(szModel), szDefaultModels[get_user_team(id) - 1][random(sizeof(szDefaultModels[]))])
}
}

set_user_info(id, "model", szModel)
}
}

public show_model_menu(id)
{
new szFlag[8]
get_pcvar_string(p_admin_flag, szFlag, charsmax(szFlag))

if (get_pcvar_num(p_admin_only) && !(get_user_flags(id) & read_flags(szFlag)))
{
ColorMessage(id, "^x04[%s]^x01 This menu is currently^x03 Admin Only^x01!", szPrefix)
return PLUGIN_HANDLED
}

new iMenu = menu_create("\rModels Menu^n\yChoose a model:", "model_handler")

new szName[64]

for (new i = 0; i < iTotalModels; i++)
{
ArrayGetString(g_szNames, i, szName, charsmax(szName))

menu_additem(iMenu, szName, _, _, menu_makecallback("model_callback"))
}

menu_display(id, iMenu)

return PLUGIN_HANDLED
}

public model_callback(id, iMenu, Item)
{
new szFlag[8]
ArrayGetString(g_szFlag, Item, szFlag, charsmax(szFlag))

new iFlags = get_user_flags(id)
new iTeam = ArrayGetCell(g_iTeam, Item)

new szName[64], szInfo[1], iCallback, iAccess
menu_item_getinfo(iMenu, Item, iAccess, szInfo, charsmax(szInfo), szName, charsmax(szName), iCallback)

if (equal(szName, "ERROR"))
{
add(szName, charsmax(szName), " \r(Failed to load model)")

menu_item_setname(iMenu, Item, szName)

return ITEM_DISABLED
}

new szToAdd[64]

if (szFlag[0] != EOS)
{
formatex(szToAdd, charsmax(szToAdd), " \%s(Admin Only)", (iFlags & read_flags(szFlag)) ? "y" : "r")
add(szName, charsmax(szName), szToAdd)
}

if (1 <= iTeam <= 2)
{
formatex(szToAdd, charsmax(szToAdd), " \%s(%s)", (get_user_team(id) == iTeam) ? "y" : "r", (iTeam == 1) ? "Terrorist Only" : "CT Only")
add(szName, charsmax(szName), szToAdd)
}

menu_item_setname(iMenu, Item, szName)

if (Item == iCurrentModel[id] || 1 <= iTeam <= 2 && get_user_team(id) != iTeam || !(iFlags & read_flags(szFlag)) && szFlag[0] != EOS)
{
return ITEM_DISABLED
}

return ITEM_ENABLED
}

public model_handler(id, iMenu, Item)
{
if (Item == MENU_EXIT)
{
menu_destroy(iMenu)
return
}

iCurrentModel[id] = Item

new szName[32]
ArrayGetString(g_szNames, Item, szName, charsmax(szName))

if (is_user_alive(id) && get_pcvar_num(p_set_atm) && 1 <= get_user_team(id) <= 2)
{
new szModel[32]

if (Item)
{
ArrayGetString(g_szModel, Item, szModel, charsmax(szModel))
}
else
{
new szName[32]
get_user_name(id, szName, charsmax(szName))

if (TrieKeyExists(UserModel[get_user_team(id) - 1], szName))
{
TrieGetString(UserModel[get_user_team(id) - 1], szName, szModel, charsmax(szModel))
}
else
{
copy(szModel, charsmax(szModel), szDefaultModels[get_user_team(id) - 1][random(sizeof(szDefaultModels[]))])
}
}

set_user_info(id, "model", szModel)

ColorMessage(id, "^x04[%s]^x01 Your model is now^x03 %s^x01!", szPrefix, szName)
}
else
{
ColorMessage(id, "^x04[%s]^x01 Your model will be changed to^x03 %s^x01 after your next spawn!", szPrefix, szName)
}

menu_destroy(iMenu)
}

load_menu_file()
{
new szFile[128]
get_configsdir(szFile, charsmax(szFile))

add(szFile, charsmax(szFile), "/models.ini")

new iLine, szData[128], buffer

new szName[32], szModel[32], szFlag[8], szTeam[8], iTeam

if (file_exists(szFile))
{
iTotalModels = 1

ArrayPushString(g_szNames, "Default")
ArrayPushString(g_szModel, "")
ArrayPushString(g_szFlag, "")
ArrayPushCell(g_iTeam, 0)

while ( (iLine = read_file(szFile, iLine, szData, charsmax(szData), buffer)) )
{
if (szData[0] == EOS || szData[0] == '/' && szData[1] == '/' || szData[0] == ';') continue

parse(szData, szName, charsmax(szName), szModel, charsmax(szModel), szFlag, charsmax(szFlag), szTeam, charsmax(szTeam))

switch (szTeam[0])
{
case 'T', 't':
{
iTeam = 1
}
case 'c', 'C':
{
iTeam = 2
}
default:
{
iTeam = 0
}
}

if (try_to_precache(szModel))
{
ArrayPushString(g_szNames, szName)
ArrayPushString(g_szModel, szModel)
ArrayPushString(g_szFlag, szFlag)
ArrayPushCell(g_iTeam, iTeam)
}
else
{
ArrayPushString(g_szNames, "ERROR")
ArrayPushString(g_szModel, "")
ArrayPushString(g_szFlag, "")
ArrayPushCell(g_iTeam, 0)
}

iTotalModels++
}
}
else
{
new iFile = fopen(szFile, "wt")

if (iFile)
{
new szLine[256]

formatex(szLine, charsmax(szLine), "; Player models menu by TheRedShoko^n; Usage: ^"Name to be displayed in the menu^" ^"Name of the model^" ^"Admin flag^" ^"T | CT | 0^"")

fputs(iFile, szLine)

fclose(iFile)
}
}
}

load_user_file()
{
new szFile[128]
get_configsdir(szFile, charsmax(szFile))

add(szFile, charsmax(szFile), "/user_models.ini")

new iLine, szData[128], buffer

new szName[32], szModel[2][32]

if (file_exists(szFile))
{
while ( (iLine = read_file(szFile, iLine, szData, charsmax(szData), buffer)) )
{
if (szData[0] == EOS || szData[0] == '/' && szData[1] == '/' || szData[0] == ';') continue

parse(szData, szName, charsmax(szName), szModel[0], charsmax(szModel[]), szModel[1], charsmax(szModel[]))

for (new i = 0; i < sizeof(szModel); i++)
{
if (szModel[i][0] != EOS && try_to_precache(szModel[i]))
{
TrieSetString(UserModel[i], szName, szModel[i])
}
}
}
}
else
{
new iFile = fopen(szFile, "wt")

if (iFile)
{
new szLine[256]

formatex(szLine, charsmax(szLine), "; Player models menu by TheRedShoko^n; Usage: ^"Player Name^" ^"Name of the model for terrorist^" ^"Name of model for CT^"")

fputs(iFile, szLine)

fclose(iFile)
}
}
}

SaveModel(id)
{
new szData[8], szName[32]
get_user_name(id, szName, charsmax(szName))
num_to_str(iCurrentModel[id], szData, charsmax(szData))

fvault_set_data(szFVaultFile, szName, szData)
}

LoadModel(id)
{
new szData[8], szName[32]
get_user_name(id, szName, charsmax(szName))

if (fvault_get_data(szFVaultFile, szName, szData, charsmax(szData)))
{
iCurrentModel[id] = str_to_num(szData)
}
else
{
iCurrentModel[id] = 0
}
}

public fw_SetClientKeyValue(id, szInfoBuffer[], szKey[], szValue[])
{
if (equal(szKey, "model"))
{
return FMRES_SUPERCEDE
}

return FMRES_IGNORED
}

try_to_precache(model[])
{
new szModel[64]
formatex(szModel, charsmax(szModel), "models/player/%s/%s.mdl", model, model)

if (!file_exists(szModel))
{
log_amx("Failed to precache ^"%s^"! File is missing or may have wrong name!", szModel)
return 0;
}

precache_generic(szModel)

return 1
}

stock ColorMessage(const id, const input[], any:...)
{
new count = 1, players[32];
static msg[191];
vformat(msg, 190, input, 3);
if (id) players[0] = id; else get_players(players , count , "ch");
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE , get_user_msgid("SayText"), _, players[i]);
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1026\\ f0\\ fs16 \n\\ par }
*/

Sorry for my poor english

Przeczytaj cały wpis

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...