Diff
checker
Texto
Texto
Imagens
Documentos
Excel
Pastas
Legal
Enterprise
Aplicativo para desktop
Preços
Fazer login
Baixar o Diffchecker Desktop
Comparar texto
Encontre a diferença entre dois arquivos de texto
Ferramentas
Histórico
Editor live
Recolher inalteradas
Sem quebra de linha
Layout
Dividido
Unificado
Nível de detalhe
Inteligente
Palavra
Caractere
Realce de sintaxe
Escolher sintaxe
Ignorar
Transformar texto
Ir à primeira mudança
Editar entrada
Diffchecker Desktop
A maneira mais segura de usar o Diffchecker. Obtenha o aplicativo Diffchecker Desktop: seus diffs nunca saem do seu computador!
Obter Desktop
Admin Models
Criado
há 2 anos
O diff nunca expira
Limpar
Exportar
Compartilhar
Explicar
3 remoções
Linhas
Total
Removido
Caracteres
Total
Removido
Para continuar usando este recurso, atualize para
Diff
checker
Pro
Ver preços
118 linhas
Copiar tudo
21 adições
Linhas
Total
Adicionado
Caracteres
Total
Adicionado
Para continuar usando este recurso, atualize para
Diff
checker
Pro
Ver preços
123 linhas
Copiar tudo
// Copyright © 2016 Vaqtincha
// Copyright © 2016 Vaqtincha
#include <amxmodx>
#include <amxmodx>
#include <reapi>
#include <reapi>
enum player_models { szTTModel[64], szCTModel[64], iFlag }
enum player_models { szTTModel[64], szCTModel[64], iFlag }
/**■■■■■■■■■■■■■■■■■■■■■■■■■■■■ CONFIG START ■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/
/**■■■■■■■■■■■■■■■■■■■■■■■■■■■■ CONFIG START ■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/
#define SET_MODELINDEX
#define SET_MODELINDEX
#define MAX_MODEL_PATH_LEN 128
#define MAX_MODEL_PATH_LEN 128
/// FORMAT: "Terrorist Model" "Counter-Terrorist Model" "Access Flag"
/// FORMAT: "Terrorist Model" "Counter-Terrorist Model" "Access Flag"
new const g_eModelsData[][player_models] =
new const g_eModelsData[][player_models] =
{
{
Copiar
Copiado
Copiar
Copiado
{ "
snowleet
", "
lolgign
", ADMIN_LEVEL_
B
},
{ "
vip_t_server500", "vip_ct_server500", ADMIN_LEVEL_H },
{ "viptt", "vipct", ADMIN_LEVEL_H },
//{ "new_year_t
", "
new_year_ct
", ADMIN_LEVEL_
H
},
{ "bomjtt", "bomjct", ADMIN_ALL },
//
{ "viptt", "vipct", ADMIN_LEVEL_H },
//
{ "bomjtt", "bomjct", ADMIN_ALL },
/**■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ CONFIG END ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/
/**■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ CONFIG END ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/
{"", "", -1} // don't touch it!!
{"", "", -1} // don't touch it!!
}
}
#define IsValidArrayIndex(%1) (0 <= %1 <= sizeof(g_eModelsData)-1)
#define IsValidArrayIndex(%1) (0 <= %1 <= sizeof(g_eModelsData)-1)
#if defined SET_MODELINDEX
#if defined SET_MODELINDEX
new g_iTTModelIndex[sizeof(g_eModelsData)], g_iCTModelIndex[sizeof(g_eModelsData)]
new g_iTTModelIndex[sizeof(g_eModelsData)], g_iCTModelIndex[sizeof(g_eModelsData)]
#endif
#endif
public plugin_precache()
public plugin_precache()
{
{
if(g_eModelsData[0][iFlag] == -1)
if(g_eModelsData[0][iFlag] == -1)
{
{
set_fail_state("Array g_eModelsData are empty!")
set_fail_state("Array g_eModelsData are empty!")
return
return
}
}
for(new i = 0; i < sizeof(g_eModelsData)-1; i++)
for(new i = 0; i < sizeof(g_eModelsData)-1; i++)
{
{
#if defined SET_MODELINDEX
#if defined SET_MODELINDEX
Copiar
Copiado
Copiar
Copiado
g_iTTModelIndex
= precache_player_model(g_eModelsData
[szTTModel])
g_iTTModelIndex
[i]
= precache_player_model(g_eModelsData
[i]
[szTTModel])
g_iCTModelIndex
= precache_player_model(g_eModelsData
[szCTModel])
g_iCTModelIndex
[i]
= precache_player_model(g_eModelsData
[i]
[szCTModel])
#else
#else
Copiar
Copiado
Copiar
Copiado
precache_player_model(g_eModelsData
[szTTModel])
precache_player_model(g_eModelsData
[i]
[szTTModel])
precache_player_model(g_eModelsData[
szCTModel])
precache_player_model(g_eModelsData[
i][
szCTModel])
#endif
#endif
}
}
}
}
public plugin_init()
public plugin_init()
{
{
register_plugin("[ReAPI] Admin Models", "0.0.2", "Vaqtincha")
register_plugin("[ReAPI] Admin Models", "0.0.2", "Vaqtincha")
RegisterHookChain(RG_CBasePlayer_SetClientUserInfoModel, "SetClientUserInfoModel", .post = false)
RegisterHookChain(RG_CBasePlayer_SetClientUserInfoModel, "SetClientUserInfoModel", .post = false)
}
}
public SetClientUserInfoModel(const pPlayer, infobuffer[], szNewModel[])
public SetClientUserInfoModel(const pPlayer, infobuffer[], szNewModel[])
{
{
new iArrayIndex = get_user_model_by_flag(get_user_flags(pPlayer))
new iArrayIndex = get_user_model_by_flag(get_user_flags(pPlayer))
if(!IsValidArrayIndex(iArrayIndex))
if(!IsValidArrayIndex(iArrayIndex))
return HC_CONTINUE
return HC_CONTINUE
Copiar
Copiado
Copiar
Copiado
switch(get_member(pPlayer, m_iTeam))
switch(get_member(pPlayer, m_iTeam))
{
{
case TEAM_TERRORIST: {
case TEAM_TERRORIST: {
#if defined SET_MODELINDEX
#if defined SET_MODELINDEX
set_member(pPlayer, m_modelIndexPlayer, g_iTTModelIndex[iArrayIndex])
set_member(pPlayer, m_modelIndexPlayer, g_iTTModelIndex[iArrayIndex])
#endif
#endif
SetHookChainArg(3, ATYPE_STRING, g_eModelsData[iArrayIndex][szTTModel])
SetHookChainArg(3, ATYPE_STRING, g_eModelsData[iArrayIndex][szTTModel])
}
}
case TEAM_CT: {
case TEAM_CT: {
#if defined SET_MODELINDEX
#if defined SET_MODELINDEX
set_member(pPlayer, m_modelIndexPlayer, g_iCTModelIndex[iArrayIndex])
set_member(pPlayer, m_modelIndexPlayer, g_iCTModelIndex[iArrayIndex])
#endif
#endif
SetHookChainArg(3, ATYPE_STRING, g_eModelsData[iArrayIndex][szCTModel])
SetHookChainArg(3, ATYPE_STRING, g_eModelsData[iArrayIndex][szCTModel])
}
}
default: return HC_CONTINUE
default: return HC_CONTINUE
}
}
return HC_CONTINUE
return HC_CONTINUE
}
}
get_user_model_by_flag(const iUserFlags)
get_user_model_by_flag(const iUserFlags)
{
{
const INVALID_INDEX = -1
const INVALID_INDEX = -1
Copiar
Copiado
Copiar
Copiado
if(iUserFlags & (1<<29)) {
return INVALID_INDEX
}
for(new i = 0; i < sizeof(g_eModelsData)-1; i++)
for(new i = 0; i < sizeof(g_eModelsData)-1; i++)
{
{
Copiar
Copiado
Copiar
Copiado
if(iUserFlags & g_eModelsData
[iFlag] || g_eModelsData[i
Flag] == ADMIN_ALL)
if(iUserFlags & g_eModelsData
[i]
[iFlag] || g_eModelsData[i
][i
Flag] == ADMIN_ALL)
return i
return i
}
}
return INVALID_INDEX // non admin player
return INVALID_INDEX // non admin player
}
}
precache_player_model(const szModel[])
precache_player_model(const szModel[])
Copiar
Copiado
Copiar
Copiado
{
{
new szFileToPrecache[MAX_MODEL_PATH_LEN], szErrMsg[MAX_MODEL_PATH_LEN + 64]
new szFileToPrecache[MAX_MODEL_PATH_LEN], szErrMsg[MAX_MODEL_PATH_LEN + 64]
formatex(szFileToPrecache, charsmax(szFileToPrecache), "models/player/%s/%s.mdl", szModel, szModel)
formatex(szFileToPrecache, charsmax(szFileToPrecache), "models/player/%s/%s.mdl", szModel, szModel)
if(!file_exists(szFileToPrecache))
if(!file_exists(szFileToPrecache))
{
{
formatex(szErrMsg, charsmax(szErrMsg), "[Admin Models] ERROR: Model ^"%s^" not found!", szFileToPrecache)
formatex(szErrMsg, charsmax(szErrMsg), "[Admin Models] ERROR: Model ^"%s^" not found!", szFileToPrecache)
set_fail_state(szErrMsg)
set_fail_state(szErrMsg)
return 0
return 0
}
}
return precache_model(szFileToPrecache)
return precache_model(szFileToPrecache)
}
}
Diferenças salvas
Texto original
Abrir arquivo
// Copyright © 2016 Vaqtincha #include <amxmodx> #include <reapi> enum player_models { szTTModel[64], szCTModel[64], iFlag } /**■■■■■■■■■■■■■■■■■■■■■■■■■■■■ CONFIG START ■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/ #define SET_MODELINDEX #define MAX_MODEL_PATH_LEN 128 /// FORMAT: "Terrorist Model" "Counter-Terrorist Model" "Access Flag" new const g_eModelsData[][player_models] = { { "snowleet", "lolgign", ADMIN_LEVEL_B }, { "viptt", "vipct", ADMIN_LEVEL_H }, { "bomjtt", "bomjct", ADMIN_ALL }, /**■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ CONFIG END ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/ {"", "", -1} // don't touch it!! } #define IsValidArrayIndex(%1) (0 <= %1 <= sizeof(g_eModelsData)-1) #if defined SET_MODELINDEX new g_iTTModelIndex[sizeof(g_eModelsData)], g_iCTModelIndex[sizeof(g_eModelsData)] #endif public plugin_precache() { if(g_eModelsData[0][iFlag] == -1) { set_fail_state("Array g_eModelsData are empty!") return } for(new i = 0; i < sizeof(g_eModelsData)-1; i++) { #if defined SET_MODELINDEX g_iTTModelIndex = precache_player_model(g_eModelsData[szTTModel]) g_iCTModelIndex = precache_player_model(g_eModelsData[szCTModel]) #else precache_player_model(g_eModelsData[szTTModel]) precache_player_model(g_eModelsData[szCTModel]) #endif } } public plugin_init() { register_plugin("[ReAPI] Admin Models", "0.0.2", "Vaqtincha") RegisterHookChain(RG_CBasePlayer_SetClientUserInfoModel, "SetClientUserInfoModel", .post = false) } public SetClientUserInfoModel(const pPlayer, infobuffer[], szNewModel[]) { new iArrayIndex = get_user_model_by_flag(get_user_flags(pPlayer)) if(!IsValidArrayIndex(iArrayIndex)) return HC_CONTINUE switch(get_member(pPlayer, m_iTeam)) { case TEAM_TERRORIST: { #if defined SET_MODELINDEX set_member(pPlayer, m_modelIndexPlayer, g_iTTModelIndex[iArrayIndex]) #endif SetHookChainArg(3, ATYPE_STRING, g_eModelsData[iArrayIndex][szTTModel]) } case TEAM_CT: { #if defined SET_MODELINDEX set_member(pPlayer, m_modelIndexPlayer, g_iCTModelIndex[iArrayIndex]) #endif SetHookChainArg(3, ATYPE_STRING, g_eModelsData[iArrayIndex][szCTModel]) } default: return HC_CONTINUE } return HC_CONTINUE } get_user_model_by_flag(const iUserFlags) { const INVALID_INDEX = -1 for(new i = 0; i < sizeof(g_eModelsData)-1; i++) { if(iUserFlags & g_eModelsData[iFlag] || g_eModelsData[iFlag] == ADMIN_ALL) return i } return INVALID_INDEX // non admin player } precache_player_model(const szModel[]) { new szFileToPrecache[MAX_MODEL_PATH_LEN], szErrMsg[MAX_MODEL_PATH_LEN + 64] formatex(szFileToPrecache, charsmax(szFileToPrecache), "models/player/%s/%s.mdl", szModel, szModel) if(!file_exists(szFileToPrecache)) { formatex(szErrMsg, charsmax(szErrMsg), "[Admin Models] ERROR: Model ^"%s^" not found!", szFileToPrecache) set_fail_state(szErrMsg) return 0 } return precache_model(szFileToPrecache) }
Texto alterado
Abrir arquivo
// Copyright © 2016 Vaqtincha #include <amxmodx> #include <reapi> enum player_models { szTTModel[64], szCTModel[64], iFlag } /**■■■■■■■■■■■■■■■■■■■■■■■■■■■■ CONFIG START ■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/ #define SET_MODELINDEX #define MAX_MODEL_PATH_LEN 128 /// FORMAT: "Terrorist Model" "Counter-Terrorist Model" "Access Flag" new const g_eModelsData[][player_models] = { { "vip_t_server500", "vip_ct_server500", ADMIN_LEVEL_H }, //{ "new_year_t", "new_year_ct", ADMIN_LEVEL_H }, // { "viptt", "vipct", ADMIN_LEVEL_H }, // { "bomjtt", "bomjct", ADMIN_ALL }, /**■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ CONFIG END ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/ {"", "", -1} // don't touch it!! } #define IsValidArrayIndex(%1) (0 <= %1 <= sizeof(g_eModelsData)-1) #if defined SET_MODELINDEX new g_iTTModelIndex[sizeof(g_eModelsData)], g_iCTModelIndex[sizeof(g_eModelsData)] #endif public plugin_precache() { if(g_eModelsData[0][iFlag] == -1) { set_fail_state("Array g_eModelsData are empty!") return } for(new i = 0; i < sizeof(g_eModelsData)-1; i++) { #if defined SET_MODELINDEX g_iTTModelIndex[i] = precache_player_model(g_eModelsData[i][szTTModel]) g_iCTModelIndex[i] = precache_player_model(g_eModelsData[i][szCTModel]) #else precache_player_model(g_eModelsData[i][szTTModel]) precache_player_model(g_eModelsData[i][szCTModel]) #endif } } public plugin_init() { register_plugin("[ReAPI] Admin Models", "0.0.2", "Vaqtincha") RegisterHookChain(RG_CBasePlayer_SetClientUserInfoModel, "SetClientUserInfoModel", .post = false) } public SetClientUserInfoModel(const pPlayer, infobuffer[], szNewModel[]) { new iArrayIndex = get_user_model_by_flag(get_user_flags(pPlayer)) if(!IsValidArrayIndex(iArrayIndex)) return HC_CONTINUE switch(get_member(pPlayer, m_iTeam)) { case TEAM_TERRORIST: { #if defined SET_MODELINDEX set_member(pPlayer, m_modelIndexPlayer, g_iTTModelIndex[iArrayIndex]) #endif SetHookChainArg(3, ATYPE_STRING, g_eModelsData[iArrayIndex][szTTModel]) } case TEAM_CT: { #if defined SET_MODELINDEX set_member(pPlayer, m_modelIndexPlayer, g_iCTModelIndex[iArrayIndex]) #endif SetHookChainArg(3, ATYPE_STRING, g_eModelsData[iArrayIndex][szCTModel]) } default: return HC_CONTINUE } return HC_CONTINUE } get_user_model_by_flag(const iUserFlags) { const INVALID_INDEX = -1 if(iUserFlags & (1<<29)) { return INVALID_INDEX } for(new i = 0; i < sizeof(g_eModelsData)-1; i++) { if(iUserFlags & g_eModelsData[i][iFlag] || g_eModelsData[i][iFlag] == ADMIN_ALL) return i } return INVALID_INDEX // non admin player } precache_player_model(const szModel[]) { new szFileToPrecache[MAX_MODEL_PATH_LEN], szErrMsg[MAX_MODEL_PATH_LEN + 64] formatex(szFileToPrecache, charsmax(szFileToPrecache), "models/player/%s/%s.mdl", szModel, szModel) if(!file_exists(szFileToPrecache)) { formatex(szErrMsg, charsmax(szErrMsg), "[Admin Models] ERROR: Model ^"%s^" not found!", szFileToPrecache) set_fail_state(szErrMsg) return 0 } return precache_model(szFileToPrecache) }
Encontrar Diferença