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

set_user_speed itp ;d Pomocy ;p


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

#1 arek_snk

    Zaawansowany

  • Użytkownik

Reputacja: 13
Początkujący

  • Postów:104
  • Lokalizacja:CS
Offline

Napisano 16.05.2010 20:26

Witam,

mam takie pytanie otóż mam itemka który zmienia szybkość gracza i dodaje mu 130 +, ale jest problem zmiana następuje dopiero po zmianie broni :(, i nie wiem jak to naprawić.. zrobiłem takie coś
" client_cmd(id, "lastinv; wait 100; lastinv; wait 100; lastinv")"

Ale kurde to przeszkadza w grze ;d i nie wiem jak zrobić aby się zmieniało bez zmieniania broni ...

O to cały kod z public
public CzarUtaniHur(id)
{
new iloscmany = get_user_armor(id);

if(is_user_alive(id))
{
if(iloscmany<14)
{
client_print(id, print_center, "Aby uzyc tego czaru potrzebujesz 15 many!");
return PLUGIN_HANDLED;
}
if(poprzedni_czar_gracza[id] + 1.5 > get_gametime())
{
client_print(id, print_center, "Exhaused!");
return PLUGIN_HANDLED;
}
if(poprzedni_utani_hur[id] + 16.0 > get_gametime())
{
client_print(id, print_center, "Juz masz wlaczone utani hur!");
return PLUGIN_HANDLED;
}
poprzedni_czar_gracza[id] = get_gametime();
poprzedni_utani_hur[id] = get_gametime();
{
set_user_maxspeed(id, szybkosc_gracza[id] += 130.0);
client_cmd(id, "lastinv; wait 100; lastinv; wait 100; lastinv")
client_print(id, print_center, "Biegasz o 130% szybciej!..");
}
set_task(15.0, "UtaniHurZmienSzybkosc", id);
set_user_armor(id, iloscmany-15)
}
return PLUGIN_CONTINUE;
}


Rep za pomoc.
  • +
  • -
  • 0

#2 ZiuTeK

    Wszechwiedzący

  • Użytkownik

Reputacja: 135
Zaawansowany

  • Postów:507
  • Lokalizacja:inąd
Offline

Napisano 16.05.2010 20:48

Znajdź:
new player_b_mine[33] = 1
Dodaj poniżej:
new player_b_bohy[33] = 1	//Ability to run faster
Znajdź:
player_b_mine[id] = 0
Dodaj poniżej:
player_b_bohy[id] = 0
Znajdź:
if (player_b_mine[id] > 0)
        {
                add(itemEffect,199,"Uzyj, zeby polozyc niewidzialna mine. Kiedy mina ekspoduje zada 50hp+obrazenia magia. 3 miny mozesz polozyc w jednej rundzie<br>")
        }
Dodaj poniżej:
if (player_b_bohy[id] > 0)
        {
                add(itemEffect, 199, "Buty Hermesa zapewniaja ci znacznie zwiekszona szybkosc poruszania<br>")
        }}

Znajdz w funkcji public set_speedchange(id):
if (player_b_bohy[id] > 0) set_user_maxspeed(id, agi + speeds )
Dopisz predkość przy czym wybierz najbardziej odpowiednią prędkość dla siebie:
if (player_b_bohy[id] > 0) set_user_maxspeed(id, agi + speeds + 80)
Nowy itemek:
case xx:
                {
                        player_item_name[id] = "Buty Hermesa"
                        player_item_id[id] = rannum
                        player_b_bohy[id] = 1
                        show_hudmessage(id, "Znalazles przedmiot: %s :: Dostajesz bonus do szybkosci", player_item_name[id])
                }
Zwieksz zakres losowanych itemów w:
public award_item(id, itemnum)
ustawiajac w linijce zamiast xx ilość itemów do losowania:
new rannum = random_num(1,xx)

  • +
  • -
  • 0

#3 arek_snk

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 13
Początkujący

  • Postów:104
  • Lokalizacja:CS
Offline

Napisano 16.05.2010 20:56

^.-?.. ?

Ja nie używam kodu z Diablo moda albo coś lol..

piszę sam swój kod od nowa
  • +
  • -
  • 0

#4 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 16.05.2010 21:01

Użyj fakemety lub engine
  • +
  • -
  • 1

#5 arek_snk

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 13
Początkujący

  • Postów:104
  • Lokalizacja:CS
Offline

Napisano 16.05.2010 21:06

Jak ?;s

Jakiś kod podaj ?;d, to że fakemeta moge użyć to ja wiem ale jak ^.-?
  • +
  • -
  • 0

#6 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 16.05.2010 21:12

set_pev(id ,pev_maxspeed, pev(id, pev_maxspeed) + 130.0);

do tego gracz nie pobiegnie szybciej niż sobie na to pozwoli
Cvary

cl_forwardspeed
cl_sidespeed
cl_backspeed


wszystkie 3 ustaw na wartość nowej prędkości

Przykład:
stock set_speed(id, Float:speed){
    set_pev(id ,pev_maxspeed, speed);
    client_cmd(id, "cl_forwardspeed %f", speed);
    client_cmd(id, "cl_sidespeed %f", speed);
    client_cmd(id, "cl_backspeed %f", speed);
}

  • +
  • -
  • 1

#7 arek_snk

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 13
Początkujący

  • Postów:104
  • Lokalizacja:CS
Offline

Napisano 16.05.2010 21:17

w miejsce gdzie jest %f mam wpisać 130 ta ?;P

bo sory ale nie rozumie weź daj przykład na tym kodzie SMa co podałem wtedy na 100% zrozumie..

Dzięki :))

Użytkownik arek_snk edytował ten post 16.05.2010 21:20

  • +
  • -
  • 0

#8 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 16.05.2010 21:21

Tylko czekałem, aż ktoś o to spyta xD
format

"%f", speed
oznacza, że w miejsce %f wstawiona zostanie zawartość zmiennej speed



Edit.

Blok , który możliwe pozostał po jakimś ifie

{
 set_user_maxspeed(id, szybkosc_gracza[id] += 130.0);
client_cmd(id, "lastinv; wait 100; lastinv; wait 100; lastinv")
client_print(id, print_center, "Biegasz o 130% szybciej!..");
 }

może wyglądać tak
{
    new Float:speed;
    pev(id, pev_maxspeed, speed);
    speed += 130.0;

    set_pev(id ,pev_maxspeed, speed);
    client_cmd(id, "cl_forwardspeed %f", speed);
    client_cmd(id, "cl_sidespeed %f", speed);
    client_cmd(id, "cl_backspeed %f", speed);
client_print(id, print_center, "Biegasz o 130% szybciej!..");
 }

  • +
  • -
  • 1

#9 arek_snk

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 13
Początkujący

  • Postów:104
  • Lokalizacja:CS
Offline

Napisano 16.05.2010 21:23

Ok, a jak zrobić tutaj :
public UtaniHurZmienSzybkosc(id)
{
if(is_user_alive(id))
{
szybkosc_gracza[id] -= 130.0
client_cmd(id, "lastinv; wait 100; lastinv; wait 100; lastinv")
client_print(id, print_center, "Biegasz juz z normalna predkoscia..");
}
}

16 maj 2010 - 22:28:
ok all ok ale błędy xD

Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright © 1997-2006 ITB CompuPhase, AMX Mod X Team

Warning: Label name "Float" shadows tag name on line 2364
Error: Undefined symbol "speed" on line 2364
Error: Undefined symbol "speed" on line 2365
Error: Number of arguments does not match definition on line 2365
Error: Undefined symbol "speed" on line 2366
Warning: Expression has no effect on line 2366
Error: Undefined symbol "speed" on line 2368
Error: Number of arguments does not match definition on line 2368
Error: Undefined symbol "speed" on line 2369
Error: Number of arguments does not match definition on line 2369
Error: Undefined symbol "speed" on line 2370
Error: Number of arguments does not match definition on line 2370
Error: Undefined symbol "speed" on line 2371
Error: Number of arguments does not match definition on line 2371
Warning: Symbol is never used: "Float" on line 2378
Warning: Label name "Float" shadows tag name on line 2384
Error: Undefined symbol "speed" on line 2384
Error: Undefined symbol "speed" on line 2385
Error: Number of arguments does not match definition on line 2385
Error: Undefined symbol "speed" on line 2386
Warning: Expression has no effect on line 2386
Error: Undefined symbol "speed" on line 2388
Error: Number of arguments does not match definition on line 2388
Error: Undefined symbol "speed" on line 2389
Error: Number of arguments does not match definition on line 2389
Error: Undefined symbol "speed" on line 2390
Error: Number of arguments does not match definition on line 2390
Error: Undefined symbol "speed" on line 2391
Error: Number of arguments does not match definition on line 2391
Warning: Symbol is never used: "Float" on line 2394

24 Errors.
Could not locate output file C:\Documents and Settings\Mistrz\Pulpit\Projekt\mojmod.amx (compile failed).

Użytkownik arek_snk edytował ten post 16.05.2010 21:24

  • +
  • -
  • 0

#10 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 16.05.2010 21:29

Nie widzę całego kodu, ale z prędkością to jest tak:

Zwiększ szybkośc:
- zwiększ w chwili uzyskania tej umiejętności
- flaga=1
- zwiększaj przy każdej zmianie broni (jeśli flaga != 0)

Przywróć
- przywróć prędkość (zwykle wystarcza ustawić maxspeed na 250.0)
- flaga = 0


Gdzie flaga to element tablicy, takiej jak szybkosc_gracza[id]
szybkosc_gracza[id] = 0;//zabierz predkosc
szybkosc_gracza[id] = 1;//daj predkosc


Zapomniałem o 'new' przy Float:speed;
  • +
  • -
  • 1

#11 arek_snk

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 13
Początkujący

  • Postów:104
  • Lokalizacja:CS
Offline

Napisano 16.05.2010 21:31

Całość z szybkosc_gracza[id]

szybkosc_gracza[id] = STANDARDOWA_SZYBKOSC*szybkosc_klasy[klasa_gracza[id]]+floatround(kondycja_gracza[id]*1.3);

a STANDARDOWA_SZYBKOSC to
#define STANDARDOWA_SZYBKOSC 250.0

@edit po dodaniu new 0 bledu zaraz sprawdze w praktyce i dam edyta :P

Użytkownik arek_snk edytował ten post 16.05.2010 21:32

  • +
  • -
  • 0

#12 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 16.05.2010 21:33

To właśnie musisz dodać tablicę, która przechowa informację czy dodawać te 130 czy nie
  • +
  • -
  • 1

#13 arek_snk

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 13
Początkujący

  • Postów:104
  • Lokalizacja:CS
Offline

Napisano 16.05.2010 21:35

Heh i właśnie xD, gry gracz ma włączone Utani Hur i zmieni broń na inna to wtedy mu -130 speeda odejmujje i jak znowu zmieni to znowu odejmuje xD i po 15 sekundach w dodatku znowu odejmuje mu 130 xD i tak wychodzi na to ze nie moze chodzic bo speed jest na 0 xD
  • +
  • -
  • 0

#14 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 16.05.2010 21:38

Łapiesz event CurWeapon, z "be", "1=1"?
  • +
  • -
  • 1

#15 arek_snk

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 13
Początkujący

  • Postów:104
  • Lokalizacja:CS
Offline

Napisano 16.05.2010 21:39

register_event("CurWeapon","CurWeapon","be", "1=1");
;;d
  • +
  • -
  • 0

#16 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 16.05.2010 21:43

Pokaż callback (public CurWeapon(id)) Możesz wyciąć co byś nie chciał publikować

PS stary, nie spamuj tak reputą xD
  • +
  • -
  • 1

#17 arek_snk

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 13
Początkujący

  • Postów:104
  • Lokalizacja:CS
Offline

Napisano 16.05.2010 21:45

No ale ci sie należy ;P ja bym już olał to xD a ty dalej trwasz;d i pomagasz thx :P

public CurWeapon(id)
{
if(freezetime || !klasa_gracza[id])
return PLUGIN_CONTINUE;

new weapon = read_data(2);

UstawSzybkoscGraczowi(id);

if(weapon == CSW_C4)
podkladajacy = id;
return PLUGIN_CONTINUE;
}

/\ to jest uzyte z COD Moda bo nie wiedziałem jak to zrobić ;d

Edit.. Usunełem CurWeapon z eventu i public z curweaponem i brak błedu :)).. teraz powiedz co robic hehe

Użytkownik arek_snk edytował ten post 16.05.2010 21:49

  • +
  • -
  • 0

#18 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 16.05.2010 21:52

CurWeapon musi być xD

a co robisz w
UstawSzybkoscGraczowi(id);
? Pewnie m.in. przeliczasz na nowo szybkosc_gracza[id].

Mógłbyś sprawdzać potem czy istnieje task co ma usunąć prędkość i uwzględnić dodaną prędkość
if(task_exists(id)){
    szybkos_gracza[id] += 130.0;
}


Jeśli puścisz kilka tasków na to samo ID to się poplącze wszystko. Dodawaj jakąś stałą wartość.
#define TASK_ZABIERZ_SPEEDA 1243124

set_task(20.0 ,"zabierz_speeda", id+TASK_ZABIERZ_SPEEDA);

public zabierz_speeda(id){
    id -= TASK_ZABIERZ_SPEEDA;
    //zrób coś
}

  • +
  • -
  • 1

#19 arek_snk

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 13
Początkujący

  • Postów:104
  • Lokalizacja:CS
Offline

Napisano 16.05.2010 21:55

@up Próbowałem też tak robić ale czar nie reagował ;d

R3X Jak możesz napisz na gg ;D będzie lepiej się porozumieć 8380792 :P jeżeli nie to spoko

PS:Sproboję jeszcze raz zrobić tak jak piszesz :)
  • +
  • -
  • 0

#20 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 16.05.2010 22:02

Nie za długo piszesz pluginy co? Zrób osobny plugin, w którym pobaw się ustawianiem speeda w CurWeapon. Dużo informacji wyrzucaj client_print(); i analizuj co się dzieje z pluginem.

Rozumiem, że każdy ma nową prędkość na podstawie atrybutów postaci. Jak już wspomniałem najlepiej to zrób tablicę czy dodawać prędkość w CurWeapon czy nie. szybosc_gracza[
] niech się zmienia po swojemu i nie mieszaj w to tego itemu. Każdemu w CurWeapon ustawiaj szybkosc_gracza[] a jak ma 1 w tej nowej tablicy do dodaj mu jeszcze te 130.0
  • +
  • -
  • 0




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

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