Skocz do zawartości

  • Zaloguj korzystając z Facebooka Zaloguj korzystając z Twittera Zaloguj przez Steam Zaloguj poprzez Google      Logowanie »   
  • Rejestracja

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.

  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

VIP Model


  • Zamknięty Temat jest zamknięty
10 odpowiedzi w tym temacie

#1 gajer

    Początkujący

  • Użytkownik

Reputacja: 0
zer0.

  • Postów:10
Offline

Napisano 02.01.2009 12:49

Witam potrzebuje plugin który podmieni modele gracza ViPa Osoba z flaga H albo inna flaga już wiele próbowałem ale żaden plugin nie chce działać ściąga modele ale nie chce ich pokazywać na serwerze.


Mozę cosik tu źle zrobiłem??
#include <amxmodx> 
#include <amxmisc> 
#include <cstrike> 

public plugin_init() { 
        register_plugin("AMX Admin Model", "1.1.1", "whitemike") 
        register_event("ResetHUD", "resetModel", "b") 
        return PLUGIN_CONTINUE 
} 

public plugin_precache() { 
        precache_model("models/player/vip_ct.mdl") 
        precache_model("models/player/vip_tt.mdl") 

        return PLUGIN_CONTINUE 
} 

public resetModel(id, level, cid) { 
        if (get_user_flags(id) & ADMIN_KICK) { 
                new CsTeams:userTeam = cs_get_user_team(id) 
                if (userTeam == CS_TEAM_T) { 
                        cs_set_user_model(id, "vip_tt") 
                } 
                else if(userTeam == CS_TEAM_CT) { 
                        cs_set_user_model(id, "vip_ct") 
                } 
                else { 
                        cs_reset_user_model(id) 
                } 
        } 

        return PLUGIN_CONTINUE 
}

  • +
  • -
  • 0

#2 FakeNick

    Zaawansowany

  • Użytkownik

Reputacja: 52
Pomocny

  • Postów:115
  • GG:
  • Lokalizacja:Słupca
Offline

Napisano 02.01.2009 14:23

Trzymaj :


#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

new const model_vip[][] = { "vipek" }

const Float:MODEL_DELAY = 0.2

new g_has_custom_model[33],g_player_model[33][32] ,Float:g_models_counter 

new pcvar_on

enum(+=100)
{
	TASK_MODEL = 100
}

new const VERSION[] = "1.0"

public plugin_init()
{
	register_plugin("VIP Model", VERSION, "FakeNick")

	pcvar_on = register_cvar("vip_on","1")

	if(!get_pcvar_num(pcvar_on))
		return
	
	RegisterHam(Ham_Spawn,"player","fw_PlayerSpawn",1)
	
	register_forward(FM_SetClientKeyValue, "fw_SetClientKeyValue")
	register_forward(FM_ClientUserInfoChanged, "fw_ClientUserInfoChanged")
	
	register_logevent("event_round_end", 2, "1=Round_End")
}
public plugin_precache()
{
	new i,modelpath[100]
	
	for(i = 0;i < sizeof model_vip; i++)
	{
		formatex(modelpath, sizeof modelpath - 1, "models/player/%s/%s.mdl", model_vip[i], model_vip[i])
		engfunc(EngFunc_PrecacheModel,modelpath)
	}
}
public event_round_end()
{
	g_models_counter = 0.0
}
public fw_PlayerSpawn(id)
{
	if(!is_user_alive(id))
		return
	
	if(get_user_flags(id) & ADMIN_KICK)
	{
		remove_task(id + TASK_MODEL)
		
		copy(g_player_model[id], sizeof g_player_model[] - 1, model_vip[random_num(0, sizeof model_vip -1)])
		
		new currentmodel[32]
		fm_get_user_model(id, currentmodel, sizeof currentmodel - 1)
		
		if (!equal(currentmodel, g_player_model[id]))
		{
			set_task(1.0 + g_models_counter, "task_set_model", id + TASK_MODEL)
			
			g_models_counter += MODEL_DELAY
		}
	}
}
public fw_SetClientKeyValue(id, const infobuffer[], const key[])
{   
	if (g_has_custom_model[id] && equal(key, "model"))
		return FMRES_SUPERCEDE
	
	return FMRES_IGNORED
}

public fw_ClientUserInfoChanged(id)
{
	if (!g_has_custom_model[id])
		return FMRES_IGNORED
	
	static currentmodel[32]
	fm_get_user_model(id, currentmodel, sizeof currentmodel - 1)
	
	if (!equal(currentmodel, g_player_model[id]))
		fm_set_user_model(id, g_player_model[id])
	
	return FMRES_IGNORED
}
public task_set_model(id)
{
	id -= TASK_MODEL
	
	fm_set_user_model(id, g_player_model[id])
}
stock fm_set_user_model(player, const modelname[])
{
	engfunc(EngFunc_SetClientKeyValue, player, engfunc(EngFunc_GetInfoKeyBuffer, player), "model", modelname)
	
	g_has_custom_model[player] = true
}
stock fm_get_user_model(player, model[], len)
{
	engfunc(EngFunc_InfoKeyValue, engfunc(EngFunc_GetInfoKeyBuffer, player), "model", model, len)
}
stock fm_reset_user_model(player)
{
	g_has_custom_model[player] = false
	
	dllfunc(DLLFunc_ClientUserInfoChanged, player, engfunc(EngFunc_GetInfoKeyBuffer, player))
}

Model musisz wkleić do models/player/vipek i musisz go nazwać vipek.mdl. Modele są wybierane losowo, więc możesz dodać ich więcej tutaj, w ten sposób :
new const model_vip[][] = { "vipek","inny_model" }

Wtedy nazwa modelu i folderu, w którym się znajduje musi być "inny_model".
  • +
  • -
  • 0

#3 grankee

    Godlike

  • Support Team

Reputacja: 507
Wszechwiedzący

  • Postów:1500
  • Lokalizacja:Radom
Offline

Napisano 02.01.2009 15:43

a engine jeszcze się nie przydało?

#include <amxmodx>
#include <amxmisc>
#include <cstrike>

public plugin_init() {
        register_plugin("AMX Admin Model", "1.1.1", "whitemike")
        register_event("ResetHUD", "resetModel", "b")
        return PLUGIN_CONTINUE
}

public plugin_precache() {
        precache_model("models/player/vip_ct/vip_ct.mdl")
        precache_model("models/player/vip_tt/vip_tt.mdl")

        return PLUGIN_CONTINUE
}

public resetModel(id, level, cid) {
        if (get_user_flags(id) & ADMIN_CFG) {
                new CsTeams:userTeam = cs_get_user_team(id)
                if (userTeam == CS_TEAM_T) {
                        cs_set_user_model(id, "vip_tt")
                }
                else if(userTeam == CS_TEAM_CT) {
                        cs_set_user_model(id, "vip_ct")
                }
                else {
                        cs_reset_user_model(id)
                }
        }

        return PLUGIN_CONTINUE
}

  • +
  • -
  • 0

#4 gajer

    Początkujący

  • Autor tematu
  • Użytkownik

Reputacja: 0
zer0.

  • Postów:10
Offline

Napisano 02.01.2009 16:30

jestem na iphnoie i nie moglemsprawdzic tego pierwszego pluginu ale wydaje mi sie ze on nie posiada podzialu co do modeli na ct i terro ja chce tylko zeby byly dwa modele jeden ct i drugi tt i zeby osoby z flaga H mogly je miec a w tym drugim oprócz ze modele sa w folderze to roznicy nie widze a folderze tez byly i nic to nie dalo pozdrawiam ;)
  • +
  • -
  • 0

#5 grankee

    Godlike

  • Support Team

Reputacja: 507
Wszechwiedzący

  • Postów:1500
  • Lokalizacja:Radom
Offline

Napisano 02.01.2009 17:11

I to jest właśnie ta zasadnicza różnica, jest jeszcze ta, że flagą dostępu nie jest flaga c tylko h.

Przychodzi mi jeszcze jedno do głowy, dlaczego możesz myśleć, że nie działa-cl_minmodels masz ustawione na 0, zmień na 1 (albo odwrotnie) i będzie ok.
  • +
  • -
  • 0

#6 FakeNick

    Zaawansowany

  • Użytkownik

Reputacja: 52
Pomocny

  • Postów:115
  • GG:
  • Lokalizacja:Słupca
Offline

Napisano 02.01.2009 17:51

Tutaj kod z rozróżnianiem na team'y. Dałem także dostęp (według życzenia) do modeli na flagę "H", czyli ADMIN_CFG.


#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

new const model_vip_t[][] = { "vip_t" }
new const model_vip_ct[][] = { "vip_ct" }

const Float:MODEL_DELAY = 0.2

new g_has_custom_model[33],g_player_model[33][32] ,Float:g_models_counter 

new pcvar_on

enum(+=100)
{
	TASK_MODEL = 100
}

new const VERSION[] = "1.0"

public plugin_init()
{
	register_plugin("VIP Model", VERSION, "FakeNick")

	pcvar_on = register_cvar("vip_on","1")

	if(!get_pcvar_num(pcvar_on))
		return
	
	RegisterHam(Ham_Spawn,"player","fw_PlayerSpawn",1)
	
	register_forward(FM_SetClientKeyValue, "fw_SetClientKeyValue")
	register_forward(FM_ClientUserInfoChanged, "fw_ClientUserInfoChanged")
	
	register_logevent("event_round_end", 2, "1=Round_End")
}
public plugin_precache()
{
	new i,modelpath[100]
	
	for(i = 0;i < sizeof model_vip_t; i++)
	{
		formatex(modelpath, sizeof modelpath - 1, "models/player/%s/%s.mdl", model_vip_t[i], model_vip_t[i])
		engfunc(EngFunc_PrecacheModel,modelpath)
	}
	for(i = 0; i < sizeof model_vip_ct; i++)
	{
		formatex(modelpath,sizeof modelpath - 1, "models/player/%s/%s.mdl",model_vip_ct[i],model_vip_ct[i])
		engfunc(EngFunc_PrecacheModel,modelpath)
	}
}
public event_round_end()
{
	g_models_counter = 0.0
}
public fw_PlayerSpawn(id)
{
	if(!is_user_alive(id))
		return
	
	if(get_user_flags(id) & ADMIN_CFG)
	{
		remove_task(id + TASK_MODEL)
		
		if(get_user_team(id) == 1)
		{
			copy(g_player_model[id], sizeof g_player_model[] - 1, model_vip_t[random_num(0, sizeof model_vip_t -1)])
			
		}else if(get_user_team(id) == 2)
		{
			copy(g_player_model[id], sizeof g_player_model[] - 1, model_vip_ct[random_num(0, sizeof model_vip_ct -1)])
		}
		
		new currentmodel[32]
		fm_get_user_model(id, currentmodel, sizeof currentmodel - 1)
		
		if (!equal(currentmodel, g_player_model[id]))
		{
			set_task(1.0 + g_models_counter, "task_set_model", id + TASK_MODEL)
			
			g_models_counter += MODEL_DELAY
		}
	}
}
public fw_SetClientKeyValue(id, const infobuffer[], const key[])
{   
	if (g_has_custom_model[id] && equal(key, "model"))
		return FMRES_SUPERCEDE
	
	return FMRES_IGNORED
}

public fw_ClientUserInfoChanged(id)
{
	if (!g_has_custom_model[id])
		return FMRES_IGNORED
	
	static currentmodel[32]
	fm_get_user_model(id, currentmodel, sizeof currentmodel - 1)
	
	if (!equal(currentmodel, g_player_model[id]))
		fm_set_user_model(id, g_player_model[id])
	
	return FMRES_IGNORED
}
public task_set_model(id)
{
	id -= TASK_MODEL
	
	fm_set_user_model(id, g_player_model[id])
}
stock fm_set_user_model(player, const modelname[])
{
	engfunc(EngFunc_SetClientKeyValue, player, engfunc(EngFunc_GetInfoKeyBuffer, player), "model", modelname)
	
	g_has_custom_model[player] = true
}
stock fm_get_user_model(player, model[], len)
{
	engfunc(EngFunc_InfoKeyValue, engfunc(EngFunc_GetInfoKeyBuffer, player), "model", model, len)
}
stock fm_reset_user_model(player)
{
	g_has_custom_model[player] = false
	
	dllfunc(DLLFunc_ClientUserInfoChanged, player, engfunc(EngFunc_GetInfoKeyBuffer, player))
}

Modele dla CT nazwij vip_ct.mdl i umieść go w models/player/vip_ct a model dla T nazwij vip_t.mdl i umieść go w models/player/vip_t.
  • +
  • -
  • 0

#7 gajer

    Początkujący

  • Autor tematu
  • Użytkownik

Reputacja: 0
zer0.

  • Postów:10
Offline

Napisano 02.01.2009 20:25

L 01/02/2009 - 18:17:19: [AMXX] Run time error 10 (plugin "VIPmodel.amxx") (native "cs_get_user_team") - debug not enabled!
L 01/02/2009 - 18:17:19: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
  • +
  • -
  • 0

#8 FakeNick

    Zaawansowany

  • Użytkownik

Reputacja: 52
Pomocny

  • Postów:115
  • GG:
  • Lokalizacja:Słupca
Offline

Napisano 02.01.2009 20:50

Którego ty pluginu używasz? ;>
  • +
  • -
  • 0

#9 gajer

    Początkujący

  • Autor tematu
  • Użytkownik

Reputacja: 0
zer0.

  • Postów:10
Offline

Napisano 02.01.2009 20:54

Tego twojego z podziałem na teamy :)
Tutaj kod z rozróżnianiem na team'y. Dałem także dostęp (według życzenia) do modeli na flagę "H", czyli ADMIN_CFG


a ten plugin kolegi u góry tez nie działa :) a tej komendy niema w ogóle w amxx.cfg ani sewer.cfg
  • +
  • -
  • 0

#10 FakeNick

    Zaawansowany

  • Użytkownik

Reputacja: 52
Pomocny

  • Postów:115
  • GG:
  • Lokalizacja:Słupca
Offline

Napisano 02.01.2009 20:57

Tylko, że tam nie ma wywołania funkcji cs_get_user_team ;F. Sprawdź jeszcze raz, czy to na pewno ten kod :].
  • +
  • -
  • 0

#11 gajer

    Początkujący

  • Autor tematu
  • Użytkownik

Reputacja: 0
zer0.

  • Postów:10
Offline

Napisano 02.01.2009 22:25

Działa Wielkie Dziękuję !! Jesteś Cudo twórcą xD. Temat do zamknięcia:)
  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych