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

losowy wygląd zombie - zombie plague


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

#1 Plax

    Zaawansowany

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:75
  • Lokalizacja:Złotów
Offline

Napisano 22.01.2009 13:02

Witam,
Wpadłem na pomysł stworzenia nowej klasy zombie - calemelona
Zrobiłem ją na podstawie vampira, abym mógł ustawic mu odpowiednia ilosc HP za zarazenie.
Jest to normalny zombie, tyle, że ma wygląd normalnego człowieka.
Niestety ludzie na moim serwie już go rozpracowali i moje pytanie:
Czy dałoby się ustawić tak, żeby człowiek który wybrał klasę kameleona, po zamienieniu w zombiaka miał losowy wygląd któregoś z rodzajów człowieka?

Tutaj .SMA kameleona:
/*================================================================================
	
	-----------------------------------
	-*- [ZP] Default Zombie Classes -*-
	-----------------------------------
	
	~~~~~~~~~~~~~~~
	- Description -
	~~~~~~~~~~~~~~~
	
	This plugin adds the default zombie classes to Zombie Plague.
	Feel free to modify their attributes to your liking.
	
	Note: If zombie classes are disabled, the first registered class
	will be used for all players (by default, Classic Zombie).
	
================================================================================*/

#include <amxmodx>
#include <fakemeta>
#include <zombieplague>

/*================================================================================
 [Plugin Customization]
=================================================================================*/

// Leech Zombie Attributes
new const zclass5_name[] = { "Kameleon" }
new const zclass5_info[] = { "HP-- Spd- Knock- HumanOutfit+" }
new const zclass5_model[] = { "guerilla" }
new const zclass5_clawmodel[] = { "v_knife.mdl" }
const zclass5_health = 500
const zclass5_speed = 220
const Float:zclass5_gravity = 1.0
const Float:zclass5_knockback = 0.5
const zclass5_infecthp = 200 // extra hp for infections

/*============================================================================*/

// Class IDs
new g_zclass_leech

// Zombie Classes MUST be registered on plugin_precache
public plugin_precache()
{
	register_plugin("[ZP] Default Zombie Classes", "4.06", "MeRcyLeZZ")
	
	// Register all classes
	g_zclass_leech = zp_register_zombie_class(zclass5_name, zclass5_info, zclass5_model, zclass5_clawmodel, zclass5_health, zclass5_speed, zclass5_gravity, zclass5_knockback)
}

// User Infected forward
public zp_user_infected_post(id, infector)
{
	// If attacker is a leech zombie, gets extra hp
	if (zp_get_user_zombie_class(infector) == g_zclass_leech)
		set_pev(infector, pev_health, float(pev(infector, pev_health) + zclass5_infecthp))
}

Linijka z wyglądem: new const zclass5_model[] = { "guerilla" }
Tutaj lista all wyglądów z których miałby być wybierany losowo jeden:
(wszystkie po wpisaniu w miejsce guerilla będą działać)
arctic
gign
gsg9
guerilla
leet
sas
terror
urban
Z góry dziękuje!

Pozdrawiam,
Plax
  • +
  • -
  • 0

#2 Kajtekk

    Pomocny

  • Użytkownik

Reputacja: 1
Nowy

  • Postów:70
Offline

Napisano 22.01.2009 13:05

Tutaj dopisujesz po przecinku :
new const zclass5_model[] = { "guerilla" }

Czyli np :
new const zclass5_model[] = { "guerilla", "arctic", "gign", "sas" }

Konczysz "" bez przecinka na koncu
  • +
  • -
  • 0

#3 Plax

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:75
  • Lokalizacja:Złotów
Offline

Napisano 22.01.2009 13:06

Dzięki, zaraz sprawdze :)


[ Dodano: 22-01-2009, 13:36 ]

Niestety nie działa ;/
Zawsze jest tylko pierwszy wygląd z kolejki ;/

new const zclass5_model[] = { "arctic", "gign", "gsg9", "leet", "sas", "terror", "urban", "guerilla" }

  • +
  • -
  • 0

#4 Miczu

    Godlike

  • Przyjaciel

Reputacja: 657
Wszechmogący

  • Postów:2 862
Offline

Napisano 22.01.2009 16:46

hmm nie wiem czy to zadziala (nie wiem na jakiej zasadzie dziala ten mod) ale sprobuj moze czegos takiego:

new const zclass5_model[] = random_num(0,1)==1?{"arctiv"}:{"sas"}

  • +
  • -
  • 0

#5 darkman

    Wszechwiedzący

  • Przyjaciel

Reputacja: 87
Zaawansowany

  • Postów:553
  • Lokalizacja:inactive
Offline

Napisano 22.01.2009 19:05

spróbuj użyć takiej pętli:
for(new i=0; i < sizeof(zclass5_model); i++)
	{
		zclass5_model[random_num(0, i)];
	}

  • +
  • -
  • 0

#6 Plax

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:75
  • Lokalizacja:Złotów
Offline

Napisano 22.01.2009 19:14

darkman, mógłbyś mi Twoją "pętlę" pokazać razem z resztą .sma i pokazać gdzie wpisać nazwy modeli?

[ Dodano: 22-01-2009, 19:32 ]
Miczu, kiedy zrobiłem tak:
new const zclass5_model[] = random_num(0,1)==1?{"arctic"}:{"sas"}:{ "arctic"}:{"gign"}:{"gsg9"}:{"leet"}:{"sas"}:{"terror"}:{"urban"}:{"guerilla"}
To nie mogłem skompilować .sma do .amxx i wyskoczył mi taki błąd:
sma<30> : error 008: must be a constant expression; assumed zero

  • +
  • -
  • 0

#7 darkman

    Wszechwiedzący

  • Przyjaciel

Reputacja: 87
Zaawansowany

  • Postów:553
  • Lokalizacja:inactive
Offline

Napisano 22.01.2009 19:39

...
  • +
  • -
  • 0

#8 Plax

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:75
  • Lokalizacja:Złotów
Offline

Napisano 22.01.2009 20:00

Hmm teraz plugin ładnie się kompiluje, ale gdy wrzucam go na serwa i zmieniam mape to serwer sie crashuje i w konsoli jest taki oto błąd: player/rctic/tctic.mdl not found, co mnie strasznie dziwi, bo w .sma na 100% wpisane jest arctic a nie rctic (na 100% kompiluje dobry plik)

[ Dodano: 22-01-2009, 20:20 ]
Zmieniłem kolejność i przesunąłem arctica trochę dalej i teraz wyświetla mi, że nie może znalezc player//.mdl

Najbardziej interesuje mnie to wolne pole pomiędzy dwoma //

Mam tu jakąś zbędną przerwe? Bo nie widze ;f
new const zclass5_model[] = { "gign", "arctic", "gsg9", "leet", "sas", "terror", "urban", "guerilla" }

  • +
  • -
  • 0

#9 Miczu

    Godlike

  • Przyjaciel

Reputacja: 657
Wszechmogący

  • Postów:2 862
Offline

Napisano 22.01.2009 20:28

Ja mam takowe pytanie do Kajtekk i darkman:

new const zclass5_name[] = { "Kameleon" } // to jest tablica jednowymiarowa, trzyma ciag znakow

new const zclass5_model[] = { "arctic", "gign", "gsg9", "leet", "sas", "terror", "urban", "guerilla" }

To jest tak samo tablica jednowymiarowa, ale zmuszacie ja do trzymanie wiekszej ilosci elementow (rozdzielane przecinkiem ciagi znakow).

Nie powinno to byc cos w rodzaju:

new const zclass5_model[][] = { "arctic", "gign", "gsg9", "leet", "sas", "terror", "urban", "guerilla" } // tablica 2 wymiarowa ;>

Ale z kolei watpie by mod czytal taka modyfikacje ;-)
  • +
  • -
  • 0

#10 darkman

    Wszechwiedzący

  • Przyjaciel

Reputacja: 87
Zaawansowany

  • Postów:553
  • Lokalizacja:inactive
Offline

Napisano 22.01.2009 20:31

Ja mam takowe pytanie do Kajtekk i darkman:

new const zclass5_name[] = { "Kameleon" } // to jest tablica jednowymiarowa, trzyma ciag znakow

new const zclass5_model[] = { "arctic", "gign", "gsg9", "leet", "sas", "terror", "urban", "guerilla" }

To jest tak samo tablica jednowymiarowa, ale zmuszacie ja do trzymanie wiekszej ilosci elementow (rozdzielane przecinkiem ciagi znakow).

Nie powinno to byc cos w rodzaju:

new const zclass5_model[][] = { "arctic", "gign", "gsg9", "leet", "sas", "terror", "urban", "guerilla" } // tablica 2 wymiarowa ;>

Ale z kolei watpie by mod czytal taka modyfikacje ;-)


wybacz, ale 2 noce nie spałem i myślenie wysiada ^^ poszperaj w modach, ktore dzialaja na takiej zasadzie i sprawdz.
  • +
  • -
  • 0

#11 Miczu

    Godlike

  • Przyjaciel

Reputacja: 657
Wszechmogący

  • Postów:2 862
Offline

Napisano 22.01.2009 20:33

Nie mam czasu, wiem tylko ze jak juz mod robi jakis standard typu tablica 1 wymiarowa to jej raczej nie modyfikuje. Dlatego proponuje cos w rodzaju:

new const zclass5_model[] = random_num(0,1)==1?{"arctiv"}:{"sas"}


To przynajmniej powinno dac innym model co mape (jak da sie wiecej warunkow czy moze switcha).

************

Albo jeszcze lepiej zamiast new const zrobic #define z randomem - jedyna wada przy random to moga byc problemy z precachem, ale jak sie da na star je wszystkie domyslnie, to #define powinien dac zmiennosc przy kazdym zmianie modelu ^D^
  • +
  • -
  • 0

#12 darkman

    Wszechwiedzący

  • Przyjaciel

Reputacja: 87
Zaawansowany

  • Postów:553
  • Lokalizacja:inactive
Offline

Napisano 22.01.2009 20:36

jeżeli to nie będzie stała to powinno zadziałać ;>

new zclass5_model[] = random_num(0,1)==1?{"arctic"}:{"sas"}

  • +
  • -
  • 0

#13 Miczu

    Godlike

  • Przyjaciel

Reputacja: 657
Wszechmogący

  • Postów:2 862
Offline

Napisano 22.01.2009 20:38

darkman, jak napisalem update, to lepiej zrobic to jako #define

Jesli sie nie myle (naprawdę zgaduje z tym xD) to define robi w kompilacji to jaki kopiuj-> wklej w miejscu w ktorym sie odwoluje, czyli jak radnom bedzie w define, to bedzie random w funkcji zmieniania modelu :)

PS. to 2 elementowe jako test oczywiscie ;)
  • +
  • -
  • 0

#14 darkman

    Wszechwiedzący

  • Przyjaciel

Reputacja: 87
Zaawansowany

  • Postów:553
  • Lokalizacja:inactive
Offline

Napisano 22.01.2009 20:40

nie widziałem update

Jesli sie nie myle (naprawdę zgaduje z tym xD ) to define robi w kompilacji to jaki kopiuj-> wklej w miejscu w ktorym sie odwoluje, czyli jak radnom bedzie w define, to bedzie random w funkcji zmieniania modelu :)


#define działa na zasadzie niech X będzie Y, więc nie powinno być problemów z wywoływaniem funkcji w taki sposób, bynajmniej mi to działało z set_hudmessage. O:)
  • +
  • -
  • 0

#15 Plax

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:75
  • Lokalizacja:Złotów
Offline

Napisano 22.01.2009 20:43

Ciezko mi zrozumiem co piszecie xD, ale

new zclass5_model[] = random_num(0,1)==1?{"arctic"}:{"sas"}

nie działa :(
  • +
  • -
  • 0

#16 Miczu

    Godlike

  • Przyjaciel

Reputacja: 657
Wszechmogący

  • Postów:2 862
Offline

Napisano 22.01.2009 20:48

#define zclass5_model (random_num(0,1)?"arctic":"sas")

moze cos takiego (jak zadziala to mozna pokombinowac z wieksza liczba modeli).

// tylko usuń zmienną globalną zclass5_model, bo przy użyciu może sie gryżć
darkman

  • +
  • -
  • 0

#17 Plax

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:75
  • Lokalizacja:Złotów
Offline

Napisano 22.01.2009 20:54

Zastąpiłem
new zclass5_model[] = random_num(0,1)==1?{"arctic"}:{"sas"}
tym
#define zclass5_model (random_num(0,1)?"arctic":"sas")
i nadal nie działa

new zclass5_model[][] = { "arctic", "sas" }
również nie działa

[ Dodano: 22-01-2009, 20:56 ]
Czyli teraz zamiast
new zclass5_model[] = random_num(0,1)==1?{"arctic"}:{"sas"}
mam dać samo
#define (random_num(0,1)?"arctic":"sas")
???

[ Dodano: 23-01-2009, 00:03 ]
OK sprawdzałem teraz wszystko.

Kiedy używam:
new zclass5_model[] = random_num(0,1)==1?{"arctic"}:{"sas"}
Ciągle jest ten sam model

Kiedy używam:
new zclass5_model[][] = { "arctic", "sas" }
Wyskakuje pełno błędów przy kompilacji

Kiedy używam:
#define zclass5_model (random_num(0,1)?"arctic":"sas")
Do wybrania jest 8 klas tego samego Kameleona, i każda z nich ma inny wygląd ;f co nadal mnie nie satysfakcjonuje ;f

Kiedy używam:
#define (random_num(0,1)?"arctic":"sas")
Wyskakuje pełno błędów przy kompilacji


Co robić?
  • +
  • -
  • 0

#18 Spyder12

    Profesjonalista

  • Użytkownik

Reputacja: 2
Nowy

  • Postów:154
  • Lokalizacja:Kolbuszowa Górna
Offline

Napisano 25.01.2009 09:44

Moze inne rozwiązanie by sie przydało. Cos takiego że za każdym razem użycia kamelona, zmienia sie ta linijka w SMA. zamiast np:

new const zclass5_model[] = { "gign", "arctic", "gsg9", "leet", "sas", "terror", "urban", "guerilla" }

nastepnym razem jak kotś użyje, to bedzie tak

new const zclass5_model[] = { "arctic", "gign", "gsg9", "leet", "sas", "terror", "urban", "guerilla" }

albo coś takiego, słabo się znam ale może by sie coś takiego dało zrobic
  • +
  • -
  • 0

#19 Plax

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:75
  • Lokalizacja:Złotów
Offline

Napisano 25.01.2009 12:40

Auto-zmiana kolejności? To raczej nie pójdzie, bo przeciez serwer sam nie zmieni pliku .sma, nie skompiluje go do .amxx i nie wrzuci na FTP w taki sposob zeby nie trzeba bylo restartowc mapy xD

Ma ktoś jakieś inne wyjścia? Bardzo pilnie tego potrzebuje ;f
  • +
  • -
  • 0

#20 darkman

    Wszechwiedzący

  • Przyjaciel

Reputacja: 87
Zaawansowany

  • Postów:553
  • Lokalizacja:inactive
Offline

Napisano 25.01.2009 12:50

#include <amxmodx>

#include <fakemeta>

#include <zombieplague>



new const zclass5_name[] = { "Kameleon" }

new const zclass5_info[] = { "HP-- Spd- Knock- HumanOutfit+" }

new const zclass5_model[][] = { "arctic", "gign", "gsg9", "leet", "sas", "terror", "urban", "guerilla" }

new const zclass5_clawmodel[] = { "v_knife.mdl" }

const zclass5_health = 500

const zclass5_speed = 220

const Float:zclass5_gravity = 1.0

const Float:zclass5_knockback = 0.5

const zclass5_infecthp = 200 // extra hp for infections



new g_zclass_leech



public plugin_precache()

{

    register_plugin("[ZP] Default Zombie Classes", "4.06", "MeRcyLeZZ")

	new x = random_num(0, sizeof zclass5_model -1)

    g_zclass_leech = zp_register_zombie_class(zclass5_name, zclass5_info, zclass5_model[x], zclass5_clawmodel, zclass5_health, zclass5_speed, zclass5_gravity, zclass5_knockback)

}



public zp_user_infected_post(id, infector)

{

    if (zp_get_user_zombie_class(infector) == g_zclass_leech)

        set_pev(infector, pev_health, float(pev(infector, pev_health) + zclass5_infecthp))

}

  • +
  • -
  • 0




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

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