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
 

Willson - zdjęcie

Willson

Rejestracja: 20.12.2011
Aktualnie: Nieaktywny
Poza forum Ostatnio: 29.06.2016 16:04
-----

#494250 [ROZWIĄZANE] Wywołanie działania przy strzelaniu

Napisane przez Droso w 27.12.2012 11:12

http://amxx.pl/topic...rzy-strzelaniu/
Patrz CurWeapon.
CurWeapon wykonuje się podczas zmiany broni, strzelania (gdy się naboje zmieniają, np. noża nie wykryje), zoomowania.
Wystarczy sprawdzić czy naciskany jest przycisk od strzelania :D
if(get_user_button(id) & IN_ATTACK)
//strzela
else
// nie strzela
  • +
  • -
  • 2


#314841 [5.9l] Optymalizacja połączeń z bazą

Napisane przez sebul w 29.10.2011 12:19

Po dodaniu tego fixa do swojego moda, plugin będzie wysyłał o 1 zapytanie do bazy od gracza mniej, czyli przy 32 slotach, będzie to aż o 32 zapytań mniej, do tego nowym graczom nie będą się tworzyć od razu wszystkie klasy, no i ogólnie nowy kod jest czytelniejszy :D

FIX NIE WYMAGA RESETU LVLI I EXPA!

INSTRUKCJA
Spoiler


Polecam także wgranie tego fixa (już po wykonaniu fixa z tego tematu):
- http://amxx.pl/topic...wanie-sie-klas/
czyli szukamy
formatex(q_command, 511, "CREATE TABLE IF NOT EXISTS `%s` (`nick` VARCHAR(48), `ip` VARCHAR(32), `sid` VARCHAR(32), `klasa` INT(2), `lvl` INT(3) DEFAULT 1, `exp` INT(9) DEFAULT 0, `str` INT(3) DEFAULT 0, `int` INT(3) DEFAULT 0, `dex` INT(3) DEFAULT 0, `agi` INT(3) DEFAULT 0) DEFAULT CHARSET `utf8` COLLATE `utf8_general_ci`", g_sqlTable);

i zamieniamy na
new typ_primary[5];
switch(get_cvar_num("diablo_sql_save")) {
case 0: typ_primary = "nick";
case 1: typ_primary = "ip";
case 2: typ_primary = "sid";
default: typ_primary = "nick";
}
formatex(q_command, 511, "CREATE TABLE IF NOT EXISTS `%s` (`nick` VARCHAR(48), `ip` VARCHAR(32), `sid` VARCHAR(32), `klasa` INT(2), `lvl` INT(3) DEFAULT 1, `exp` INT(9) DEFAULT 0, `str` INT(3) DEFAULT 0, `int` INT(3) DEFAULT 0, `dex` INT(3) DEFAULT 0, `agi` INT(3) DEFAULT 0, PRIMARY KEY (`%s`, `klasa`)) DEFAULT CHARSET `utf8` COLLATE `utf8_general_ci`", g_sqlTable, typ_primary);


Jeśli chcesz pozbyć się niepotrzebnych wpisów z bazy, to wykonaj takie zapytanie (np. w phpMyAdmin)
DELETE FROM `nazwa_tabeli` WHERE `exp`='0'
Oczywiście zamiast nazwa_tabeli, wpisz swoją nazwę tabeli jaką masz w bazie.


Po dodaniu fixa nie dodawać:
- http://amxx.pl/topic...zie-nowy-gracz/
- http://amxx.pl/topic...resetu-exp-sql/ (także już nie potrzebne, po tym fixie wystarczy kolejno dodawać nowe klasy)
Jeśli ktoś się nie zna, nie powinien także dodawać:
- http://amxx.pl/topic...klas-nowe-menu/
- http://amxx.pl/topic...do-diablo-moda/

Proszę na razie nie wgrywać, kodu jest dużo, więc ciężko to tak za jednym razem ogarnąć, możliwe, że jeszcze o czymś zapomniałem, więc muszę to przetestować na czystym modzie. Oczywiście jeśli ktoś chce, może mi w tym pomóc ;]

Plik z instrukcją:
Załączony plik  instrukcja.txt   24,3 KB  327 Ilość pobrań

  • +
  • -
  • 17


#413126 [ROZWIĄZANE] /komenda [tekst]

Napisane przez sebul w 21.05.2012 20:31

Chyba jednak mały mój błąd, a raczej nie dopatrzenie z mojej strony, chodzi o początek Twojego postu, trzeba inaczej rejestrować takie zdarzenie, a dokładniej
register_clcmd("say", "komenda");
(...)
public komenda(id) {
new argument[128];
read_argv(1, argument, 127);

if(equal(argument, "/komenda", 8))
strbreak(argument, argument, 127, player_tekst[id], 127);
}

Zresztą już gdzieś podobny kod pisałem, chyba przy jakimś pluginie do coda.

EDIT:
http://amxx.pl/topic...wy/#entry349489 może Ci się przydać.
  • +
  • -
  • 1


#413219 [ROZWIĄZANE] /komenda [tekst]

Napisane przez sebul w 22.05.2012 10:40

Jest błąd, bo jeśli ciąg znaków przypisujesz poprzez = to długość tablicy z tymi znakami nie może być większa od tej co próbujesz do niej coś przypisać. Czyli jeszcze inaczej, skoro "player_tekst[priv]" ma 128 znaków, to nie możesz przypisać tutaj tablicy z 192 znakami.

public komenda(id, level, cid)
{
if (!cmd_access(id, level, cid, 3))
return PLUGIN_HANDLED

new name[32]
read_argv(1, name, 31)
new priv = cmd_target(id, name, 0)

if (!priv)
return PLUGIN_HANDLED

if (id && id != priv)
read_argv(2, player_tekst[priv], 127);

return PLUGIN_HANDLED
}

  • +
  • -
  • 1


#413318 [ROZWIĄZANE] /komenda [tekst]

Napisane przez sebul w 22.05.2012 15:51

Słowa musisz wpisać w "", albo próbuj z "read_args" tylko wtedy musisz się pozbyć dwóch pierwszych argumentów, ale to już pisałem jak się robi, a dokładniej za pomocą "strbreak".
  • +
  • -
  • 1


#375183 [ROZWIĄZANE] zakończenie mapy

Napisane przez kapi10072 w 04.03.2012 15:36

Spróbuj pobrać tak :)

new Nextmap[32];
get_cvar_string("amx_nextmap", Nextmap, 31);
server_cmd("changelevel %s", Nextmap);

  • +
  • -
  • 1


#364601 [ROZWIĄZANE] Nie losuje gracza

Napisane przez hardbot w 14.02.2012 20:37

Dlaczego task pobiera flagę przy ID?
set_task( 180.0 , "voidLosuj" ,_,_,_,.flags = "d");
lub nie lepiej
set_task( 180.0 , "voidLosuj" ,_,_,_,"d");

nie prościej użyć tego
#include <amxmodx>

#define PLUGIN "Losowanie"
#define AUTHOR "[H]ARDBO[T]"
#define VERSION "1.0"

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
set_task(180.0, "voidLosuj",_,_,_,"d");
}

public voidLosuj()
{
new iGracze[32], iNum, iListPower=0;
new bool:isProPlayer[33]=false;
new IleGraczy=1; //ile graczy ma wylosowac
get_players(iGracze, iNum, "ach"); //bez hltv ,niezywych graczy i botow

if(iNum >= 1)
{
while(iListPower < IleGraczy)
{
new id = iGracze[random_num(1, iNum)];
isProPlayer[id] = true;
iListPower++;
}
}
for(new id=0; id<iNum; id++)
{
new i = iGracze[id];
if(isProPlayer[i])
{
//wylosowany
}
else
{
//reszta
}
}
}



#363030 [Diablomod] Nie da sie ustawic hp

Napisane przez Hiroshima w 12.02.2012 10:11

Automatyczna wiadomość


Ten temat został przeniesiony z forum:
AMX Mod XProblemy
do
ModyDiablo ModProblemy


  • +
  • -
  • 1