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.
|
Jak zrobić NPC?
#1
Napisano 17.05.2011 19:58
jak zrobić npc na forum?
czyli podejde do czegoś i pokazuje sie menu i wybieram sobie cos
taki ludzik na respie
#2
Napisano 17.05.2011 20:17
#3
Napisano 18.05.2011 12:54
Jak możesz to zajrzyj na PW tego ExpModa.
@@EDIT
Patrz diablix od razu mam dotknięcie
public npc_think(id) {
// Put your think stuff here.
entity_set_float(id,EV_FL_nextthink,halflife_time() + 0.01)
}
dodam np. menu(id); i otwiera menu ale duzo roboty
Użytkownik Optymalny193 edytował ten post 18.05.2011 13:19
#4
Napisano 18.05.2011 13:56
jeśli masz fejsa i chcesz mi pomóc to wejdź tutaj: Zaproś kumpla by lubił nasz sklep | Facebook
na pewno jakoś C się odwdzięczę!
#5
Napisano 18.05.2011 14:16
Dzięki jak bym czegoś nie umial będe pisal PW.
Jak możesz to zajrzyj na PW tego ExpModa.
@@EDIT
Patrz diablix od razu mam dotknięcie
public npc_think(id) {
// Put your think stuff here.
entity_set_float(id,EV_FL_nextthink,halflife_time() + 0.01)
}
dodam np. menu(id); i otwiera menu ale duzo roboty
To jest think zarejestrowany na byt (klasa npc).
W tym raczej nie wykryjesz człowieka (chyba że wcześniej wspomnianym find_ent_insphere)
Najlepsza metoda to touch (i najoptymalniejsza)
#6
Napisano 18.05.2011 14:50
menu = false;
@UP
I jak dać dokladny kod na pobranie czy to czlowiek bo tutkow nie ma
#7
Napisano 18.05.2011 16:48
jeśli masz fejsa i chcesz mi pomóc to wejdź tutaj: Zaproś kumpla by lubił nasz sklep | Facebook
na pewno jakoś C się odwdzięczę!
#8
Napisano 18.05.2011 19:16
public npc_think(id, ent) {
// Put your think stuff here.
entity_set_float(id,EV_FL_nextthink,halflife_time() + 0.01)
if(JestObokBytu(id, ent, "npc_resp", 45.0)){
//gracz jest obok bytu (w zasiegu 45 unitow)
}
}
I tak
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;
}
I kod sie nie kompiluje
by diablix.
#9
Napisano 18.05.2011 19:34
Mam tak:
public npc_think(id, ent) {
// Put your think stuff here.
entity_set_float(id,EV_FL_nextthink,halflife_time() + 0.01)
if(JestObokBytu(id, ent, "npc_resp", 45.0)){
//gracz jest obok bytu (w zasiegu 45 unitow)
}
}
I tak
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;
}
I kod sie nie kompiluje
by diablix.
Stock mój ale think nie
Musisz walnąć pętle w tym thinku bo on przyjmuje tylko jeden parametr (ent)
#10
Napisano 18.05.2011 21:04
public npc_think(id, ent) {
new iPlayers[32], iNum;
get_players(iPlayers, iNum);
for(new g = 0; g<iNum ;g++){
new id = iPlayers[g];
// Put your think stuff here.
entity_set_float(id,EV_FL_nextthink,halflife_time() + 0.01)
if(JestObokBytu(id, ent, "npc_resp", 45.0)){
//gracz jest obok bytu (w zasiegu 45 unitow)
}
}
}
Tylko w tym blad:
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, vOrigin, fDistance))){
if((1 <= id <= get_maxplayers() && is_user_alive(id)){
return true;
}
}
}
return false;
}
Bledy:
Error: Undefined symbol "vOrigin" on line 299
Error: Invalid expression, assumed zero on line 300
Warning: Symbol is never used: "fDistance" on line 306
#11
Napisano 19.05.2011 06:51
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);
new Float:vOrigin[3]
pev(id,pev_origin,vOrigin)
if((find_ent_in_sphere(id, vOrigin, fDistance))){
if(is_user_alive(id)){
return true;
}
}
}
return false;
}
💸 SellYourSkins.com - Łatwo sprzedaj swoje skiny do CS:GO
💸⇄🃏 Automatyczny Bot Levelowania Steam - LVLUPSteam.com
🛒Coinsy CSGOPolygon Za SMS, PSC, Przelew - CoinSell.pro
Twój Sklep CS2 - CSGOPAKA
Coinsy do CSGOPolygon, CSGO500, CSGOEmpire - CSGOLombard.com
💸 Graj w CS2 / CS 1.6 i zarabiaj - BoostProject.pro
CS2 Gambling Sites and Free Betting Codes - DreamCodes.gg
Otwieraj skrzynki i wygrywaj najlepsze skiny CS2 na SkinsProject.gg
🤑 Accept CS2 skins for online payments and donations - SkinsMoney
Płatności SMS Premium Rate oraz Direct Biling - SimPay.pl
Szukasz noclegu? Kwatery, noclegi, tanie noclegi, wakacje oferty, wczasy nad jeziorem - RuszajWPolske.pl
#12
Napisano 19.05.2011 14:32
Mam taki kod na npc:
public onna(id) {
new Float:origin[3]
entity_get_vector(id,EV_VEC_origin,origin)
new ent = create_entity("info_target")
new npc = create_entity("info_target")
//give_weapon(ent)
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_resp");
entity_set_int(npc, EV_INT_solid, SOLID_BBOX);
entity_set_model(ent,"models/npc.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, ent) {
new iPlayers[32], iNum;
get_players(iPlayers, iNum);
for(new g = 0; g<iNum ;g++){
new id = iPlayers[g];
// Put your think stuff here.
entity_set_float(id,EV_FL_nextthink,halflife_time() + 0.01)
if(JestObokBytu(id, ent, "npc_resp", 45.0)){
//gracz jest obok bytu (w zasiegu 45 unitow)
menu(id);
}
}
}
Czy wszystko jest dobrze?
#13
Napisano 19.05.2011 15:51
jeśli masz fejsa i chcesz mi pomóc to wejdź tutaj: Zaproś kumpla by lubił nasz sklep | Facebook
na pewno jakoś C się odwdzięczę!
#14
Napisano 19.05.2011 17:46
#15
Napisano 19.05.2011 18:13
szczerze to nie wiem po co ta pętla for(new g = 0; g<iNum ;g++){ i ogólnie to możesz ogarnąć sobie serwer testowy lub new game bo to jest bez sensu pisanie czy to wszystko/czy to działa, bo chyba ty to masz sprawdzać czy to działa, my tylko doradzamy.
Petla wymagana zeby na graczu uzyc.. sam think przyjmuje tylko jeden parametr (dany byt)
#16
Napisano 20.05.2011 09:23
Wklejka 130175529314842 - AMXX.pl: Support AMX Mod X
Jak pobrać ID atakującego naszego NPC?
I jeszcze jak zapisać miejsce [pozycję] tego NPC, żeby pojawiał się powiedzmy co minute.
Użytkownik Whisper edytował ten post 20.05.2011 09:24
#17
Napisano 20.05.2011 12:17
==
jeśli masz fejsa i chcesz mi pomóc to wejdź tutaj: Zaproś kumpla by lubił nasz sklep | Facebook
na pewno jakoś C się odwdzięczę!
#18
Napisano 20.05.2011 12:52
to jak think przyjmuje 1 parametr to po co public npc_think(id, ent) ? nie ogarniam was ;d
==
A o to to już pytaj autora tematu
#19
Napisano 20.05.2011 12:58
new attacker = read_data( 1 );
#20
Napisano 20.05.2011 13:22
co do pierwszego Whisper to to:
new attacker = read_data( 1 );
Nie trzeba nic nowego tworzyć skoro już jest parametr attacker w Ham_TakeDamage
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych