Jump to content


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

Posted Image Posted Image

Guest Message by DevFuse
 

Set_task opóżnienie


  • You cannot start a new topic
  • You cannot reply to this topic
11 replies to this topic

#1 xCiacho

    Początkujący

  • Użytkownik

  • Reputacja: -1
    Nowy

  • Postów:17
  • Lokalizacja:Wągrowiec
Offline

Posted 02.07.2014 10:56

Witam serdecznie czy jest możliwość opóźnienia set_tasku na początku rundy?

 

do poniższego kodu chciałbym dodać taska aby po 10-15 sekundach dopiero wczytało lvl  tylko czy to nie popsuje  jeżeli gracz wejdzie i w ciągu tych np 5 sekundach wyjdzie serwera to zapisze mu lvl tak jak dobrze rozumeim?

 

public client_connect( id )
{
PXP[ id ] = 0
LoadData( id )
}
public client_disconnect( id )
{
SaveData( id )
PXP[ id ] = 0
PLEVEL[ id ] = 0
PKS[ id ] = 0
}

  • +
  • -
  • 0

#2 lexar

    Wszechwiedzący

  • Power User

  • Reputacja: 63
    Pomocny

  • Postów:502
  • GG:
  • Lokalizacja:Wyspa Kucyków
Offline

Posted 02.07.2014 11:07

To po prostu robisz taska na załadowanie się levela który włączy się po upłynięciu 15 sekund

 

set_task(15.0, "client_connect")

 

Z disconnectem nie musisz nic robić ;)


  • +
  • -
  • 1

#3 xCiacho

    Początkujący

  • Autor tematu
  • Użytkownik

  • Reputacja: -1
    Nowy

  • Postów:17
  • Lokalizacja:Wągrowiec
Offline

Posted 02.07.2014 11:29

No ale co się stanie jeżeli przed upływem 15 sekund gracz wyjdzie z serwera? zapisze mu się jako lvl 1 :/


  • +
  • -
  • 0

#4 lexar

    Wszechwiedzący

  • Power User

  • Reputacja: 63
    Pomocny

  • Postów:502
  • GG:
  • Lokalizacja:Wyspa Kucyków
Offline

Posted 02.07.2014 11:47

No jak? Gracz wchodzi na serwer i wybiera klase z 1 lvlem, po 15 sekundach plugin wczytuje wszystkie lvle i gracz już ma lvl który miał przedtem. Jeżeli wyjdzie z gry do 15 sekund od wejścia na serwer to będzie miał 1 lvl na każdej klasie bo plugin wczyta wszystkie lvle dopiero po 15 sekundach od wejścia na serwer. Myślę, że to wszystko tak się potoczy xD


  • +
  • -
  • 1

#5 BlackPerfum

    Pseudo interakcja??

  • Power User

  • Reputacja: 459
    Wszechobecny

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

Posted 02.07.2014 12:32


No jak? Gracz wchodzi na serwer i wybiera klase z 1 lvlem, po 15 sekundach plugin wczytuje wszystkie lvle i gracz już ma lvl który miał przedtem. Jeżeli wyjdzie z gry do 15 sekund od wejścia na serwer to będzie miał 1 lvl na każdej klasie bo plugin wczyta wszystkie lvle dopiero po 15 sekundach od wejścia na serwer. Myślę, że to wszystko tak się potoczy
Tego niestety wiedziec nie możesz ;D Obawy autora tematu są uzasadnione. Prosimy o pokazanie kodu zapisu danych a powiemy ci czy musisz sie bać. Możesz wczytac dane wcześniej np. w client_connect ale pokazać je graczu dopiero po 10~15 sekundach ;D
  • +
  • -
  • 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

#6 DarkGL

    Nie oddam ciasteczka !

  • Administrator

  • Reputacja: 6,559
    Godlike

  • Postów:11,993
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Posted 02.07.2014 12:34

Wystarczy trzymać gdzieś czy dane zostały wczytane wtedy zapisuj ;)


  • +
  • -
  • 2

#7 xCiacho

    Początkujący

  • Autor tematu
  • Użytkownik

  • Reputacja: -1
    Nowy

  • Postów:17
  • Lokalizacja:Wągrowiec
Offline

Posted 02.07.2014 12:35

o tak wygląda zapis i odczyt

public SaveData(id)
{
new nick[32];
get_user_name(id, nick, 31);
 
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s-Mod",nick)
format(vaultdata,255,"%i#%i#",PXP[id],PLEVEL[id])
nvault_set(g_vault,vaultkey,vaultdata)
nvault_set(g_vault2,vaultkey,vaultdata)
return PLUGIN_CONTINUE
}
 
public LoadData(id)
{
new nick[32];
get_user_name(id, nick, 31);
 
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s-Mod",nick)
format(vaultdata,255,"%i#%i#",PXP[id],PLEVEL[id])
nvault_get(g_vault,vaultkey,vaultdata,255)
 
replace_all(vaultdata, 255, "#", " ")
 
new playerxp[32], playerlevel[32]
 
parse(vaultdata, playerxp, 31, playerlevel, 31)
 
PXP[id] = str_to_num(playerxp)
PLEVEL[id] = str_to_num(playerlevel)
 
return PLUGIN_CONTINUE
}

  • +
  • -
  • 0

#8 BlackPerfum

    Pseudo interakcja??

  • Power User

  • Reputacja: 459
    Wszechobecny

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

Posted 02.07.2014 12:38

W takim wypadku dobrze że sie o to martwiłeś bo zapisało by ci 1 lvl :( . Wyjście z sytuacji:

Wystarczy trzymać gdzieś czy dane zostały wczytane wtedy zapisuj

lub

Możesz wczytac dane wcześniej np. w client_connect ale pokazać je graczu dopiero po 10~15 sekundach ;D


  • +
  • -
  • 1
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

#9 szelbi

    Hero

  • Power User

  • Reputacja: 373
    Wszechpomocny

  • Postów:1,032
  • Steam:steam
  • Imię:Norbert
  • Lokalizacja:Częstochowa
Offline

Posted 02.07.2014 12:45

Wystarczy zrobić najzwyklejszą zmienną i przy wczytaniu ustawić na true, a kiedy gracz wychodzi i jest ustawiona na true to zapisać i zmienić na false, a jeśli nie to po prostu nic nie robić.


  • +
  • -
  • 1

#10 xCiacho

    Początkujący

  • Autor tematu
  • Użytkownik

  • Reputacja: -1
    Nowy

  • Postów:17
  • Lokalizacja:Wągrowiec
Offline

Posted 02.07.2014 12:51

Nie chciałbym już nie zepsuć ... bo szkoda mi już czasu na to


  • +
  • -
  • 0

#11 GwynBleidD

    Godlike

  • Przyjaciel

  • Reputacja: 1,869
    Godlike

  • Postów:3,066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Posted 02.07.2014 13:49

new data_loaded[33];
if (data_loaded[id]) {
    // Zapisz tutaj dane
}
// Po załadowaniu danych ORAZ gdy danych w nvault nie znaleziono:
data_loaded[id] = true;
public client_connect(id) {
    data_loaded[id] = false;
}

  • +
  • -
  • 1

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#12 xCiacho

    Początkujący

  • Autor tematu
  • Użytkownik

  • Reputacja: -1
    Nowy

  • Postów:17
  • Lokalizacja:Wągrowiec
Offline

Posted 02.07.2014 14:07

Wybacz GwynBlade wywala function "SaveData" should return a value 

 

public client_connect( id )
{
data_loaded[id] = false;
}

public SaveData(id)
{
if (data_loaded[id]) {
new nick[32];
get_user_name(id, nick, 31);
 
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s-Mod",nick)
format(vaultdata,255,"%i#%i#",PXP[id],PLEVEL[id])
nvault_set(g_vault,vaultkey,vaultdata)
nvault_set(g_vault2,vaultkey,vaultdata)
return PLUGIN_CONTINUE
} 
}
 
public LoadData(id)
{
new nick[32];
get_user_name(id, nick, 31);
 
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s-Mod",nick)
format(vaultdata,255,"%i#%i#",PXP[id],PLEVEL[id])
nvault_get(g_vault,vaultkey,vaultdata,255)
 
replace_all(vaultdata, 255, "#", " ")
 
new playerxp[32], playerlevel[32]
 
parse(vaultdata, playerxp, 31, playerlevel, 31)
 
PXP[id] = str_to_num(playerxp)
PLEVEL[id] = str_to_num(playerlevel)
data_loaded[id] = true;
return PLUGIN_CONTINUE
}

  • +
  • -
  • -1




  


1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users

Coinsy CSGOPolygon Za SMS, PSC , Przelew - CoinSell.pro
Skiny do CS:GO za SMS, PSC, Przelew - CSGOPaka.com
Automatyczny Bot Levelowania Steam - LVLUPSteam.com
CSGO Gambling Sites and Free Betting Codes - DreamCodes.gg

Sign In