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
 

MAthiasssMAt - zdjęcie

MAthiasssMAt

Rejestracja: 02.05.2011
Aktualnie: Nieaktywny
Poza forum Ostatnio: 14.02.2013 00:29
-----

Moje tematy

Poprawienie saylogs

13.02.2012 20:29

Tak jak w temacie. Proszę o poprawienie pluginu saylogsmysql.
Logi:

L 02/13/2012 - 17:52:01: [CSTRIKE] Invalid player 15
L 02/13/2012 - 17:52:01: [AMXX] Displaying debug trace (plugin "saylogs.amxx")
L 02/13/2012 - 17:52:01: [AMXX] Run time error 10: native error (native "cs_get_user_team")
L 02/13/2012 - 17:52:01: [AMXX]    [0] saylogs_369390.sma::logsay (line 52)
L 02/13/2012 - 17:52:01: [AMXX]    [1] saylogs_369390.sma::ReadBlock (line 39)

Sma:

#include <amxmodx>
#include <cstrike>
#include <sqlx>
#define PLUGIN "Live Chat"
#define VERSION "1.0"
#define AUTHOR "speedkill + Miczu"
#define CREATE_DB "CREATE TABLE IF NOT EXISTS Chatslowexp (name varchar(31),ctname varchar(31),ttname varchar(31),timer varchar(31),say_type varchar(31),stringsay varchar(191))"
new Handle:SqlConnection
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_cvar("amx_saylogs_host", "localhost");
register_cvar("amx_saylogs_user", "root");
register_cvar("amx_saylogs_pass", "root");
register_cvar("amx_saylogs_db", "Saylogs");
register_clcmd("say","ReadBlock")
register_clcmd("say_team","ReadBlock")
}
public plugin_cfg() {
new Host[32], User[32], Pass[32], DB[32];
get_cvar_string("amx_saylogs_host", Host, 31);
get_cvar_string("amx_saylogs_user", User, 31);
get_cvar_string("amx_saylogs_pass", Pass, 31);
get_cvar_string("amx_saylogs_db", DB, 31);
SqlConnection = SQL_MakeDbTuple(Host,User,Pass,DB)
new QueryCache[1024]
formatex(QueryCache,1023,CREATE_DB)
SQL_ThreadQuery(SqlConnection,"QueryCreateTable",QueryCache)
}
public ReadBlock(id)
{
new GetInfo[256];
read_args(GetInfo, charsmax(GetInfo));
remove_quotes(GetInfo);
if(GetInfo[0] == '/') return PLUGIN_HANDLED;
logsay(id);
return PLUGIN_CONTINUE;
}
public logsay(id)
{
new stringsay[192] ,name[32],say_type[32],timer[32];

get_user_name(id,name,31)
read_args(stringsay,191)
read_argv(0,say_type,31)
get_time("%d/%m/%Y - %H:%M:%S", timer, 31);
new szTemp[512]
if(cs_get_user_team(id) == CS_TEAM_CT)
{
format(szTemp,charsmax(szTemp),"INSERT INTO `Chatslowexp` ( `ctname` ,`timer` , `say_type`, `stringsay`)VALUES ('%s','%s','%s','%s');",name,timer,say_type,stringsay)
SQL_ThreadQuery(SqlConnection,"IgnoreHandle",szTemp)
}
else if(cs_get_user_team(id) == CS_TEAM_T)
{
format(szTemp,charsmax(szTemp),"INSERT INTO `Chatslowexp` ( `ttname` ,`timer` , `say_type`, `stringsay`)VALUES ('%s','%s','%s','%s');",name,timer,say_type,stringsay)
SQL_ThreadQuery(SqlConnection,"IgnoreHandle",szTemp)
}
}
public plugin_end() { SQL_FreeHandle(SqlConnection); }
public IgnoreHandle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
return PLUGIN_HANDLED
}
public QueryCreateTable(iFailState,Handle:hQuery,szError[],iError,iData[],iDataSize,Float:flQueueTime) {
switch(iFailState) {
case TQUERY_CONNECT_FAILED: { log_amx("Blad nie mozna polaczyc sie z baza (%i): %s", iError, szError); }
case TQUERY_QUERY_FAILED: { log_amx("Blad nie mozna stworzyc tabelki() (%i): %s", iError, szError); }
default: { /*Stworzono tabelke*/ }
}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ ansicpg1250\\ deff0\\ deflang1045{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ f0\\ fs16 \n\\ par }
*/

[ROZWIĄZANE] Blokowanie pokazywania komend na say

11.02.2012 11:42

Witam :)
Czy da się napisać plugin, który ukrywa wiadomości typu:
rtd
/bf2menu

Tzn o to chodzi że ktoś wpisze np rtd, to ruletka działa dla tej osoby, ale nie pokazuje w czacie że to napisał :)
Nie chodzi mi o ukrycie w kodzie ruletki, tylko ogólne. Osobny plugin.
Czyli poprostu chcę ukryć te komendy. Jest taka opcja?

komunikacja głosowa - nie działa mikro

06.02.2012 20:50

Tak jak w temacie. Paru osobom nie działa mikrofon. Na poprzednim serwerze działał., a tu z tym samym amxmodx, metamod i inne pierdołki nie działa. Dodam że mam zainstalowane VM (konfiguracja z poprzedniego serwa) cvary wszystkie potrzebne mam. I to na pewno nie wina mikrofonów tych osób, gdyż na innym serwerze testowane były i działa. Co może być nie tak?

w server.cfg mam dodane:

sv_voiceenable "1"

sv_voicecodec "voice_speex"
sv_voicequality  "3.00"
sv_alltalk  "1.00" 

A np mi mikrofon działa. I wszyscy mnie słyszą, a jak oni nacisną to nawet nie pokazuje że ktoś mówi.
Proszę o normalne odpowiedzi :)

Testuje dalej. I na 1 mapie im działał. A później klapa. Mnie też teraz nie słychać

Blokada stawiania min itp w malych pomieszczeniach

22.01.2012 17:23

Zainspirowany http://amxx.pl/topic...miny-przejscia/ Tym tematem, przerobiłem go na nowego cod moda.
Ta modyfikacja blokuje całkowicie użycie komend/klawiszy:

[Edytowane w silniku] C / useperk / radio3
[Edytowane dla każdej klasy osobno] E / +use





Edycja w silniku:

1.Otwieramy nasz silnik (QTM_CodMod.sma)

2. Szukamy

register_clcmd("useperk", "UzyjPerku");
register_clcmd("radio3", "UzyjPerku");


i zamieniamy na

register_clcmd("useperk", "cmdSprawdz");
register_clcmd("radio3", "cmdSprawdz");

3. Szukamy

public UzyjPerku(id)
{
if(!is_user_alive(id))
  return PLUGIN_HANDLED;

new forward_handle = CreateOneForward(pluginy_perkow[perk_gracza[id]], "cod_perk_used", FP_CELL);
ExecuteForward(forward_handle, id, id);
DestroyForward(forward_handle);
return PLUGIN_HANDLED;
}

usuwamy i w to miejsce wklejamy to:

public cmdSprawdz(id){
		new Float:vfOrigin[3];
new name [32];
	get_user_name(id, name, 31);
		pev(id, pev_origin, vfOrigin);
	  
		if(czyDuzoMiejsca(vfOrigin, 135.0))
			   UzyjPerku(id);
		else
				client_print(id, print_chat, "Nie uzywamy tego w malych pomieszczeniach!");
}
czyDuzoMiejsca(const Float:vfPunkt[3], Float:odleglosc){
		new Float:vfStart[3], Float:vfEnd[3];
	  
		vfStart[0] = vfEnd[0] = vfPunkt[0];
		vfStart[1] = vfEnd[1] = vfPunkt[1];
		vfStart[2] = vfEnd[2] = vfPunkt[2];
	  
		//1
		vfStart[0] += odleglosc;
		vfEnd[0] -= odleglosc;
		if(engfunc( EngFunc_PointContents, vfStart ) != CONTENTS_EMPTY
		&& engfunc( EngFunc_PointContents, vfEnd ) != CONTENTS_EMPTY)
				return 0;
	  
		//2
		vfStart[0] -= odleglosc;
		vfEnd[0] += odleglosc;
		vfStart[1] += odleglosc;
		vfEnd[1] -= odleglosc;
	  
		if(engfunc( EngFunc_PointContents, vfStart ) != CONTENTS_EMPTY
		&& engfunc( EngFunc_PointContents, vfEnd ) != CONTENTS_EMPTY)
				return 0;
		return 1;
}
public UzyjPerku(id)
{
if(!is_user_alive(id))
  return PLUGIN_HANDLED;

new forward_handle = CreateOneForward(pluginy_perkow[perk_gracza[id]], "cod_perk_used", FP_CELL);
ExecuteForward(forward_handle, id, id);
DestroyForward(forward_handle);
return PLUGIN_HANDLED;
}



Edycja dla każdej klasy osobno

1. Otwieramy sma naszej klasy (dla przykładu saper)

2. Za #include <hamsandwich> dopisujemy:
#include <amxmisc>
#include <fakemeta>

3. Zamieniamy (tylko nazwe) public cod_class_skill_used(id) na :
public stawianie(id)

4. Przed naszym aktualnym public ( public stawianie(id) ) dodajemy:

public cod_class_skill_used(id)
{
		new Float:vfOrigin[3];
new name [32];
	get_user_name(id, name, 31);
		pev(id, pev_origin, vfOrigin);
	  
		if(czyDuzoMiejsca(vfOrigin, 135.0))
               stawianie(id);
		else
				client_print(id, print_chat, "Nie uzywamy tego w malych pomieszczeniach!");
}
czyDuzoMiejsca(const Float:vfPunkt[3], Float:odleglosc){
		new Float:vfStart[3], Float:vfEnd[3];
	  
		vfStart[0] = vfEnd[0] = vfPunkt[0];
		vfStart[1] = vfEnd[1] = vfPunkt[1];
		vfStart[2] = vfEnd[2] = vfPunkt[2];
	  
		//1
		vfStart[0] += odleglosc;
		vfEnd[0] -= odleglosc;
		if(engfunc( EngFunc_PointContents, vfStart ) != CONTENTS_EMPTY
		&& engfunc( EngFunc_PointContents, vfEnd ) != CONTENTS_EMPTY)
				return 0;
	  
		//2
		vfStart[0] -= odleglosc;
		vfEnd[0] += odleglosc;
		vfStart[1] += odleglosc;
		vfEnd[1] -= odleglosc;
	  
		if(engfunc( EngFunc_PointContents, vfStart ) != CONTENTS_EMPTY
		&& engfunc( EngFunc_PointContents, vfEnd ) != CONTENTS_EMPTY)
				return 0;
		return 1;
}

Gotowego sapera daje w załączniku



Zabraniam kopiowania poradnika na inne strony bez mojej wiedzy

Nazwa perku w wymianie

22.01.2012 12:02

Dodałby ktoś nazwe perku przy wymianie?
Próbowałem na podstawie kilku pluginów (w tym sprzedaży) i nadal nie działa.
Proszę o pomoc...
na pewno się przyda to wielu użytkownikom


#include <amxmodx>
#define PLUGIN "Wymien Perk"
#define VERSION "1.0"
#define AUTHOR "QTM.Peyote"
native cod_set_user_perk(id, przedmiot)
native cod_get_user_class(id)
native cod_get_user_perk(id)
native cod_get_perk_durability(id)
native cod_set_perk_durability(id, wartosc)
native cod_get_perk_name(id, przedmiot)
new bool:dostal_przedmiot[33];
new oddaj_id[33];
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);

register_clcmd("say /wymien", "ZamienPerk");
register_clcmd("say /zamien", "ZamienPerk");
register_event("ResetHUD", "cod_perk_changed", "abe");
}
public ZamienPerk(id)
{
new menu = menu_create("Zamien sie perkiem", "ZamienPerk_Handle");
new cb = menu_makecallback("OddajPerk_Callback");
for(new i=0, n=0; i<=32; i++)
{
if(!is_user_connected(i))
continue;
oddaj_id[n++] = i;
new nazwa_gracza[64];
get_user_name(i, nazwa_gracza, 63)
menu_additem(menu, nazwa_gracza, "0", 0, cb);
}
menu_display(id, menu);
}
public cod_perk_changed(id)
dostal_przedmiot[id] = false;
public ZamienPerk_Handle(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_CONTINUE;
}

if(!is_user_connected(oddaj_id[item])){
client_print(id, print_chat, "Nie odnaleziono zadanego gracza.");
return PLUGIN_CONTINUE;
}

if(dostal_przedmiot[oddaj_id[item]]){
client_print(id, print_chat, "Wybrany gracz musi poczekac 1 runde.");
return PLUGIN_CONTINUE;
}

if(dostal_przedmiot[id]){
client_print(id, print_chat, "Musisz poczekac 1 runde.");
return PLUGIN_CONTINUE;
}

if(!cod_get_user_perk(oddaj_id[item])){
client_print(id, print_chat, "Wybrany gracz nie ma zadnego perka.");
return PLUGIN_CONTINUE;
}

if(!cod_get_user_perk(id)){
client_print(id, print_chat, "Nie masz zadnego perka.");
return PLUGIN_CONTINUE;
}
new nazwa_menu[128], nick[64];
get_user_name(id, nick, charsmax(nick))
new perk = cod_get_user_perk(id);
new nazwa_perku_sprzedanego[33];
cod_get_perk_name(perk, nazwa_perku_sprzedanego, 32);
formatex(nazwa_menu, charsmax(nazwa_menu), "Wymien sie perkiem z %s, oferuje %i:", nick, nazwa_perku_sprzedanego)

new menu2 = menu_create(nazwa_menu, "menu_wymien");
menu_additem(menu2, "Tak", nick);
menu_addblank(menu2, 0)
menu_additem(menu2, "Nie", nick);

menu_setprop(menu2, MPROP_EXITNAME, "Wyjdz");
menu_display(oddaj_id[item], menu2);
return PLUGIN_CONTINUE;
}
public menu_wymien(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
new access, callback, data[64];
menu_item_getinfo(menu, item, access, data, charsmax(data), _, _, callback);
new id2 = get_user_index(data)

switch(item)
{
case 0:
{
new perk_oddajacego = cod_get_user_perk(id2)
new perk_dajacego = cod_get_user_perk(id)
new trim_oddajacego = cod_get_perk_durability(id2)
new trim_dajacego = cod_get_perk_durability(id)

cod_set_user_perk(id2, perk_dajacego);
cod_set_user_perk(id, perk_oddajacego);
cod_set_perk_durability(id2, trim_dajacego)
cod_set_perk_durability(id, trim_oddajacego)

dostal_przedmiot[id2] = true;
dostal_przedmiot[id] = true;

new nazwa_dajacego[64];

get_user_name(id, nazwa_dajacego, charsmax(nazwa_dajacego))

client_print(id, print_chat, "Wymieniles sie perkiem z %s.", data);
client_print(id2, print_chat, "Wymieniles sie perkiem z %s.", nazwa_dajacego)
}
case 1: client_print(id2, print_chat, "Wybrany gracz nie zgodzil sie na wymiane perka.")
}
return PLUGIN_CONTINUE;
}
public OddajPerk_Callback(id, menu, item)
{
if(oddaj_id[item] == id || !cod_get_user_class(oddaj_id[item]) || !cod_get_user_perk(oddaj_id[item]))
return ITEM_DISABLED;
return ITEM_ENABLED;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/