←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Kilka pytań odnośnie kodu.

Zablokowany

  • +
  • -
ELOS - zdjęcie ELOS 19.08.2011

Witam mam kilka pytań odnośnie kilku kodów oraz kilka pytań ogólnych ; p
To tak chciał bym się dowiedzieć jak wysłać dane z pliku nvalut do bazy danych aby z bazy danych była możliwość utworzenia php który będzie pokazywał określone dane.
Chodzi mi dokładniej o coś w tym stylu:
www.adresxd.pl/nazwapliku%nazwagracza
czy coś w tym stylu i w tym linku wyświetli nam zmienną z wartością np:
ma_quest_done[id] == x

No dobra kolejna rzecz.

Mam taki mod
public DajPrzedmiot(id)
{
new attacker = read_data(1)
if(random_num(1,10) == 2) // 1/10 szans że będzie losowany jakiś przedmiot
{
//kod
}

i jak zrobić aby if był włączany tylko gdy my kogoś zabijamy bo teraz nawet spełnia ifa gdy wpiszemy kill i chyba gdy nas ktoś zabije.
event jakiego używam
register_event("DeathMsg", "DajPrzedmiot", "abe")

No i ostatnie pytanie
Mam taki kod
public MenuGraczy(id)
{
new menu = menu_create("Wybierz gracza:", "Gracz_handler");

for(new i=0, n=0; i<=32; i++)
{
if(!is_user_connected(i))
continue;
gracz_id[n++] = i;
new nazwa_gracza[64];
get_user_name(i, nazwa_gracza, 63)
menu_additem(menu, nazwa_gracza, "0", 0);
}
menu_display(id, menu);
}

public Gracz_handler(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_CONTINUE;
}

wybrany = gracz_id[item];
get_user_name(wybrany, name, 32);

if(diamenty[id] >= 1)
{
console_cmd(id, "messagemode ile diamentow");
}

return PLUGIN_HANDLED;
}

No i jest taki problem że jak się patrze za długo na menu a ktoś wyjdzie lub wejdzie w tym samym czasie to zmienia id gracza przykładowo.

Menu Graczy
1. xD
2. Lol
3. Zal?

no i gdy patrzymy się na powyższe menu a gracz xD wyjdzie w chwili kiedy my jeszcze myślimy to rzecz otrzymuje gracz Zal? zamiast lol, czy da się to jakaś naprawić ?
Odpowiedz

Dwdov - zdjęcie Dwdov 19.08.2011

Nie znam ani troszkę PHP, ale raczej czytanie z nvaulta nie będzie możliwe (tu po chwili namysłu dochodzę do wniosku że jednak PHP czytanie z plików np. txt na pewno posiada) bo nie ma do tego API pod php, dlatego używa się MySQL. Co do funkcji death, dodaj

if( !attacker )
return PLUGIN_HANDLED;

Co do menu, wystarczy je odświeżyć kiedy ktoś wychodzi z serwera. Przecież to proste.
#edit
a i jeszcze to co dopisał R3X, wtedy nie będzie się wykonywało kiedy gracz zabije się sam np. granatem. Co do is_user_connected to nie wiem czy dla id = 0 zwraca to false czy true ; p

if( !attacker || attacker == read_data(2) )
return PLUGIN_HANDLED;

Użytkownik Dawedov edytował ten post 19.08.2011 15:53
Odpowiedz

  • +
  • -
R3X - zdjęcie R3X 19.08.2011

co do nvault i mysql to jeśli zależy Ci na natychmiastowego portu to sprawdź: Odczyt z pliku .vault - AMXX.pl: Support AMX Mod X
struktury danych są różne, więc automatycznej konwersji nie ma; musisz zapewnić tabele i odpowiednio przetworzyć dane z vault

wpisanie kill dostarcza id gracza jako atakującego i ofiarę, więc można to wychwycić warunkiem, poza tym gracza mogą zabić byty albo świat (upadek z wysokości), więc attacker to nie zawsze gracz
public DajPrzedmiot(id)
{
new attacker = read_data(1)
if(!is_user_connect(attacker) || attacker == read_data(2)) return;


co do menu to musisz w client_putinserver() i client_disconnect() zauktualizować menu wszystkim je przeglądającym, do sprawdzenia użyj player_menu_info, a ostatnio wyświetlone menu przechowaj w tablicy [33]
Odpowiedz

  • +
  • -
G[o]Q - zdjęcie G[o]Q 19.08.2011

R3X co do menu to nie koniecznie bo jak dodamy to kazdej opcji menu nazwe gracza w dodatkowym info i potem poszukamy gracza w callbacku po nazwie a nie po id to zostanie wybrany wlasciwy gracz lub poprostu nic sie nie stanie bo nie znajdzie gracza jesli chcielismy wybrac tego ktory wyszedl :D
Odpowiedz

  • +
  • -
ELOS - zdjęcie ELOS 19.08.2011

Z tym odświeżaniem menu będę miał problemy ale zaraz coś spróbuje skonstruować i wrzucę do tego tematu aby się upewnić czy działa.
Odpowiedz

  • +
  • -
A może sma? - zdjęcie A może sma? 19.08.2011

Po prostu sprawdź czy killer == victim, jeżeli tak to return :P
Odpowiedz

  • +
  • -
ELOS - zdjęcie ELOS 19.08.2011

R3X co do menu to nie koniecznie bo jak dodamy to kazdej opcji menu nazwe gracza w dodatkowym info i potem poszukamy gracza w callbacku po nazwie a nie po id to zostanie wybrany wlasciwy gracz lub poprostu nic sie nie stanie bo nie znajdzie gracza jesli chcielismy wybrac tego ktory wyszedl

To bardzo przydatne czy ktoś może coś takiego pomóc skonstruować?
Użytkownik ELOS edytował ten post 19.08.2011 16:03
Odpowiedz

  • +
  • -
G[o]Q - zdjęcie G[o]Q 19.08.2011

ostatnio jak robilem pare rzeczy z diablo to zauwazylem ze podobna konstrukcja byla w diablo_daj_wez R3X'a wiec poszukaj sma tam kod to jest praktycznie tylko menu :D wiec masz co chcesz
Odpowiedz

  • +
  • -
ELOS - zdjęcie ELOS 19.08.2011

ok + dla ciebie
Odpowiedz
Zablokowany