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

Kilka "perków"

cod nowy

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

#1 ChrisN

    Wszechpomocny

  • Użytkownik

Reputacja: 31
Życzliwy

  • Postów:303
  • Imię:Christopher
Offline

Napisano 11.06.2018 14:26

Witam, mam pewny mały pomysł na coda tylko mam takie pytanie, czy dało by rade zrobić około 12 "slotów na perk", które by miały swoje odpowiedniki? W sensie było by te 12 configów i każdy slot na perk miałby swoje odpowiednio przypisane perki, dało by rade takie coś zrobić? Mógł by ktoś zapodać jakiś przykład jak by to rozkminiać jeśli się da.


  • +
  • -
  • 0

#2 Robiin

    Godlike

  • Support Team

Reputacja: 1 103
Super Hero

  • Postów:2 043
  • Imię:Robert
  • Lokalizacja:Wrocław
Offline

Napisano 11.06.2018 14:49

Pytasz o gotowy kod, czy o pomysł jak to napisać i napiszesz sam?

 


  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#3 ChrisN

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 31
Życzliwy

  • Postów:303
  • Imię:Christopher
Offline

Napisano 11.06.2018 16:47

Pytasz o gotowy kod, czy o pomysł jak to napisać i napiszesz sam?

 

 

Pomysł, myślałem o tym by zajrzeć w kod silnika który ma dwa perki i go "powielić" tylko nie mam zielonego pojęcia jak rozdzielić perki na swoje sloty


  • +
  • -
  • 0

#4 ChrisN

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 31
Życzliwy

  • Postów:303
  • Imię:Christopher
Offline

Napisano 13.06.2018 14:43

ref, albo jak by zablokować bądź dać możliwość dropnięcia danego perku na dany slot bez plików .ini? Po prostu bym je dopisał normalnie do plugins-codmod, tylko nie wiem jak by je zablokować na dany slot.


  • +
  • -
  • 0

#5 AwIlL^^

    Magiczny Gość

  • Użytkownik

Reputacja: 135
Zaawansowany

  • Postów:263
  • Steam:steam
  • Imię:Eryk
  • Lokalizacja:Gdańsk
Offline

Napisano 13.06.2018 20:02

Możesz dodać kolejną właściwość perku - slot.
Wtedy w cod_register_perk dodać kolejny parametr, który by opisywał, na który slot jest dany perk.
I wtedy w UstawPerk zamiast z góry narzucać na jaki slot ma być perk, by normalnie losowało po czy wczytywało, na który slot jest i w ten slot wrzucało perka.
Wada tego rozwiązania:
Zdarzało by się czasem tak, że nie dawało by perku.
  • +
  • -
  • 1

Potrzebujesz porad do amxx?? Pisz na [PW]


#6 ChrisN

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 31
Życzliwy

  • Postów:303
  • Imię:Christopher
Offline

Napisano 14.06.2018 14:24

Możesz dodać kolejną właściwość perku - slot.
Wtedy w cod_register_perk dodać kolejny parametr, który by opisywał, na który slot jest dany perk.
I wtedy w UstawPerk zamiast z góry narzucać na jaki slot ma być perk, by normalnie losowało po czy wczytywało, na który slot jest i w ten slot wrzucało perka.
Wada tego rozwiązania:
Zdarzało by się czasem tak, że nie dawało by perku.

 

 

A gdyby tak zduplikować kod ustawiania perku X razy i w każdym zmienić zmienne, w sensie pododawać do nich slot1, slot2 itd? Potem dodać nowe natywy, i w .sma perku ustalać z góry do którego slotu należy perk? Zadziałało by, czy ten sam problem by był jak opisałeś wyżej z nowym parametrem dla perku.

 

btw, od czego jest ten static "obroty"? Nigdy się nie zagłębiałem tak głęboko w kod, coda :D

public UstawPerk(id, perk, wartosc, pokaz_info)
{
if(!ilosc_perkow)
return PLUGIN_CONTINUE;
 
static obroty[33];
 
if(obroty[id]++ >= 5)
{
UstawPerk(id, 0, 0, 0);
obroty[id] = 0;
return PLUGIN_CONTINUE;
}
 
perk = (perk == -1)? random_num(1, ilosc_perkow): perk;
wartosc = (wartosc == -1 || min_wartosci_perkow[perk] > wartosc ||  wartosc > max_wartosci_perkow[perk])? random_num(min_wartosci_perkow[perk], max_wartosci_perkow[perk]): wartosc; 
 
new ret;
 
new forward_handle = CreateOneForward(pluginy_perkow[perk_gracza[id]], "cod_perk_disabled", FP_CELL, FP_CELL);
ExecuteForward(forward_handle, ret, id, perk);
DestroyForward(forward_handle);
 
perk_gracza[id] = 0;
 
forward_handle = CreateOneForward(pluginy_perkow[perk], "cod_perk_enabled", FP_CELL, FP_CELL, FP_CELL);
ExecuteForward(forward_handle, ret, id, wartosc, perk);
DestroyForward(forward_handle);
 
if(ret == 4)
{
UstawPerk(id, -1, -1, 1);
return PLUGIN_CONTINUE;
}
 
ExecuteForward(perk_zmieniony, ret, id, perk, wartosc);
 
if(ret == 4)
{
UstawPerk(id, -1, -1, 1);
return PLUGIN_CONTINUE;
}
 
perk_gracza[id] = perk; 
wartosc_perku_gracza[id] = wartosc;
 
obroty[id] = 0;
 
if(pokaz_info && perk_gracza[id]) 
client_print(id, print_chat, "[COD:MW] Zdobyles %s.", nazwy_perkow[perk_gracza[id]]);
 
return PLUGIN_CONTINUE;
}

Użytkownik chrisN edytował ten post 14.06.2018 14:25

  • +
  • -
  • 0

#7 AwIlL^^

    Magiczny Gość

  • Użytkownik

Reputacja: 135
Zaawansowany

  • Postów:263
  • Steam:steam
  • Imię:Eryk
  • Lokalizacja:Gdańsk
Offline

Napisano 14.06.2018 15:14

problem głównie polega na tym, że masz listę peków, które są na różne sloty i nie są posortowane.
szukanie perku na dany slot chwilę trwa, a jak zrobisz losowanie perku po czym wczytywanie slotu to może kilka razy wylosować slot, na którym masz już perk,

a takiego czegoś by się nie chciało i losowało kolejny raz.
i tak 5 razy jak wskazuje zmienna 'obroty'

 

Ta zmienna zapewnia, że funkcja wykona się maksymalnie 5 razy, w innym przypadku przeciążyłoby serwer.

A raczej takie założenie jest, że ma się wykonać maksymalnie 5 razy bo z tego co widzę z kodu nic nie wynika, że nie może wykonać się nawet milion razy... (źle napisany kod).


  • +
  • -
  • 1

Potrzebujesz porad do amxx?? Pisz na [PW]


#8 ChrisN

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 31
Życzliwy

  • Postów:303
  • Imię:Christopher
Offline

Napisano 14.06.2018 16:45

problem głównie polega na tym, że masz listę peków, które są na różne sloty i nie są posortowane.
szukanie perku na dany slot chwilę trwa, a jak zrobisz losowanie perku po czym wczytywanie slotu to może kilka razy wylosować slot, na którym masz już perk,

a takiego czegoś by się nie chciało i losowało kolejny raz.
i tak 5 razy jak wskazuje zmienna 'obroty'

 

Ta zmienna zapewnia, że funkcja wykona się maksymalnie 5 razy, w innym przypadku przeciążyłoby serwer.

A raczej takie założenie jest, że ma się wykonać maksymalnie 5 razy bo z tego co widzę z kodu nic nie wynika, że nie może wykonać się nawet milion razy... (źle napisany kod).

 

 

Z tego co widzę, to ta funkcja odpowiada za losowanie perku tak? 

 

perk = (perk == -1)? random_num(1, ilosc_perkow): perk;

 

Jak by tak jednak zastosować te pliki .ini i losować perki między właśnie tymi plikami? I wtedy by się to jakoś ograniczyło if(perk = slot1){blalblabla}


  • +
  • -
  • 0

#9 ChrisN

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 31
Życzliwy

  • Postów:303
  • Imię:Christopher
Offline

Napisano 14.06.2018 18:12

Teraz tak patrze na 2 sloty z perków cypisa, i tak myślę jak by to dodac do kodu perka by był możliwy do zdobycia tylko dla "lp = 1" mhm


  • +
  • -
  • 0

#10 ChrisN

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 31
Życzliwy

  • Postów:303
  • Imię:Christopher
Offline

Napisano 14.06.2018 18:45

Próbowałem przez cod_set_user_perk(id, 0, 1) nadać wartość 1 dla lp ale coś źle robie bo nie działa ;/


  • +
  • -
  • 0





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

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

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