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

Opuznienie w czasie wykonywania funkcij


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

#1 Stachuu :D ??

    Wszechobecny

  • Użytkownik

Reputacja: 237
Wszechwidzący

  • Postów:476
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Karsznice
Offline

Napisano 22.01.2012 20:00

witam

w 1 menu wywoluje pewna funkcje

case 0:
        {
            zwroc_graczy(id2,id)
            zwroc_graczy(id,id2)
            }
oraz
public zwroc_graczy(id,id2)
{
    if(!g_wojnasqlOK)ColorChat(id,GREEN,"[*BLAD*]^x01 Baza nie wczytana")
   
    static motd_g[512],len
    len=0
    new name[48]
    len+= formatex(motd_g[len],sizeof motd_g- 1 - len,"UPDATE `%s` SET `atakujacy`='%s'",g_sqlWojTable,nazwa_gildi[id2])
    for(new i=0, n=0; i<=32; i++)
    {
        if(!is_user_connected(i))
            continue;
        if(id==i)
            continue;
        if(n>=4)
            continue;
        if(ma_isc[i])
            continue;
       
        if(equali(nazwa_gildi[id],nazwa_gildi[i])){
            n++
            ma_isc[i] = 1
            get_user_name(i, name, 47)
            replace_all(name, 47, "'", "\'");
            len+= formatex(motd_g[len],sizeof motd_g- 1 - len,", `czlonek%i`='%s'",n,name)
            //client_cmd(i, "Connect 195.114.0.96:27041; password legiondc")
        }
    }
    get_user_name(id, name, 47)
        replace_all(name, 47, "'", "\'");
    len+= formatex(motd_g[len],sizeof motd_g- 1 - len," WHERE `gildia`='%s' AND `zalozyciel`='%s' ",nazwa_gildi[id], name)
   
    SQL_ThreadQuery(g_SqlWojna, "Save_kogo",motd_g);
    ma_isc[id] = 1
}


jednak przy duzej ilosci graczy troche laguje serwer moje pytanie czy można opóźnić w czasie wykonywanie 1 z funkcji.
Wiem ze to oferuje set_task lecz nie wiem jak go tutaj uzyc

Inaczej
zwroc_graczy(id2,id) /// bez zmian wykonuje od razu
zwroc_graczy(id,id2) /// wykonuje po czasie 2 sekund

lub czy to odciąży w jakimś stopniu serwer. Oraz czy da sie zoptymalizować bardziej public zwroc_graczy
  • +
  • -
  • 0

#2 Fili:P

    Godlike

  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 22.01.2012 20:10


case 0:
{
zwroc_graczy(id2,id)
static Float:Last[33];
new Float:Now = get_gametime();
if((Now - Float:Last[id]) >= 2.0)
{
if(is_user_connected(id))
{
zwroc_graczy(id,id2)
}
}
}

  • +
  • -
  • 1

#3 Nakupenda.

    Not yet YODA

  • Użytkownik

Reputacja: 137
Zaawansowany

  • Postów:451
  • Imię:Paweł
  • Lokalizacja:Warszawa
Offline

Napisano 22.01.2012 20:14

new index[2]
index[0] = id
index[1] = id2
zwroc_graczy(index[1],index[0])
index[0] = id2
index[1] = id
set_task(2.0, "zwroc_graczy", 6, index, 4)


public zwroc_graczy(index[])
{
new id = index[0]
new id2 = index[1]
//...


nie wiem czy dobrze, powinno być ok ale zawsze masz podstawy :D
  • +
  • -
  • 1




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

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