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
CoD Nowy

Klasa Mnich - posiada Teleport

cod nowy teleport klasa 5 sekund

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

#1 brains..?

    Życzliwy

  • Użytkownik

Reputacja: 18
Początkujący

  • Postów:36
  • GG:
  • Lokalizacja:Bytomsko
Offline

Napisano 03.01.2012 20:41

*
Popularny

Witam


Jest duzo pytan o klase z teleportem wiec tutaj ją zamieszczam.



#include <amxmodx>
#include <codmod>
#include <fakemeta>
#include <xs>

new const nazwa[] = "Mnich";
new const opis[] = "Posiada teleport (Mozna uzyc co 10s)";
new const bronie = 1<<CSW_AK47 | 1<<CSW_FLASHBANG;
new const zdrowie = 0;
new const kondycja = 17;
new const inteligencja = 0;
new const wytrzymalosc = 6;


new bool:uzyl[33];


public plugin_init() {
register_plugin(nazwa, "1.0", "QTM_Peyote");

cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
register_event("ResetHUD", "ResetHUD", "abe");
}

public cod_class_enabled(id)
{
if(!(get_user_flags(id) & ADMIN_LEVEL_H))
{
client_print(id, print_chat, "[Mnich] Nie masz uprawnien, aby uzywac tej klasy.")
return COD_STOP;
}

uzyl[id] = false;
return COD_CONTINUE;
}



public cod_class_skill_used(id)
{

if (!uzyl[id]==false)
{
client_print(id, print_center, "Teleport mozna uzywac co 10s");
return PLUGIN_CONTINUE;
}

if(uzyl[id] || !is_user_alive(id))
return PLUGIN_CONTINUE;

new Float:start[3], Float:view_ofs[3];
pev(id, pev_origin, start);
pev(id, pev_view_ofs, view_ofs);
xs_vec_add(start, view_ofs, start);

new Float:dest[3];
pev(id, pev_v_angle, dest);
engfunc(EngFunc_MakeVectors, dest);
global_get(glb_v_forward, dest);
xs_vec_mul_scalar(dest, 999.0, dest);
xs_vec_add(start, dest, dest);

engfunc(EngFunc_TraceLine, start, dest, 0, id, 0);

new Float:fDstOrigin[3];
get_tr2(0, TR_vecEndPos, fDstOrigin);

if(engfunc(EngFunc_PointContents, fDstOrigin) == CONTENTS_SKY)
return PLUGIN_CONTINUE;

new Float:fNormal[3];
get_tr2(0, TR_vecPlaneNormal, fNormal);

xs_vec_mul_scalar(fNormal, 50.0, fNormal);
xs_vec_add(fDstOrigin, fNormal, fDstOrigin);
set_pev(id, pev_origin, fDstOrigin);
uzyl[id] = true;
set_task ( 10.0, "ResetHUD", id )
set_task ( 10.0, "InfoTel", id )
}

public ResetHUD(id)
{
uzyl[id] = false;
}

public InfoTel(id)
{
client_print(id, print_center, "Mozesz uzyc Teleportacji");
}



Mini Tutorial :)

1. Aby zmienić czas pomiędzy użyciem Teleportu nalezy zmienic 10 na dowolną liczbe:

set_task ( 10.0, "ResetHUD", id )



2.Aby zmieić odległość teleportacji nalezy edytować 999 na dowolną liczbe:

xs_vec_mul_scalar(dest, 999.0, dest);





Przepraszam za błędy ortograficzen, J.Polski nie jest moją mocną stroną.
sharkowy (04.01.2012 13:49):
*.sma daj do załącznika.

Załączone pliki


Użytkownik BRAINS...? edytował ten post 05.01.2012 14:38

  • +
  • -
  • 10

#2 Goliath

    Godlike

  • Przyjaciel

Reputacja: 1 237
Godlike

  • Postów:2 334
  • GG:
  • Steam:steam
  • Imię:Maciej
  • Lokalizacja:Mońki
Offline

Napisano 03.01.2012 20:46

Wywal z plugin_init:

register_event("DeathMsg", "DeathMsg", "ade");

Bo będzie wywalać błędy w logach. BTW, tablica ma_klase jest niepotrzebna.
  • +
  • -
  • 1

#3 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 03.01.2012 21:08

Nawet krótki kod, pewnie nie Ty pisałeś, ale testowałeś? Bo mam pytanie odnośnie tego co się dzieje, gdy ktoś próbuje teleportować się w jakiś ciasny korytarz? No i czy można zablokować się w ścianie?
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#4 System'ek

    Banned

  • Zbanowany

Reputacja: 21
Życzliwy

  • Postów:119
  • GG:
  • Steam:steam
  • Imię:Przemek
  • Lokalizacja:Biłgoraj
Offline

Napisano 03.01.2012 21:37

Mi działa.

Sebul, można się prze teleportować i nie zablokuje Cię w ciasnym korytarzy bo spadasz przed ścianą, a zablokować to udało mi się tylko raz na skrzynkach na dd2 na respie ct

#5 Jeansy

    Banned

  • Zbanowany

Reputacja: 35
Życzliwy

  • Postów:296
  • Lokalizacja:Złoczew
Offline

Napisano 03.01.2012 21:44

Ja już miałem tą klase wcześniej i mam takie pytanko czy w niej jest bug taki ze tylko można na wprost teleportowac się a w górę nie da się?? tzn w sensie bedziemy chcieli sie teleportowac gdzie wskażemy ccelownikiem np na góre i nas teleport-nie czy nie ??

#6 Pietras11

    Wszechwiedzący

  • Power User

Reputacja: 89
Zaawansowany

  • Postów:518
  • GG:
  • Steam:steam
  • Imię:Piotr
  • Lokalizacja:Gniezno
Offline

Napisano 03.01.2012 21:54

Szukałem takiej klasy tylko można by zamiast ak dać m4 +
  • +
  • -
  • 0

#7 ToRRent

    Czempion

  • Power User

Reputacja: 229
Wszechwidzący

  • Postów:861
  • Imię:Łukasz
  • Lokalizacja:Wrocław
Offline

Napisano 04.01.2012 12:56

moment, to działa tak że po użyciu gracza teleportuje do przodu o x unitów ale nie może pokonać ścian ?
czy to jest tak że gracz zostanie przeteleportowany tam gdzie miał celownik i w razie błędnego zaznaczenia trzeba jeszcze raz próbować teleportacji (jak w War3FT np.)
  • +
  • -
  • 0

#8 brains..?

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 18
Początkujący

  • Postów:36
  • GG:
  • Lokalizacja:Bytomsko
Offline

Napisano 04.01.2012 14:08

Goliath Zapomnialem usunąć :)
=ToRRent= Gdy natrafisz przeszkode to zatrzymujesz się przed nią.
Tuptusiowy Dziala w pionie oraz poziomie.
sebul Klase testowalem, czasami mozna się zabkolokać na pochylniach

Użytkownik Rozumek124 edytował ten post 04.01.2012 14:13

  • +
  • -
  • 1

#9 Ranny Ptaszek

    Zaawansowany

  • Użytkownik

Reputacja: 1
Nowy

  • Postów:113
  • Imię:Dominik
  • Lokalizacja:Stolica ;]
Offline

Napisano 04.01.2012 14:26

Najlepiej by było gdybyś dodał jakieś info na środku ekranu, np. 'Teleportacji możesz użyć za x sekund.', bo tak nie wiadomo kiedy można użyć tej teleportacji :D

Mam nadzieję, że zrozumiałeś to co chciałem Ci przekazać/poprosić ^^

Użytkownik Ranny Ptaszek edytował ten post 04.01.2012 14:26

  • +
  • -
  • 0

#10 brains..?

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 18
Początkujący

  • Postów:36
  • GG:
  • Lokalizacja:Bytomsko
Offline

Napisano 04.01.2012 16:43

#include <amxmodx>
#include <codmod>
#include <fakemeta>
#include <xs>
new const nazwa[] = "Mnich";
new const opis[] = "Posiada teleport (Mozna uzyc co 10s)";
new const bronie = 1<<CSW_AK47 | 1<<CSW_FLASHBANG;
new const zdrowie = 0;
new const kondycja = 17;
new const inteligencja = 0;
new const wytrzymalosc = 6;

new bool:uzyl[33];

public plugin_init() {
register_plugin(nazwa, "1.0", "QTM_Peyote");

cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
register_event("ResetHUD", "ResetHUD", "abe");
register_event("InfoTel", "InfoTel", "abe");
}
public cod_class_enabled(id)
{
if(!(get_user_flags(id) & ADMIN_LEVEL_H))
{
client_print(id, print_chat, "[Mnich] Nie masz uprawnien, aby uzywac tej klasy.")
return COD_STOP;
}

uzyl[id] = false;
return COD_CONTINUE;
}

public cod_class_skill_used(id)
{
if (!uzyl[id]==false)
{
client_print(id, print_center, "Teleport mozna uzywac co 10s");
return PLUGIN_CONTINUE;
}
if(uzyl[id] || !is_user_alive(id))
return PLUGIN_CONTINUE;

new Float:start[3], Float:view_ofs[3];
pev(id, pev_origin, start);
pev(id, pev_view_ofs, view_ofs);
xs_vec_add(start, view_ofs, start);
new Float:dest[3];
pev(id, pev_v_angle, dest);
engfunc(EngFunc_MakeVectors, dest);
global_get(glb_v_forward, dest);
xs_vec_mul_scalar(dest, 999.0, dest);
xs_vec_add(start, dest, dest);
engfunc(EngFunc_TraceLine, start, dest, 0, id, 0);

new Float:fDstOrigin[3];
get_tr2(0, TR_vecEndPos, fDstOrigin);

if(engfunc(EngFunc_PointContents, fDstOrigin) == CONTENTS_SKY)
return PLUGIN_CONTINUE;
new Float:fNormal[3];
get_tr2(0, TR_vecPlaneNormal, fNormal);

xs_vec_mul_scalar(fNormal, 50.0, fNormal);
xs_vec_add(fDstOrigin, fNormal, fDstOrigin);
set_pev(id, pev_origin, fDstOrigin);
uzyl[id] = true;
set_task ( 10.0, "ResetHUD", id )
set_task ( 10.0, "InfoTel", id )
}
public ResetHUD(id)
{
uzyl[id] = false;
}
public InfoTel(id)
{
client_print(id, print_center, "Mozesz uzyc Teleportacji");
}



Łap :) Dodalem pliki amxx oraz sma z Inforamcją o czasie do zalacznikow w temacie

Użytkownik Rozumek124 edytował ten post 04.01.2012 16:48

  • +
  • -
  • 0

#11 Ranny Ptaszek

    Zaawansowany

  • Użytkownik

Reputacja: 1
Nowy

  • Postów:113
  • Imię:Dominik
  • Lokalizacja:Stolica ;]
Offline

Napisano 04.01.2012 17:17

Nie wiem jak ci to wytłumaczyć, ale chciałbym coś w stylu odliczania na środku ekranu :&
  • +
  • -
  • 0

#12 brains..?

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 18
Początkujący

  • Postów:36
  • GG:
  • Lokalizacja:Bytomsko
Offline

Napisano 04.01.2012 19:05

Łap z odliczaniem ;)

Załączone pliki


Użytkownik Rozumek124 edytował ten post 04.01.2012 19:06

  • +
  • -
  • 2

#13 heroes

    Zaawansowany

  • Użytkownik

Reputacja: 21
Życzliwy

  • Postów:118
  • Imię:xxx
  • Lokalizacja:xxx
Offline

Napisano 04.01.2012 21:08

Łap z odliczaniem ;)

zapodasz sma ?
  • +
  • -
  • 0
Dołączona grafika

Dołączona grafika

#14 Eustachy8

    Wszechpomocny

  • Użytkownik

Reputacja: 116
Zaawansowany

  • Postów:304
  • Imię:Kuba
  • Lokalizacja:Buczacz
Offline

Napisano 05.01.2012 16:36

Szukałem takiej klasy tylko można by zamiast ak dać m4 +

Szukałem takiej klasy tylko można by zamiast ak dać m4 +



to prościutkie, zamiast:
new const bronie = 1<<CSW_AK47 | 1<<CSW_FLASHBANG;
daj to
new const bronie = 1<<CSW_M4A1 | 1<<CSW_FLASHBANG;

Użytkownik Eustachy8 edytował ten post 05.01.2012 16:40

  • +
  • -
  • 1

24azdk0.jpg
b_350_20_692108_381007_FFFFFF_000000.png
 


#15 Pietras11

    Wszechwiedzący

  • Power User

Reputacja: 89
Zaawansowany

  • Postów:518
  • GG:
  • Steam:steam
  • Imię:Piotr
  • Lokalizacja:Gniezno
Offline

Napisano 05.01.2012 16:55

Doszedłem do tego nie wiedziałem że to takie proste :facepalm: ale + dam za odp.
  • +
  • -
  • 0

#16 Ranny Ptaszek

    Zaawansowany

  • Użytkownik

Reputacja: 1
Nowy

  • Postów:113
  • Imię:Dominik
  • Lokalizacja:Stolica ;]
Offline

Napisano 05.01.2012 19:30

Łap z odliczaniem ;)



Można .sma?
  • +
  • -
  • 0

#17 brains..?

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 18
Początkujący

  • Postów:36
  • GG:
  • Lokalizacja:Bytomsko
Offline

Napisano 05.01.2012 20:39

Lap sma ;D




#include <amxmodx>
#include <codmod>
#include <fakemeta>
#include <xs>
new const nazwa[] = "Mnich";
new const opis[] = "Posiada teleport (Mozna uzyc co 10s)";
new const bronie = 1<<CSW_AK47 | 1<<CSW_FLASHBANG;
new const zdrowie = 0;
new const kondycja = 17;
new const inteligencja = 0;
new const wytrzymalosc = 6;
new Odliczanie[33]
new bool:uzyl[33];

public plugin_init() {
register_plugin(nazwa, "1.0", "QTM_Peyote");
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
register_event("ResetHUD", "ResetHUD", "abe");
}
public cod_class_enabled(id)
{
if(!(get_user_flags(id) & ADMIN_LEVEL_H))
{
client_print(id, print_chat, "[Mnich] Nie masz uprawnien, aby uzywac tej klasy.")
return COD_STOP;
}
uzyl[id] = false;
return COD_CONTINUE;
}

public cod_class_skill_used(id)
{
if (!uzyl[id]==false)
{
client_print(id, print_center, "Teleport mozna uzywac co 10s");
return PLUGIN_CONTINUE;
}
if(uzyl[id] || !is_user_alive(id))
return PLUGIN_CONTINUE;
new Float:start[3], Float:view_ofs[3];
pev(id, pev_origin, start);
pev(id, pev_view_ofs, view_ofs);
xs_vec_add(start, view_ofs, start);
new Float:dest[3];
pev(id, pev_v_angle, dest);
engfunc(EngFunc_MakeVectors, dest);
global_get(glb_v_forward, dest);
xs_vec_mul_scalar(dest, 999.0, dest);
xs_vec_add(start, dest, dest);
engfunc(EngFunc_TraceLine, start, dest, 0, id, 0);
new Float:fDstOrigin[3];
get_tr2(0, TR_vecEndPos, fDstOrigin);
if(engfunc(EngFunc_PointContents, fDstOrigin) == CONTENTS_SKY)
return PLUGIN_CONTINUE;
new Float:fNormal[3];
get_tr2(0, TR_vecPlaneNormal, fNormal);
xs_vec_mul_scalar(fNormal, 50.0, fNormal);
xs_vec_add(fDstOrigin, fNormal, fDstOrigin);
set_pev(id, pev_origin, fDstOrigin);
uzyl[id] = true;
set_task ( 12.0, "ResetHUD", id )
set_task ( 12.0, "start", id )
}
public ResetHUD(id)
{
uzyl[id] = false;
}
public start(id)
{

Odliczanie[id] = 10 // nasza zmienna + czas ile ma odliczać do zera w tym przypadku 30sekund

if(task_exists(id + 3431))
{
remove_task(id + 3431)
}
set_task(1.0, "Koniec", id + 3431, _, _, "b")

return PLUGIN_CONTINUE
}
public Koniec(task_id)
{
new id = task_id - 3431

set_hudmessage(0, 255, 0, 0.03, 0.76, 2, 0.02, 1.0, 0.01)
show_hudmessage(id, "Za %d mozesz sie teleportowac", Odliczanie[id])

Odliczanie[id] -= 1

if(Odliczanie[id] <= 0)
{
if(task_exists(task_id))
{
remove_task(task_id)
}
}
}


Jak cos nie bedzie dzialac to pisz
  • +
  • -
  • 1

#18 Ranny Ptaszek

    Zaawansowany

  • Użytkownik

Reputacja: 1
Nowy

  • Postów:113
  • Imię:Dominik
  • Lokalizacja:Stolica ;]
Offline

Napisano 05.01.2012 21:27

Wcześniejsza wersja .amxx działała lepiej. Tutaj mamy jakieś dwa odliczania, jeden na środku ekranu i bez żadnego odliczania, a po nim odliczanie z lewej strony (poprawne).

Oraz podczas kompilacji (normalnie się kompiluje, ale ja wolę beż zadnych tam errorów):

codclass_mnich.sma(63) : warning 209: function "cod_class_skill_used" should return a value
  • +
  • -
  • 0

#19 brains..?

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 18
Początkujący

  • Postów:36
  • GG:
  • Lokalizacja:Bytomsko
Offline

Napisano 06.01.2012 10:49

#include <amxmodx>
#include <codmod>
#include <fakemeta>
#include <xs>
new const nazwa[] = "Mnich";
new const opis[] = "Posiada teleport (Mozna uzyc co 10s)";
new const bronie = 1<<CSW_AK47 | 1<<CSW_FLASHBANG;
new const zdrowie = 0;
new const kondycja = 17;
new const inteligencja = 0;
new const wytrzymalosc = 6;
new Odliczanie[33]
new bool:uzyl[33];

public plugin_init() {
register_plugin(nazwa, "1.0", "QTM_Peyote");
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
register_event("ResetHUD", "ResetHUD", "abe");
}
public cod_class_enabled(id)
{
if(!(get_user_flags(id) & ADMIN_LEVEL_H))
{
client_print(id, print_chat, "[Mnich] Nie masz uprawnien, aby uzywac tej klasy.")
return COD_STOP;
}
uzyl[id] = false;
return COD_CONTINUE;
}

public cod_class_skill_used(id)
{
if (!uzyl[id]==false)
{
return PLUGIN_CONTINUE;
}
if(uzyl[id] || !is_user_alive(id))
return PLUGIN_CONTINUE;
new Float:start[3], Float:view_ofs[3];
pev(id, pev_origin, start);
pev(id, pev_view_ofs, view_ofs);
xs_vec_add(start, view_ofs, start);
new Float:dest[3];
pev(id, pev_v_angle, dest);
engfunc(EngFunc_MakeVectors, dest);
global_get(glb_v_forward, dest);
xs_vec_mul_scalar(dest, 999.0, dest);
xs_vec_add(start, dest, dest);
engfunc(EngFunc_TraceLine, start, dest, 0, id, 0);
new Float:fDstOrigin[3];
get_tr2(0, TR_vecEndPos, fDstOrigin);
if(engfunc(EngFunc_PointContents, fDstOrigin) == CONTENTS_SKY)
return PLUGIN_CONTINUE;
new Float:fNormal[3];
get_tr2(0, TR_vecPlaneNormal, fNormal);
xs_vec_mul_scalar(fNormal, 50.0, fNormal);
xs_vec_add(fDstOrigin, fNormal, fDstOrigin);
set_pev(id, pev_origin, fDstOrigin);
uzyl[id] = true;
set_task ( 12.0, "ResetHUD", id )
set_task ( 12.0, "start", id )
}
public ResetHUD(id)
{
uzyl[id] = false;
}
public start(id)
{

Odliczanie[id] = 10 // nasza zmienna + czas ile ma odliczać do zera w tym przypadku 30sekund

if(task_exists(id + 3431))
{
remove_task(id + 3431)
}
set_task(1.0, "Koniec", id + 3431, _, _, "b")

return PLUGIN_CONTINUE
}
public Koniec(task_id)
{
new id = task_id - 3431

set_hudmessage(0, 255, 0, 0.03, 0.76, 2, 0.02, 1.0, 0.01)
show_hudmessage(id, "Za %d mozesz sie teleportowac", Odliczanie[id])

Odliczanie[id] -= 1

if(Odliczanie[id] <= 0)
{
if(task_exists(task_id))
{
remove_task(task_id)
}
}
}


Wersja z odliczaniem po lewej stronie.

A ten error oznacza (chyba), ze powinna zwracac jakąs wartosc ale nie moze zwrocic poniewac jest wykonywana caly czas petla ktora nigdy sie nie skonczy. Nalezalo by wprowadzic ograniczenie, ze mozna uzyc np teleportu 3 razy na runde to wtedy bedzie sma wolne od errorow ale tego jak na razie to nie potrafie xD

Użytkownik BRAINS...? edytował ten post 06.01.2012 10:49

  • +
  • -
  • 1

#20 Ranny Ptaszek

    Zaawansowany

  • Użytkownik

Reputacja: 1
Nowy

  • Postów:113
  • Imię:Dominik
  • Lokalizacja:Stolica ;]
Offline

Napisano 06.01.2012 12:01

Nadal nie działa..

Po wciśnięciu teleportacji przenosi i od czasu do czasu się pojawi ten napis i nawet nie wiem jak ci to wytłumaczyć, tak jakby ten plugin liczy co innego, a to 'show_hudmessage(id, "Za %d mozesz sie teleportowac", Odliczanie[id])' jeszcze co innego..

Mógłbyś najpierw to sprawdzić? Bo chyba najlepiej byś się dowiedział jakie błędy popełniłeś :)

Użytkownik Ranny Ptaszek edytował ten post 06.01.2012 12:09

  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: cod nowy, teleport, klasa, 5 sekund

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

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