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

NPC na mapie


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

#1 ASu

    Profesjonalista

  • Użytkownik

Reputacja: 129
Zaawansowany

  • Postów:159
  • Imię:Alan
Offline

Napisano 26.01.2012 16:50

Witam.

Potrzebuje kodu w którym npc stoi i gdy ktoś podejdzie do niego i kliknie E

Otworzy się menu w którym możemy kupić bronie.

#include <amxmodx>
#include <engine>

public plugin_init()
{     
    register_clcmd("npc_gunshop", "spawn_gunshop")     
    register_think("npc_gunshop","npc_think");
}
public plugin_precache() {     
    precache_model("models/zs/zbomber.mdl")     
}

public spawn_gunshop(id)
{     
    new Float:origin[3]     
    entity_get_vector(id,EV_VEC_origin,origin)     
    new ent = create_entity("info_target")		  
    entity_set_origin(ent,origin);     
    origin[2] += 300.0     
    entity_set_origin(id,origin)     
    entity_set_float(ent,EV_FL_takedamage,1.0)     
    entity_set_float(ent,EV_FL_health,100.0)     
    entity_set_string(ent,EV_SZ_classname,"npc_gunshop");     
    entity_set_model(ent,"models/zs/zbomber.mdl");    
    entity_set_int(ent,EV_INT_solid, 2)     
    entity_set_byte(ent,EV_BYTE_controller1,125);     
    entity_set_byte(ent,EV_BYTE_controller2,125);     
    entity_set_byte(ent,EV_BYTE_controller3,125);     
    entity_set_byte(ent,EV_BYTE_controller4,125);     
    new Float:maxs[3] = {16.0,16.0,36.0}     
    new Float:mins[3] = {-16.0,-16.0,-36.0}     
    entity_set_size(ent,mins,maxs)     
    entity_set_float(ent,EV_FL_animtime,2.0)     
    entity_set_float(ent,EV_FL_framerate,1.0)     
    entity_set_int(ent,EV_INT_sequence,0);     
    entity_set_float(ent,EV_FL_nextthink,halflife_time() + 0.01)     
    drop_to_floor(ent)     
    return 1;
}
 
public npc_think(id)
{
    entity_set_float(id,EV_FL_nextthink,halflife_time() + 0.01)
}


Menu broni zrobię se sam wy tylko dodajcie mi by się otwierało.

Użytkownik Drako edytował ten post 26.01.2012 17:48

  • +
  • -
  • 0

#2 grzesiu131

    Profesjonalista

  • Użytkownik

Reputacja: 87
Zaawansowany

  • Postów:180
  • Lokalizacja:Warszawa
Offline

Napisano 26.01.2012 18:00

stock bool:JestObokBytu(id, ent, const gszEntClassname[], Float:fDistance){
new szClassname[64];
pev(ent, pev_classname, szClassname, sizeof szClassname - 1);

if(equal(szClassname, gszEntClassname)){
new Float:fOrigin[3];
entity_get_vector(ent, EV_VEC_origin, fOrigin);

if(find_ent_in_sphere(id, fOrigin, fDistance)){
if((1 <= id <= get_maxplayers() && is_user_alive(id)){
return true;
}
}
}
return false;
}


Przykładowe użycie
if(JestObokBytu(id, ent, "klasa_bytu", 45.0)){
//gracz jest obok bytu (w zasiegu 45 unitow)
}


Jest to post Diablixa


Może ci pomoże do określenia odległości, potem wystarczy wywołać funkcje menu..
  • +
  • -
  • 1

#3 ASu

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 129
Zaawansowany

  • Postów:159
  • Imię:Alan
Offline

Napisano 26.01.2012 20:04

Możesz dać link do tego tematu?

mam taki kod
#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <cstrike>

public plugin_init()
{	
	register_clcmd("npc_gunshop", "spawn_gunshop")	 ;
}
public plugin_precache() {	
	precache_model("models/hostage.mdl")	
}

public spawn_gunshop(id)
{	
	new Float:origin[3]	
	entity_get_vector(id,EV_VEC_origin,origin)	
	new ent = create_entity("info_target")		
	entity_set_origin(ent,origin);	
	origin[2] += 300.0	
	entity_set_origin(id,origin)	
	entity_set_float(ent,EV_FL_takedamage,1.0)	
	entity_set_float(ent,EV_FL_health,100.0)	
	entity_set_string(ent,EV_SZ_classname,"npc_gunshop");	
	entity_set_model(ent,"models/hostage.mdl");  
	entity_set_int(ent,EV_INT_solid, 2)	
	entity_set_byte(ent,EV_BYTE_controller1,125);	
	entity_set_byte(ent,EV_BYTE_controller2,125);	
	entity_set_byte(ent,EV_BYTE_controller3,125);	
	entity_set_byte(ent,EV_BYTE_controller4,125);	
	new Float:maxs[3] = {16.0,16.0,36.0}	
	new Float:mins[3] = {-16.0,-16.0,-36.0}	
	entity_set_size(ent,mins,maxs)	
	entity_set_float(ent,EV_FL_animtime,2.0)	
	entity_set_float(ent,EV_FL_framerate,1.0)	
	entity_set_int(ent,EV_INT_sequence,2);	
	entity_set_float(ent,EV_FL_nextthink,halflife_time() + 0.01)	
	drop_to_floor(ent)	
	return 1;
}

/*public MenuBroni(id)
{
	client_print(id, print_chat, "Test");
}*/

I jak zrobić by jak ktoś podejdzie do niego i kliknie E wyświetli opcje MenuBroni(id)

Próbpowałem z kodem wyżej ale nie daje rady.

Za pomoc nakarmie

Użytkownik Drako edytował ten post 26.01.2012 20:13

  • +
  • -
  • 0

#4 Onyke

    Godlike

  • Przyjaciel

Reputacja: 708
Guru

  • Postów:2 178
Offline

Napisano 26.01.2012 20:13

Możesz dać link do tego tematu?

http://amxx.pl/topic...jak-zrobic-npc/
  • +
  • -
  • 1

#5 ASu

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 129
Zaawansowany

  • Postów:159
  • Imię:Alan
Offline

Napisano 26.01.2012 21:17

Kurde no nie dam rady pomóż ktoś.

Pomoże ktoś?

Użytkownik Drako edytował ten post 26.01.2012 22:25

  • +
  • -
  • 0

#6 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 983
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 27.01.2012 01:23

http://forums.allied...ead.php?t=11756
http://forums.allied...ad.php?t=145716
  • +
  • -
  • 0

#7 ASu

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 129
Zaawansowany

  • Postów:159
  • Imię:Alan
Offline

Napisano 27.01.2012 11:11

korzystałem z tego już dawno i dalej nic z tego nie wiem.
  • +
  • -
  • 0




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

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