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

Problem - nemesis zombie mod


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

#1 ExTaza?!

    Wszechobecny

  • Użytkownik

Reputacja: 104
Zaawansowany

  • Postów:424
  • GG:
  • Imię:Piotr
  • Lokalizacja:Leszno
Offline

Napisano 03.09.2011 15:29

Otóż napisalem plugin z pomocą kilku kumpli. No ale nie jest on do końca dobry i taki jaki powinien być. Otóż jest to wyciagniecie Nemesisa z ZombieModa :) Czyli jest losowanie co ileś rund gracza który nim zostanie. Ale są problemy.

1. Nie dziala dzwiek gdy zostanie wylosowany gracz tak samo HUD z info kto nim jest.
2. Cvary ustawione ale nie dziala HP
3. Nie wyrzuca mu broni jaka posiada
4. Nie przerzuca plynnie Nemka do TT a reszty do CT.
5. Gdy jest dwoch graczy zdarza się:
a) Dwoje graczy ma taki sam model
B) Dwoje graczy ma 1/1 z kosy
c) jeden ma wiecej HP od drugiego (o 100) (pkt 2 by to rozwiazal)

Jeżeli ktoś chetny jest mi pomóc to bardzo dziękuje. Chcę wiecej się uczyć w pisaniu pluginów a wasza pomoc by mi troszkę , a nawet znacznie pomogła. Z pluginem tym wiążę dalsze cele :) Jakie? Proszę pisać zainresowanych na PW gdyż potrzebna by mi byla do tego też jakaś pomoc ;]

.sma w załaczniku

@refresh

Załączone pliki


  • +
  • -
  • 1

http://www.Cs-Kurnik.pl - Zapraszam!

 

b_350_20_FFAD41_E98100_000000_591F11.png IP: awp.cs-kurnik.pl:27017 / 155.133.43.190:27017

 

b_350_20_FFAD41_E98100_000000_591F11.png IP: ts3.cs-kurnik.pl - Darmowe kanały                     


#2 grs4

    Profesjonalista

  • Zbanowany

Reputacja: -1
Mniej niż zer0.

  • Postów:167
  • Lokalizacja:Wojkowice
Offline

Napisano 03.09.2011 16:58

na razie problem 1

w plugin precahche jest dzwiek ale nie dales funkcji ktora by go uzyla, czyli w odpowiednim miejscu muszisz dac
losowanie muzyk czyli musisz dodac

przed plugin_init naprzyklad

new muzyka

potem losowanie

muzyka = random_num(0, 1)

a potem

switch(muzyka)


============

heh [powiem ci ze przenosi graczy i wszystkim daje model TT tylko 1 graczowi daje nemesis i TT moze zabijac CT cho maja inny model, jeszcze zauwazylem ze jak naciskam TAB zeby poakazac statystyki to TT jest u siebie przed wylsoowaniem i CT

Załączone pliki


Użytkownik grs4 edytował ten post 03.09.2011 17:35


#3 ExTaza?!

    Wszechobecny

  • Autor tematu
  • Użytkownik

Reputacja: 104
Zaawansowany

  • Postów:424
  • GG:
  • Imię:Piotr
  • Lokalizacja:Leszno
Offline

Napisano 03.09.2011 17:57

dzięki chociaż za to :)
  • +
  • -
  • 1

http://www.Cs-Kurnik.pl - Zapraszam!

 

b_350_20_FFAD41_E98100_000000_591F11.png IP: awp.cs-kurnik.pl:27017 / 155.133.43.190:27017

 

b_350_20_FFAD41_E98100_000000_591F11.png IP: ts3.cs-kurnik.pl - Darmowe kanały                     


#4 grs4

    Profesjonalista

  • Zbanowany

Reputacja: -1
Mniej niż zer0.

  • Postów:167
  • Lokalizacja:Wojkowice
Offline

Napisano 03.09.2011 17:59

zrpbilem ze pokazuje kto jest


#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <cstrike>
#define PLUGIN "Plugin"
#define VERSION "1.0"
#define AUTHOR "Author"
#define PEV_PDATA_SAFE 2
#define OFFSET_TEAM 114
#define OFFSET_DEFUSE_PLANT 193
#define HAS_DEFUSE_KIT (1<<16)
#define OFFSET_INTERNALMODEL 126
#define NEMESIS_MODEL "Nemek"
// Cvar Pointers
new gCvarNemesisRounds, gCvarNemesisHealth, gCvarNemesisGravity, gCvarNemesisSpeed;
//Nick nemesisa
new nazwa[33]
// Variables
new gNemesisIndex = 0; // ID Nemesisa
new gRoundsCounter = 1; // Licznik rund
new gMaxPlayers;
new muzyka
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)

gCvarNemesisRounds = register_cvar("nemesis_runds", "5") ;
gCvarNemesisHealth = register_cvar("nemesis_health", "50000.0");
gCvarNemesisGravity = register_cvar("nemesis_gravity", "100.0");
gCvarNemesisSpeed = register_cvar("nemesis_speed", "400.0");

register_event("HLTV", "Event_NewRound", "a", "1=0", "2=0");
register_event("CurWeapon","Event_CurWeapon","be","1=1")

register_logevent("Logevent_RoundStart", 2, "1=Round_Start")

RegisterHam(Ham_TakeDamage, "player", "fwHamTakeDamage");

gMaxPlayers = get_maxplayers()

}
public plugin_cfg()
{
server_cmd("sv_maxspeed 500");
}
public plugin_precache()
{
new model[128];
format(model,sizeof model,"models/player/%s/%s.mdl",NEMESIS_MODEL,NEMESIS_MODEL)
precache_model(model);
precache_sound("muza_nemesisa/1.wav");
precache_sound("muza_nemesisa/2.wav");
}
public fwHamTakeDamage(victim, idinflictor, attacker, Float:damage, damagebits)
{
// Jezeli gracz to nie nemesis albo jego bron jest inna niz noz przerywa funkcje
if(!is_user_nemesis(attacker) || get_user_weapon(attacker) != CSW_KNIFE)
return;

SetHamParamFloat(4, 250.0)
}
public Event_NewRound()
{
gRoundsCounter++;
}
public Event_CurWeapon(id)
{
if(!is_user_nemesis(id))
return;

set_pev(id,pev_maxspeed,float(get_pcvar_num(gCvarNemesisSpeed)))
}
public Logevent_RoundStart()
{
if(gRoundsCounter % get_pcvar_num(gCvarNemesisRounds) // Jezeli reszta dzielenia liczby rund przez wartosc cvara jest
&& gRoundsCounter ) // inna niz 0 przestanie wykonywac funkcje np. 6/5 reszta z dzielenia
return;

// daje 1 i event sie nie wykona bo to nie jest co 5 runda
//Muzyka
muzyka = random_num(0, 1)

switch(muzyka)
{
case 0:
{
client_cmd(0, "spk muza_nemesisa/1.wav")
}
case 1:
{
client_cmd(0, "spk muza_nemesisa/2.wav")
}
}
//Koniec muzyki

new temp;

// Losuje gracza, jeżeli jest nieżywy/niepolączony robi to az do skutku
do
temp = random_num(1,gMaxPlayers);
while(!is_user_alive(temp));

// Jezeli wylosowany gracz jest w CT przenosi go do TT
if(get_user_team(temp) == 1)
fm_set_user_team(temp,2);

gNemesisIndex = temp;

cs_set_user_model(gNemesisIndex,NEMESIS_MODEL);

get_user_name(0, nazwa, 32)


set_hudmessage(170, 255, 127, 0.30, 0.40, 0, 6.0, 6.0)
show_hudmessage(0, "NEMESISEM JEST %s !!!", nazwa)

set_pev(gNemesisIndex,pev_maxspeed,get_pcvar_float(gCvarNemesisSpeed));
set_pev(gNemesisIndex,pev_gravity,(get_pcvar_float(gCvarNemesisGravity)/800));
set_pev(gNemesisIndex,pev_health,get_pcvar_float(gCvarNemesisHealth));


// Przenosi reszte TT do CT
for(new i=1;i<gMaxPlayers;i++)
{
if(!is_user_alive(i)
|| is_user_nemesis(i)
|| get_user_team(i) == 1)
continue;

fm_set_user_team(i,1);
}
}
// Zwraca true jezeli gracz to nemesis, jezeli nie to false
stock bool:is_user_nemesis(id)
{
if(gNemesisIndex == id)
return true;

return false;
}
stock fm_set_user_team(id, team)
{
if(!(1 <= id <= gMaxPlayers) || pev_valid(id) != PEV_PDATA_SAFE)
{
return 0
}

switch(team)
{
case 1:
{
new iDefuser = get_pdata_int(id, OFFSET_DEFUSE_PLANT)
if(iDefuser & HAS_DEFUSE_KIT)
{
iDefuser -= HAS_DEFUSE_KIT
set_pdata_int(id, OFFSET_DEFUSE_PLANT, iDefuser)
}
set_pdata_int(id, OFFSET_TEAM, 1)
}
case 2:
{
if(pev(id, pev_weapons) & (1<<CSW_C4))
{
engclient_cmd(id, "drop", "weapon_c4")
}
set_pdata_int(id, OFFSET_TEAM, 2)
}
}

dllfunc(DLLFunc_ClientUserInfoChanged, id, engfunc(EngFunc_GetInfoKeyBuffer, id))

return 1
}


#5 ExTaza?!

    Wszechobecny

  • Autor tematu
  • Użytkownik

Reputacja: 104
Zaawansowany

  • Postów:424
  • GG:
  • Imię:Piotr
  • Lokalizacja:Leszno
Offline

Napisano 03.09.2011 18:19

No to mamy już HUD , muzyke :) Teraz coś z cvarami nie tak. Liczynik rund nie dziala , hp, gravitacja , predoksc też. Jeszcze troszke ; / brakuje
  • +
  • -
  • 2

http://www.Cs-Kurnik.pl - Zapraszam!

 

b_350_20_FFAD41_E98100_000000_591F11.png IP: awp.cs-kurnik.pl:27017 / 155.133.43.190:27017

 

b_350_20_FFAD41_E98100_000000_591F11.png IP: ts3.cs-kurnik.pl - Darmowe kanały                     


#6 grs4

    Profesjonalista

  • Zbanowany

Reputacja: -1
Mniej niż zer0.

  • Postów:167
  • Lokalizacja:Wojkowice
Offline

Napisano 03.09.2011 20:27

Licznik rund dziala bo testowałem grawitacja tez ale hp nie

dobra zrobilem ze wyrzuca bronie Nemesisowi

nie sprawdzalem ale powinno tylko nemesisowi wyrzucic bronie

zapamietaj, funkcja

strip_user_weapons(index)

PS: chcialbym sie dolaczyc do projektu


wyrzuca graczowi wszystkie bronie :)

#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <fun>
#include <cstrike>
#define PLUGIN "Plugin"
#define VERSION "1.0"
#define AUTHOR "Author"
#define PEV_PDATA_SAFE 2
#define OFFSET_TEAM 114
#define OFFSET_DEFUSE_PLANT 193
#define HAS_DEFUSE_KIT (1<<16)
#define OFFSET_INTERNALMODEL 126
#define NEMESIS_MODEL "Nemek"
// Cvar Pointers
new gCvarNemesisRounds, gCvarNemesisHealth, gCvarNemesisGravity, gCvarNemesisSpeed;
//Nick nemesisa
new nazwa[33]
// Variables
new gNemesisIndex = 0; // ID Nemesisa
new gRoundsCounter = 1; // Licznik rund
new gMaxPlayers;
new muzyka
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)

gCvarNemesisRounds = register_cvar("nemesis_runds", "5") ;
gCvarNemesisHealth = register_cvar("nemesis_health", "50000.0");
gCvarNemesisGravity = register_cvar("nemesis_gravity", "100.0");
gCvarNemesisSpeed = register_cvar("nemesis_speed", "400.0");

register_event("HLTV", "Event_NewRound", "a", "1=0", "2=0");
register_event("CurWeapon","Event_CurWeapon","be","1=1")

register_logevent("Logevent_RoundStart", 2, "1=Round_Start")

RegisterHam(Ham_TakeDamage, "player", "fwHamTakeDamage");

gMaxPlayers = get_maxplayers()

}
public plugin_cfg()
{
server_cmd("sv_maxspeed 500");
}
public plugin_precache()
{
new model[128];
format(model,sizeof model,"models/player/%s/%s.mdl",NEMESIS_MODEL,NEMESIS_MODEL)
precache_model(model);
precache_sound("muza_nemesisa/1.wav");
precache_sound("muza_nemesisa/2.wav");
}
public fwHamTakeDamage(victim, idinflictor, attacker, Float:damage, damagebits)
{
// Jezeli gracz to nie nemesis albo jego bron jest inna niz noz przerywa funkcje
if(!is_user_nemesis(attacker) || get_user_weapon(attacker) != CSW_KNIFE)
return;

SetHamParamFloat(4, 250.0)
}
public Event_NewRound()
{
gRoundsCounter++;
}
public Event_CurWeapon(id)
{
if(!is_user_nemesis(id))
return;

set_pev(id,pev_maxspeed,float(get_pcvar_num(gCvarNemesisSpeed)))
}
public Logevent_RoundStart()
{

if(gRoundsCounter % get_pcvar_num(gCvarNemesisRounds) // Jezeli reszta dzielenia liczby rund przez wartosc cvara jest
&& gRoundsCounter ) // inna niz 0 przestanie wykonywac funkcje np. 6/5 reszta z dzielenia
return;

// daje 1 i event sie nie wykona bo to nie jest co 5 runda
//Muzyka
muzyka = random_num(0, 1)

switch(muzyka)
{
case 0:
{
client_cmd(0, "spk muza_nemesisa/1.wav")
}
case 1:
{
client_cmd(0, "spk muza_nemesisa/2.wav")
}
}
//Koniec muzyki

new temp;

// Losuje gracza, jeżeli jest nieżywy/niepolączony robi to az do skutku
do
temp = random_num(1,gMaxPlayers);
while(!is_user_alive(temp));

// Jezeli wylosowany gracz jest w CT przenosi go do TT
if(get_user_team(temp) == 1)
fm_set_user_team(temp,2);

gNemesisIndex = temp;

cs_set_user_model(gNemesisIndex,NEMESIS_MODEL);

get_user_name(0, nazwa, 32)
if(is_user_nemesis(0))
{
if(is_user_alive(0))
{
strip_user_weapons(0)
}
}

set_hudmessage(170, 255, 127, 0.30, 0.40, 0, 6.0, 6.0)
show_hudmessage(0, "NEMESISEM JEST %s !!!", nazwa)

set_pev(gNemesisIndex,pev_maxspeed,get_pcvar_float(gCvarNemesisSpeed));
set_pev(gNemesisIndex,pev_gravity,(get_pcvar_float(gCvarNemesisGravity)/800));
set_pev(gNemesisIndex,pev_health,get_pcvar_float(gCvarNemesisHealth));


// Przenosi reszte TT do CT
for(new i=1;i<gMaxPlayers;i++)
{
if(!is_user_alive(i)
|| is_user_nemesis(i)
|| get_user_team(i) == 1)
continue;

fm_set_user_team(i,1);
}
}
// Zwraca true jezeli gracz to nemesis, jezeli nie to false
stock bool:is_user_nemesis(id)
{
if(gNemesisIndex == id)
return true;

return false;
}
stock fm_set_user_team(id, team)
{
if(!(1 <= id <= gMaxPlayers) || pev_valid(id) != PEV_PDATA_SAFE)
{
return 0
}

switch(team)
{
case 1:
{
new iDefuser = get_pdata_int(id, OFFSET_DEFUSE_PLANT)
if(iDefuser & HAS_DEFUSE_KIT)
{
iDefuser -= HAS_DEFUSE_KIT
set_pdata_int(id, OFFSET_DEFUSE_PLANT, iDefuser)
}
set_pdata_int(id, OFFSET_TEAM, 1)
}
case 2:
{
if(pev(id, pev_weapons) & (1<<CSW_C4))
{
engclient_cmd(id, "drop", "weapon_c4")
}
set_pdata_int(id, OFFSET_TEAM, 2)
}
}

dllfunc(DLLFunc_ClientUserInfoChanged, id, engfunc(EngFunc_GetInfoKeyBuffer, id))

return 1
}





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

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