Skocz do zawartości

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
Modyfikacja

Zamiana broni w VIPie

modyfikacja

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
4 odpowiedzi w tym temacie

#1 anon

    Zaawansowany

  • Użytkownik

Reputacja: -1
Nowy

  • Postów:77
Offline

Napisano 22.11.2014 15:20

Witam chciałbym żeby VIPy zamiast noża mieli łom. Model łoma już mam, ścieżka:

models/weapons_szakal/p_lom.mdl

models/weapons_szakal/v_lom.mdl

models/weapons_szakal/w_lom.mdl

#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <fun>
#include <hamsandwich>

#define IsPlayer(%1) (1<=%1<=maxPlayers)

forward amxbans_admin_connect(id);

new bool:g_Vip[33], g_Hudmsg, ioid, maxPlayers, skoki[33];

public plugin_init(){
	register_plugin("VIP Ultimate", "12.3.0.2", "benio101 & speedkill");
	register_forward(FM_CmdStart, "CmdStartPre");
	RegisterHam(Ham_Spawn, "player", "SpawnedEventPre", 1);
	RegisterHam(Ham_TakeDamage, "player", "takeDamage", 0);
	register_event("DeathMsg", "DeathMsg", "a");
	register_message(get_user_msgid("ScoreAttrib"), "VipStatus");
	register_clcmd("say /vip", "ShowMotd");
	register_message(get_user_msgid("SayText"),"handleSayText");
	g_Hudmsg=CreateHudSyncObj();
}
public client_authorized(id){
	if(get_user_flags(id) & 524288 == 524288){
		client_authorized_vip(id);
	}
}
public client_authorized_vip(id){
	g_Vip[id]=true;
	new g_Name[64];
	get_user_name(id,g_Name,charsmax(g_Name));
	set_hudmessage(24, 190, 220, 0.25, 0.2, 0, 6.0, 6.0);
	ShowSyncHudMsg(0, g_Hudmsg, "%s wbija na serwer !",g_Name);
}
public client_disconnect(id){
	if(g_Vip[id]){
		client_disconnect_vip(id);
	}
}
public client_disconnect_vip(id){
	g_Vip[id]=false;
}
public CmdStartPre(id, uc_handle){
	if(g_Vip[id]){
		if(is_user_alive(id)){
			CmdStartPreVip(id, uc_handle);
		}
	}
}
public CmdStartPreVip(id, uc_handle){
	new flags = pev(id, pev_flags);
	if((get_uc(uc_handle, UC_Buttons) & IN_JUMP) && !(flags & FL_ONGROUND) && !(pev(id, pev_oldbuttons) & IN_JUMP) && skoki[id]>0){
		--skoki[id];
		new Float:velocity[3];
		pev(id, pev_velocity,velocity);
		velocity[2] = random_float(265.0,285.0);
		set_pev(id,pev_velocity,velocity);
	} else if(flags & FL_ONGROUND && skoki[id]!=-1){
		skoki[id] = 1;
	}
}
public SpawnedEventPre(id){
	if(g_Vip[id]){
		if(is_user_alive(id)){
			SpawnedEventPreVip(id);
		}
	}
}
public SpawnedEventPreVip(id){
	skoki[id]=1;
	set_user_health(id, get_user_health(id)+50);
	new g_Model[64];
	formatex(g_Model,charsmax(g_Model),"%s",get_user_team(id) == 1 ? "vipustt_szakal" : "vipusct_szakal");
	cs_set_user_model(id,g_Model);
}
public plugin_cfg(){
	maxPlayers=get_maxplayers();
}
public takeDamage(this, idinflictor, idattacker, Float:damage, damagebits){
	if(((IsPlayer(idattacker) && is_user_connected(idattacker) && g_Vip[idattacker] && (ioid=idattacker)) ||
	(ioid=pev(idinflictor, pev_owner) && IsPlayer(ioid) && is_user_connected(ioid) && g_Vip[ioid]))){
		damage*=(100+10)/100;
	}
}
public DeathMsg(){
	new killer=read_data(1);
	new victim=read_data(2);
	
	if(is_user_alive(killer) && g_Vip[killer] && get_user_team(killer) != get_user_team(victim)){
		DeathMsgVip(killer,victim,read_data(3));
	}
}
public DeathMsgVip(kid,vid,hs){
	cs_set_user_money(kid, cs_get_user_money(kid)+(hs?900:600));
}
public VipStatus(){
	new id=get_msg_arg_int(1);
	if(is_user_alive(id) && g_Vip[id]){
		set_msg_arg_int(2, ARG_BYTE, get_msg_arg_int(2)|4);
	}
}
public ShowMotd(id){
	show_motd(id, "vip.txt", "Informacje o vipie");
}
public handleSayText(msgId,msgDest,msgEnt){
	new id = get_msg_arg_int(1);
	
	if(is_user_connected(id) && g_Vip[id]){
		new szTmp[256],szTmp2[256];
		get_msg_arg_string(2,szTmp, charsmax(szTmp))
		
		new szPrefix[64] = "^x04[VIP]";
		
		if(!equal(szTmp,"#Cstrike_Chat_All")){
			add(szTmp2,charsmax(szTmp2),szPrefix);
			add(szTmp2,charsmax(szTmp2)," ");
			add(szTmp2,charsmax(szTmp2),szTmp);
		}
		else{
			add(szTmp2,charsmax(szTmp2),szPrefix);
			add(szTmp2,charsmax(szTmp2),"^x03 %s1^x01 :  %s2");
		}
		set_msg_arg_string(2,szTmp2);
	}
	return PLUGIN_CONTINUE;
}
public plugin_precache(){
	precache_model("models/player/vipusct_szakal/vipusct_szakal.mdl");
	precache_model("models/player/vipustt_szakal/vipustt_szakal.mdl");
}
public amxbans_admin_connect(id){
	client_authorized(id);
}

  • +
  • -
  • 0

#2 anon

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: -1
Nowy

  • Postów:77
Offline

Napisano 23.11.2014 13:32

Pomóżcie.


  • +
  • -
  • 0

#3 NoLiFeR

    Wszechobecny

  • Użytkownik

Reputacja: 103
Zaawansowany

  • Postów:483
  • GG:
  • Imię:Adrian
  • Lokalizacja:Sosnowiec
Offline

Napisano 01.12.2014 15:46

do plugin_init() dodajesz

	register_event("CurWeapon","CurWeapon","be","1=1") 

gdzieś w kodzie...


public CurWeapon(id)
{
new weapon = read_data(2)
if ( weapon != CSW_KNIFE || !g_Vip[id])
return PLUGIN_HANDLED

entity_set_string(id, EV_SZ_viewmodel, "models/weapons_szakal/v_lom.mdl")
entity_set_string(id, EV_SZ_weaponmodel, "models/weapons_szakal/v_lom.mdl")
}

BTW to nie zmiana broni a modelu

PS CurWeapon można zbugować (4 razy na sek zmienić broń na nóż dość trudne :P) ale podałem tutaj najłatwiejszy dostępny sposób abyś zrozumiał kod


Użytkownik NoLiFeR edytował ten post 01.12.2014 15:50

  • +
  • -
  • 0

#4 anon

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: -1
Nowy

  • Postów:77
Offline

Napisano 16.12.2014 17:35

Przepraszam że dopiero dzisiaj zerkam na ten temat.

Czyli to ma być tak:

#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <fun>
#include <hamsandwich>

#define IsPlayer(%1) (1<=%1<=maxPlayers)

forward amxbans_admin_connect(id);

new bool:g_Vip[33], g_Hudmsg, ioid, maxPlayers, skoki[33];

public plugin_init(){
	register_event("CurWeapon","CurWeapon","be","1=1") 
        register_plugin("VIP Ultimate", "12.3.0.2", "benio101 & speedkill");
	register_forward(FM_CmdStart, "CmdStartPre");
	RegisterHam(Ham_Spawn, "player", "SpawnedEventPre", 1);
	RegisterHam(Ham_TakeDamage, "player", "takeDamage", 0);
	register_event("DeathMsg", "DeathMsg", "a");
	register_message(get_user_msgid("ScoreAttrib"), "VipStatus");
	register_clcmd("say /vip", "ShowMotd");
	register_message(get_user_msgid("SayText"),"handleSayText");
	g_Hudmsg=CreateHudSyncObj();
}
public client_authorized(id){
	if(get_user_flags(id) & 524288 == 524288){
		client_authorized_vip(id);
	}
}
public client_authorized_vip(id){
	g_Vip[id]=true;
	new g_Name[64];
	get_user_name(id,g_Name,charsmax(g_Name));
	set_hudmessage(24, 190, 220, 0.25, 0.2, 0, 6.0, 6.0);
	ShowSyncHudMsg(0, g_Hudmsg, "%s wbija na serwer !",g_Name);
public CurWeapon(id)
{
new weapon = read_data(2)
if ( weapon != CSW_KNIFE || !g_Vip[id])
return PLUGIN_HANDLED

entity_set_string(id, EV_SZ_viewmodel, "models/weapons_szakal/v_lom.mdl")
entity_set_string(id, EV_SZ_weaponmodel, "models/weapons_szakal/v_lom.mdl")
}

A co z tym "v_"? tam w jednym z nich nie powinno być p_?


Użytkownik Szakal331 edytował ten post 16.12.2014 17:35

  • +
  • -
  • 0

#5 Petpat

    Wszechwidzący

  • Użytkownik

Reputacja: 64
Pomocny

  • Postów:246
  • Imię:Łukasz
  • Lokalizacja:Rzeszów
Offline

Napisano 16.12.2014 18:03

Dodałem Ci podmianę modelu z tego tematu http://amxx.pl/topic...e-modeli-broni/, rzecz jasna sposób lepszy oraz dodałem możliwość podmiany modelu w_

Spoiler

  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: modyfikacja

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

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