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
 

Amaroq - zdjęcie

Amaroq

Rejestracja: 28.07.2012
Aktualnie: Przegląda temat Jak grać na odnodze po TT na Tra...
Poza forum Ostatnio: 06.05.2021 19:01
*****

#765674 [ROZWIĄZANE] Wyciągnięcie danych z tablicy 2d

Napisane przez Amaroq on 07.04.2020 15:59

Ten sposób z 

sizeof(gamesData) / sizeof(gamesData)

Nie działa poprawnie, dokładniej to pokazuje tylko 1 pozycję z 3 możliwych. Ale te struktury to sobie zapożyczę bo nawet spoko sprawa. Dzięki za pomoc.

 

Powinno być

sizeof(gamesData) / sizeof(gameData)

Wtedy zadziała poprawnie :P


  • +
  • -
  • 3


#727249 Pytanie dotyczące menu

Napisane przez Amaroq on 14.06.2016 14:40

Typ sposobem, tworzonego menu tego nie dokonasz

W nowym menu można to zrobić w bardzo prosty sposób.

menu_setprop(menu, MPROP_EXIT, MEXIT_NEVER);

  • +
  • -
  • 1


#722886 Problem z Invalid weapon id

Napisane przez Amaroq on 15.03.2016 21:58

#include <amxmodx>
#include <codmod>
#include <hamsandwich>
#include <cstrike>

#if !defined MAX_PLAYERS
	#define MAX_PLAYERS 32
#endif

#if !defined CSW_LAST_WEAPON
	#define CSW_LAST_WEAPON CSW_P90
#endif

new const nazwa[]   = "Szeregowy";
new const opis[]    = "Dostaje losowa bron co runde";
new const bronie    = 0;
new const zdrowie   = 5;
new const kondycja  = 5;
new const inteligencja = 0;
new const wytrzymalosc = 0;
 
new bool:ma_klase[MAX_PLAYERS+1];
new bron_gracza[MAX_PLAYERS+1];

new const g_iNotWeapons = (1<<2)|(1<<CSW_KNIFE)|(1<<CSW_SMOKEGRENADE)|(1<<CSW_FLASHBANG)|(1<<CSW_HEGRENADE)|(1<<CSW_C4)
new const g_iDefaultWeapon[CsTeams] = {0, (1<<CSW_GLOCK18), (1<<CSW_USP), 0}

new const g_iMaxAmmo[CSW_LAST_WEAPON+1] = {0, 52, 0, 90, 1, 32, 1, 100, 90, 1, 120, 100, 100, 90, 90, 90, 100, 120, 30, 120, 200, 32, 90, 120, 90, 2, 35, 90, 90, 0, 100};
 
public plugin_init()
{
    register_plugin(nazwa, "1.0", "Webster");

    cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
    RegisterHam(Ham_Spawn, "player", "Resp", 1);
}
 
public cod_class_enabled(id)
{
    ma_klase[id] = true;
    Resp(id);
}
 
public cod_class_disabled(id)
{
    cod_take_weapon(id, bron_gracza[id]);
    bron_gracza[id] = 0;
    ma_klase[id] = false;
}
 
public Resp(id)
{
	if(ma_klase[id] && is_user_alive(id))
	{
		new iPlayerWeapon = bron_gracza[id];
		new CsTeams:csTeam = cs_get_user_team(id);
 
		if(iPlayerWeapon)
			cod_take_weapon(id, iPlayerWeapon);
		
		do
		{
			iPlayerWeapon = random_num(CSW_P228, CSW_LAST_WEAPON);
		} while(((1<<iPlayerWeapon) & g_iNotWeapons) || ((1<<iPlayerWeapon) & g_iDefaultWeapon[csTeam]))
 
		cod_give_weapon(id, iPlayerWeapon);
		cs_set_user_bpammo(id, iPlayerWeapon, g_iMaxAmmo[iPlayerWeapon]);
		
		bron_gracza[id] = iPlayerWeapon;
	}
	return HAM_IGNORED;
}

  • +
  • -
  • 1


#697992 Możliwość blokowania wyświetlania informacji z consoli gracza ?

Napisane przez Amaroq on 19.04.2015 12:39

Moim zdaniem ten warunek

if(!containi(authid,"STEAM_ID") && !containi(authid,"VALVE"))
        return PLUGIN_CONTINUE

powinien wyglądać tak

if(containi(authid,"STEAM_ID") == -1 && containi(authid,"VALVE") == -1)
        return PLUGIN_CONTINUE

  • +
  • -
  • 3


#697941 [CS:GO] Perm Mute

Napisane przez Amaroq on 19.04.2015 01:54

Moim zdaniem to lepiej byłoby napisać ten plugin już pod nową składnię, gdyż SM 1.7 został już stabilną wersją. Przydałoby się poprawić/zmienić parę rzeczy.

new String:nick[MAXPLAYERS+1][33];

na

new String:nick[MAXPLAYERS+1][MAX_NAME_LENGTH];

Zamienić to

RegConsoleCmd("mutemenu", MuteMenu);

na

RegAdminCmd("mutemenu", MuteMenu, ADMFLAG_GENERIC);

w związku z powyższym usunąć to

public Action:MuteMenu(client,args)
{
    if(CheckCommandAccess(client, "generic_admin", ADMFLAG_RESERVATION, false))    MuteMenu2(client);
}

i zamienić

public Action:MuteMenu2(client)

na

public Action:MuteMenu(client,args)

Usunąć to

for(new client = 1; client <= MaxClients; client++)
        {
            if(IsClientInGame(client))
            {
                if(AreClientCookiesCached(client))
                {
                    OnClientCookiesCached(client);
                }
            }
        }

Prawdę mówiąc nie wiem co to ma na celu, forward OnClientCookiesCached sam się wywołuje, jak wczyta ciasteczka.

GetClientName(client, nick[client], 32);

->

GetClientName(client, nick[client], MAX_NAME_LENGTH);

Do usunięcia

OnClientCookiesCached(client);

To też out

public OnPluginEnd()
{
    for(new client = 1; client <= MaxClients; client++)
    {
        if(IsClientInGame(client))
        {
            OnClientDisconnect(client);
        }
    }
}

ponieważ OnClientDisconnect wykonuje się przy zmianie mapy, więc dodatkowe wywołanie go jest chyba bezcelowe :P

 

Tutaj mały błąd

for(new i=1;i<GetMaxClients();i++)

na

for(new i=1;i<=MaxClients;i++)

i mała poprawka

new String:buffer[50];
new String:poz[10];
for(new i=1;i<=MaxClients;i++)
    {
        if(!IsClientInGame(i))    continue;

        FormatEx(buffer, 49, "%s %s", nick[i], ma_mute[i] ? "[MUTED]" : "");
        FormatEx(poz, 9, "%i", i);

        AddMenuItem(menu, poz, buffer);
    }

Zmienne przeniesione poza pętle + zmiana z Format na FormatEx

 


  • +
  • -
  • 2


#649199 Broń w nowej rundzie

Napisane przez Amaroq on 11.07.2014 18:40

#include <amxmodx>
#include <fun>
 
new g_iGive;
 
#define AddGive(%1) (g_iGive |= (1<<(%1-1)))
#define CheckGive(%1) (g_iGive & (1<<(%1-1)))
#define RemoveGive(%1) (g_iGive &= ~(1<<(%1-1)))
 
new g_iMaxPlayers;
 
public plugin_init()
{
    register_plugin("Give Weapon", "0.0.1", "Ni3znajomy")
    register_clcmd("say /bron", "cmdGiveWeapon");
    register_event("HLTV", "HLTV_event", "a", "1=0", "2=0");
 
    g_iMaxPlayers = get_maxplayers();
}
 
public cmdGiveWeapon(id)
{
    if(CheckGive(id))
        return PLUGIN_HANDLED;
 
    AddGive(id);
    return PLUGIN_HANDLED;
}
 
public client_disconnect(id)
{
    if(CheckGive(id))
        RemoveGive(id);
}
 
public HLTV_event()
{
    for(new i=1;i<=g_iMaxPlayers;i++)
    {
        if(CheckGive(i) && is_user_alive(i))
        {
            give_item(i, "weapon_ak47");
            RemoveGive(i);
        }
    }
}

 


  • +
  • -
  • 2


#636768 VoiceTC nie działa?

Napisane przez Amaroq on 05.05.2014 12:56

To wersja silnika, wersje dproto możesz sprawdzić komendą meta list. Podaj też plik plugins.ini z folderu metamoda.


  • +
  • -
  • 1


#629828 [ROZWIĄZANE] Problem z odpaleniem metamoda

Napisane przez Amaroq on 02.04.2014 20:12

Przypuszczam, że jest to spowodowane starą wersją metamoda. Spróbuj wgrać Metamod-P 1.21p37 lub Metamod 1.21.1-am lub Metamod 1.20. Do wyboru do koloru.


  • +
  • -
  • 3


#623362 native error (native "set_task") w banku fragów

Napisane przez Amaroq on 07.03.2014 18:53

Znajdź

set_task(234.0, "Pokaz", 0);

i zmień to na

#if defined lotto
set_task(234.0, "Pokaz", 0);
#endif

Ponownie skompiluj plugin i powinno być ok.


  • +
  • -
  • 1


#609759 [ROZWIĄZANE] Problem z uruchomieniem serwera HLDS

Napisane przez Amaroq on 27.01.2014 13:04

Musisz zdefiniować grę, pod którą chcesz uruchomić HLDS. Z tego co widzę to jej nie podałeś a domyślną grą jest "valve", czyli serwer pod HL1. Świadczy o tym ta linia
Exe version 1.1.2.2/Stdio (valve)
Uruchom serwer, np. tym poleceniem
./hlds_run -game cstrike +maxplayers MAX_GRACZY +map MAPA_STARTOWA +exec server.cfg

  • +
  • -
  • 1


#609621 Czas funkcji.

Napisane przez Amaroq on 26.01.2014 21:09

To rozwiązanie jest moim zdaniem bardziej optymalne
#include <amxmodx>
#include <fun>

#define PLUGIN "Ruletka"
#define VERSION "1.0"
#define AUTHOR "Ender #"

new Uzyl;

#define SetUzyl(%1) (Uzyl |= (1<<(%1-1)))
#define CheckUzyl(%1) (Uzyl & (1<<(%1-1)))
#define RemoveUzyl(%1) (Uzyl &= ~(1<<(%1-1)))

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_clcmd("say /ruletka", "ruletka");
}

public client_connect(id)
{
	RemoveUzyl(id);
}

public client_disconnect(id)
{
	RemoveUzyl(id);
	
	if(task_exists(id))
	 	remove_task(id);
	 	
}

public ruletka(id)
{
	if(is_user_alive(id))
	{
		if(CheckUzyl(id))
		{
			client_print(id, print_chat, "Poczekaj jeszcze troche przed uzyciem ruletki!");
			return PLUGIN_HANDLED;
		}
		switch(random(2))
		{
			case 0:
			{
				client_print(id,print_center, "Masz 1 HP");
				set_user_health(id, 1)
			}
			case 1:	
			{
				client_print(id, print_center, "Jestes Duchem!");
				set_user_noclip(id, 1)
				set_bartime(id, 10);
				set_task(10.0, "off_no", id);
			}
		}
		SetUzyl(id);
		set_task(300.0, "uzycie", id);
	}
	return PLUGIN_CONTINUE;
}

public off_no(id)
{
	if(is_user_connected(id))
	{
		set_user_noclip(id, 0);
	}
}

public uzycie(id)
{
	if(is_user_connected(id) && CheckUzyl(id))
		RemoveUzyl(id)
}

stock set_bartime(id, czas)
{
	static MsgBarTime;
	
	if(!MsgBarTime)
		MsgBarTime = get_user_msgid("BarTime");
		
	message_begin((id)?MSG_ONE:MSG_ALL, MsgBarTime, _, id)
	write_short(czas);
	message_end();   
}

  • +
  • -
  • 1


#599661 [ROZWIĄZANE] Wczytywanie SQL

Napisane przez Amaroq on 31.12.2013 16:51

Jeśli chcesz odczytać stringa z bazy i dać go do tablicy to musisz to zrobić tak
SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"nazwa"), nazwa[id], 127);

  • +
  • -
  • 1


#598761 dproto [0.9.391] - Aktualizacja 6027

Napisane przez Amaroq on 30.12.2013 02:48

wszystko ladnie pieknie ale po aktualizacji dproto nsy z protokolem 47 nie zobacza serwera na liscie serwerow i nie dodadza do ulubionych, sa wady i zalety.

Bo jak nie edytuje się dproto.cfg tylko wgra od razu to tak jest ;)
  • +
  • -
  • 2


#595469 [ROZWIĄZANE] "Serwer is not responding" u graczy non steam (nowy silnik)

Napisane przez Amaroq on 22.12.2013 20:32

Najnowsza to 0.9.364, dproto 0.9.87 jest jeszcze starsze od 0.9.187.
  • +
  • -
  • 3


#595435 [ROZWIĄZANE] "Serwer is not responding" u graczy non steam (nowy silnik)

Napisane przez Amaroq on 22.12.2013 19:28

Mam wgrany dproto w wersji 0.9.187

Tu jest pierwszy problem. Dla nowej wersji silnika używasz dproto nowszego od tej wersji np. 0.9.364 (najnowsza).

Currently running plugins:
 [  1] AMX Mod X, v1.8.2, Feb 14 2013, by AMX Mod X Dev Team, see http://www.amxmodx.org
 [  2] Fun, v1.8.2, Feb 14 2013, by AMX Mod X Dev Team, see http://www.amxmodx.org
 [  3] Engine, v1.8.2, Feb 14 2013, by AMX Mod X Dev Team, see http://www.amxmodx.org
 [  4] FakeMeta, v1.8.2, Feb 14 2013, by AMX Mod X Dev Team, see http://www.amxmodx.org
 [  5] CStrike, v1.8.2, Feb 14 2013, by AMX Mod X Dev Team, see http://www.amxmodx.org
 [  6] CSX, v1.8.2, Feb 14 2013, by AMX Mod X Dev Team, see http://www.amxmodx.org/
 [  7] Ham Sandwich, v1.8.2, Feb 14 2013, by AMX Mod X Dev Team, see http://www.amxmodx.org
 [  8] MySQL, v1.8.2, Feb 14 2013, by AMX Mod X Dev Team, see http://www.amxmodx.org/
2. problem to, że nawet nie widzi dproto.

Po wgraniu nowego dproto, wejdź w dproto.cfg, znajdź
ServerInfoAnswerType = 0
i zmień na
ServerInfoAnswerType = 2
Pozwoli to dodać starszym NS serwer do favorites.
  • +
  • -
  • 1