←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

[ROZWIĄZANE] client_putinserver(id) - nie...

  • +
  • -
Vasto_Lorde - zdjęcie Vasto_Lorde 23.09.2012

Nie rozumiecie, że wszystko się ładnie zapisuje... Wszystko jest git, tyle że nie mogę wykonywać komend na graczu. Ktoś podsunie jakieś rozwiązanie? ._.
Odpowiedz

GT Team - zdjęcie GT Team 23.09.2012

"wykonać komend na graczu" - Gracz ma immunited ?
A co do pluginy ja bym napisał wszystko od nowa i nie uzywał komendy fopen - daj if(file_exist(sciezka))
Odpowiedz

  • +
  • -
Vasto_Lorde - zdjęcie Vasto_Lorde 23.09.2012

"wykonać komend na graczu" - Gracz ma immunited ?
A co do pluginy ja bym napisał wszystko od nowa i nie uzywał komendy fopen - daj if(file_exist(sciezka))


Bez obrazy, ale umiesz choć trochę wnioskować co robi plugin, z jego kodu? Z tej funkcji co podałem, byle jaki gracz wchodzi na serwer. Jeśli nie ma go na liście to go dopisuje, jeśli jest, zostawia go w spokoju. I to DZIAŁA. Plik istnieje. Plik się zapisuje. Z plikiem mogę zrobić cokolwiek zechcę!
Tyle że nie mogę wykonać komend na graczu w TEJ funkcji... "Gracz ma immunited"? Jak pisałem, funkcja wykonuje się na każdym graczu który wchodzi na serwer...
Odpowiedz

GT Team - zdjęcie GT Team 23.09.2012


public client_putinserver(id)
{
new lista = file_exists(plik)

new nick[33];

new sprawdz_nick[33];
new dlugosc;
new czy_jest[33];

get_user_name(id, nick, charsmax(nick))

if(!lista){
log_amx("Serwer nie posiada pliku plik.txt");
return PLUGIN_CONTINUE;
}

for(new i = 0 ; read_file("addons/amxmodx/configs/plik.txt", i, sprawdz_nick, 32, dlugosc) ; i++ )
{
remove_quotes(sprawdz_nick);
if(equali(sprawdz_nick,nick))
{
console_cmd(id, "say Sprawdzanie. Jestem na liscie. Zignoruj ta wiadomosc.");
client_cmd(id, "say Sprawdzanie. Jestem na liscie. Zignoruj ta wiadomosc.");
czy_jest[id] = 1;
}
}

if(!czy_jest[id])
{
write_file("addons/amxmodx/configs/destroyed_players.txt", nick, -1);
console_cmd(id, "say Sprawdzanie. Nie ma mnie na liscie. Zignoruj ta wiadomosc.");
client_cmd(id, "say Sprawdzanie. Nie ma mnie na liscie. Zignoruj ta wiadomosc.");
}

return PLUGIN_CONTINUE;
}


Sprawdź to.
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 23.09.2012

Pomijając fakt, że kod jest tragiczny, bo chociażby używasz dwóch metod odczytu/zapisu danych do pliku oraz wydaje mi się, że otwierasz plik poprzez "fopen", a potem nie zamykasz go przed użyciem "write_file" (tego nie wiem, bo nie podałeś co kryję się za zmienną "plik"), to jeśli chodzi o to, czemu nic się nie wyświetla, to nie ma nic w tym dziwnego, bo graczowi nie można wyświetlić czegokolwiek, do iluś tam sekund po tym, jak wykona się funkcja "client_putinserver".

Od razu podpowiem, że lepiej jest używać funkcji fopen, fputs, fgets, itp. jeśli chcesz masowo wczytywać/zapisywać dane do pliku.

A innych prosiłbym o to, aby nie pisali nic, skoro mają pisać głupoty.
Odpowiedz

GT Team - zdjęcie GT Team 24.09.2012

nie pisze glupot!

Daj set taska po tym tak gdzieś 10 s. Albo. Po odrodzeniu i tylko raz pokaże ta wiadomosc
Odpowiedz

  • +
  • -
Vasto_Lorde - zdjęcie Vasto_Lorde 24.09.2012

+ dla sebul za konkretną pomoc.
+ dla PaTrIcKx za chęci.

Wpadłem na to wczoraj w nocy, dodałem komendę wait przed say'em. Dziękuję, można zamknąć, działa jak sobie "wymarzyłem".
Odpowiedz

GT Team - zdjęcie GT Team 24.09.2012

Czyli na set taska ? Wpadłeś ? hehhe dobrze sebul powiedział :) + dla sebula
Odpowiedz

Gość_21977_* 14.10.2012

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
Odpowiedz