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
Klasa

Dodanie 1/2 z Noża do klasy Scouter

klasa

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

#1 VeticK.

    Początkujący

  • Użytkownik

Reputacja: 0
zer0.

  • Postów:14
  • Imię:Kamil
  • Lokalizacja:Poland
Offline

Napisano 15.07.2014 07:58

Tak jak w temacie. Oto .sma klasy:

 

#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <hamsandwich>


#define DMG_BULLET (1<<1)
        
new const nazwa[]   = "Scouter";
new const opis[]    = "Posiada Scouta i z niego 1/2";
new const bronie    = (1<<CSW_SCOUT)|(1<<CSW_DEAGLE);
new const zdrowie   = 350;
new const kondycja  = 400;
new const inteligencja = 150;
new const wytrzymalosc = 0;


new ma_klase[33];
    
public plugin_init()
{
register_plugin(nazwa, "1.0", "amxx.pl");


cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);


        RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
}


public TakeDamage(this, idinflictor, idattacker, Float:damage,


damagebits)
{
if(!is_user_connected(idattacker))
return HAM_IGNORED;


if(!ma_klase[idattacker])
return HAM_IGNORED;


if(damagebits & DMG_BULLET)
{
new weapon = get_user_weapon(idattacker);


if(weapon == CSW_SCOUT && damage > 20.0 &&


random_num(1, 2) == 1)
cod_inflict_damage(idattacker, this,


float(get_user_health(this))-damage+1.0, 0.0, idinflictor,


damagebits);


}


return HAM_IGNORED;
}

 


  • +
  • -
  • 0

#2 Oporowiec.

    Zaawansowany

  • Zbanowany

Reputacja: 10
Początkujący

  • Postów:146
  • Imię:Wojtek
  • Lokalizacja:Zadupie
Offline

Napisano 15.07.2014 09:04

sprawdź, nie obiecuje, że działa.

Załączone pliki


Reset statystyk: http://amxx.pl/topic...statystyk-2014/

 

5392 oraz 6262 Moim autorytetem  :) 


#3 BlackPerfum

    Pseudo interakcja??

  • Power User

Reputacja: 453
Wszechobecny

  • Postów:575
  • Lokalizacja:...
Offline

Napisano 15.07.2014 10:15

VeticK. czasem nie chciałeś tylko z ppm?? Trzeba dopisać bo ludzie cię źle zrozumieją ;D

Nie chce mi się pisać tego parę razy pozwólcie że użyje czarodziejskich przycisków Ctrl+C & Ctrl+V haha.gif
P350 twój kod zadziała ale ma w sobie dosyć duże błędy:

• Sprawdzanie czy dmg jest większe od 20 nie ma najmniejszego sensu gdyż jakiś inny plugin mógł zmniejszyć dmg z 270 (standardowo strzał w głowę) na 19 i się funkcja nie wykona
• Nie sprawdzasz czy inflictro czyli 2 arg w funkcji TakeDamage równa się attacker czyli 3 argument w tej funkcji. Po co to? Po to by rozróżnić dmg zadawane przez gracza ze standardowej broni od np. niestandardowej np. miny/kuszy/czegoś tam gdyż samo sprawdzenie damagebits nie wystarczy
• Funkcja cod_inflict_damage nie służy do zabijania!!! Ta funkcja służy do zadawania indywidualnego dmg np. miny/kuszy itd
• Jakiś inny plugin może złapać dmg z cod_inflict_damage i je zmniejszyć tak by już nie było śmiertelne przez co z 1/2 może się zrobić 1/(1/0) a tego chyba nie chcemy
• Nie ma najmniejszego sensu 2x pobierać broń gracza za pomocą get_user_weapon wystarczy raz to samo się tyczy sprawdzania czy damagebits "ma w sobie" bit DMG_BULLET bo wystarczy raz

Poprawne 1/x masz tutaj: http://amxx.pl/topic/136292-prośba-o-klasę-scouter-zwykła/ 4 post
  • +
  • -
  • 0
Chcesz napisać do mnie na PW to:
Spoiler

Mój tok myślenia jest błędny? Wskaż mi błąd zmienie to!

Aktualnie bije limit 32 graczy (łącze serwery) ale nadal są lagi przy zbyt dużym przesyłu informacji Dołączona grafika
Gra się płynnie do 40~50 graczy potem łącze pada i zamiast biegać ludzie się teleportują Dołączona grafika





Również z jednym lub większą ilością słów kluczowych: klasa

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

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