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

Optymalizacja public UstawPerk


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

#1 vanillah

    nie wiem

  • Użytkownik

Reputacja: 125
Zaawansowany

  • Postów:324
  • GG:
  • Lokalizacja:Polska
Offline

Napisano 01.04.2016 20:05

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]) 
		ColorChat(id, RED, "[COD:MW3]^x04 Zdobyles^x03 %s", nazwy_perkow[perk_gracza[id]]);
 
return PLUGIN_CONTINUE;
}

Jak można ten kod zoptymalizować?

Zależy mi na tym, bo serwer się crashuje, logi:

http://wklej.to/YjP5G

 


  • +
  • -
  • 0

Wykonam pluginy, paczki (amxx) kontakt GG: 32263742, Steam: https://steamcommuni...om/id/vankillah

Multi-Head.pl


#2 grankee

    Godlike

  • Support Team

Reputacja: 517
Wszechwiedzący

  • Postów:1 500
  • Lokalizacja:Radom
Offline

Napisano 02.04.2016 03:20


UstawPerk(id, 0, 0, 0);

Tu ustawiasz perk na 0, ale tutaj


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

Już zaczynasz od 1, czyli perk 0 nie istnieje? A jednak wyżej wywołujesz funkcję z wartością 0.

Pokaż tablice z perkami, ich wartosciami min i max oraz nazwami.

 


  • +
  • -
  • 1

#3 vanillah

    nie wiem

  • Autor tematu
  • Użytkownik

Reputacja: 125
Zaawansowany

  • Postów:324
  • GG:
  • Lokalizacja:Polska
Offline

Napisano 02.04.2016 09:02

tablice z perkami?


  • +
  • -
  • 0

Wykonam pluginy, paczki (amxx) kontakt GG: 32263742, Steam: https://steamcommuni...om/id/vankillah

Multi-Head.pl


#4 grankee

    Godlike

  • Support Team

Reputacja: 517
Wszechwiedzący

  • Postów:1 500
  • Lokalizacja:Radom
Offline

Napisano 02.04.2016 12:05


min_wartosci_perkow[perk]

max_wartosci_perkow[perk]


pluginy_perkow[perk_gracza[id]]

Gdzieś u góry masz:

min_wartosci_perkow[xx]=...
max_wartosci_perkow[xx]=...
pluginy_perkow[xx]=...
perk_gracza[xx]=...

i to sa wlasnie te tablice


  • +
  • -
  • 0

#5 vanillah

    nie wiem

  • Autor tematu
  • Użytkownik

Reputacja: 125
Zaawansowany

  • Postów:324
  • GG:
  • Lokalizacja:Polska
Offline

Napisano 02.04.2016 14:11

 


min_wartosci_perkow[perk]

max_wartosci_perkow[perk]


pluginy_perkow[perk_gracza[id]]

Gdzieś u góry masz:

min_wartosci_perkow[xx]=...
max_wartosci_perkow[xx]=...
pluginy_perkow[xx]=...
perk_gracza[xx]=...

i to sa wlasnie te tablice

 

new nazwy_perkow[MAX_ILOSC_PERKOW+1][MAX_WIELKOSC_NAZWY+1],
     opisy_perkow[MAX_ILOSC_PERKOW+1][MAX_WIELKOSC_OPISU+1],
     max_wartosci_perkow[MAX_ILOSC_PERKOW+1],
     min_wartosci_perkow[MAX_ILOSC_PERKOW+1],
     pluginy_perkow[MAX_ILOSC_PERKOW+1],
     ilosc_perkow;

     
new nazwa_gracza[33][64],
     klasa_gracza[33],
     nowa_klasa_gracza[33],
     poziom_gracza[33],
     doswiadczenie_gracza[33],
     perk_gracza[33],
     wartosc_perku_gracza[33];

  • +
  • -
  • 0

Wykonam pluginy, paczki (amxx) kontakt GG: 32263742, Steam: https://steamcommuni...om/id/vankillah

Multi-Head.pl


#6 WeBsteR

    Wszechwidzący

  • Użytkownik

Reputacja: 57
Pomocny

  • Postów:297
  • Imię:dawid
  • Lokalizacja:Rzeszów
Offline

Napisano 06.04.2016 14:27

Tutaj masz 2 "funkcję" naprawione, bez errorów :)

   http://amxx.pl/topic...ustawnowaklase/


  • +
  • -
  • 0
Zabijaka Gryps to mój autorytet!




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

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