←  Problemy z pluginami

AMXX.pl: Support AMX Mod X i SourceMod

»

Ultimate AFK coś się z nim gryzie?

  • +
  • -
Kaloski - zdjęcie Kaloski 09.11.2013

Cześć!

Tytułowy gryzie się z plugin  spec_and_back.amxx po przeniesieniu przez plugin twierdzi, że już jestem w drużynie po użyciu komendy /spec przez co muszę wpisać /spec i potem /back co jest uciążliwę. // nie rozwiązałem tego problemu

afk_timeafk 0 ;// jezeli 0 - to nie kickuje/nie przenosi z druzyny [jezeli chcesz, np. zeby tylko plugin na spect dzialal]
To zostawiłem na zero i nic się nie działo, bo tak sugeruję komentarz chciałem wykorzystać tylko, żeby switchowało na specta. // Mam wątpliwości do opisu tego Cvaru.
ultimateafk.cfg:

afk_mode 0
afk_timeafk 20
afk_timespect 0
afk_saychangeafk 2
afk_shootchangeafk 1
afk_camerachangeafk 1
afk_adminafk 0
afk_warn 1
afk_minplayers 3
afk_checkspawn 1
afk_timekillspawn 10.0
afk_killspawn 1
afk_killspawnchance 3
afk_bombdroptime 1

http://wklej.to/VwZl6 ---> plugins.ini

http://wklej.to/rmqrb ---> Wyciąg z konsoli

 


Użytkownik RykG edytował ten post 09.11.2013 23:33
Odpowiedz

  • +
  • -
Droso - zdjęcie Droso 10.11.2013

Jeżeli chcesz żeby tylko na Spect przenosiło:

afk_mode 0
afk_timeafk 20  // czas jaki mozna byc AFK w TT/CT, zanim przeniesie/kicknie! 0 - nie przenosi/kicka z TT/CT
// zle zrozumiales ten CVAR bo jak ustawiles na 0 to plugin nie dzialal w TT i CT :D
// a to chodzilo o to ze jak ktos wejdzie na spect to go wywali (jak timespect > 0)
afk_timespect 0  // czas jaki mozna byc na Spect - 0 - nieskonczonosc!
afk_saychangeafk 2
afk_shootchangeafk 1
afk_camerachangeafk 1
afk_adminafk 0
afk_warn 1
afk_minplayers 3
afk_checkspawn 1
afk_timekillspawn 10 // liczby calkowite! Nie dziesietne :)
afk_killspawn 1
afk_killspawnchance 3
afk_bombdroptime 1

Podaj spec_and_back.sma, przerobimy tamten plugin.

 

 

P.S Dodaję właśnie nową wersję Ultimate AFK, poprawiłem drobne błędy, ale chyba warto wgrać ;)


Użytkownik HubertTM edytował ten post 10.11.2013 12:47
Odpowiedz

  • +
  • -
Kaloski - zdjęcie Kaloski 10.11.2013

Może być problem, bo niestety już nikt nie ma kopii .sma tego pluginu. Chyba trzeba będzie ten podstawowy od nowa przerobić. Pomożecie? 

Odpowiedz

  • +
  • -
Droso - zdjęcie Droso 10.11.2013

Daj podstawową wersję i napisz co trzeba zmienić.

Odpowiedz

  • +
  • -
Kaloski - zdjęcie Kaloski 10.11.2013

W tym temacie jest przerobiony ten plugin tylko pod inną nazwą pełni podobne funkcję http://amxx.pl/topic/947-spec-switch/

Oraz w temacie jest sma w wersji dla każdego gracza http://amxx.pl/topic...ginu-spec-back/

Chciałbym aby przy używaniu tych komend nie było to uznawane za samobójstwo oraz o ile to jest możliwe likwidację buga powodujące usunięcie huda (brak celownika, nie można zmieniać broni, nie ma informacji o hp itp.) i jeszcze po zabiciu nie respi nas.

Chociaż nie zawsze tak bywa.

Odpowiedz

  • +
  • -
Droso - zdjęcie Droso 10.11.2013

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

#define PLUGIN "Spec/Back"
#define AUTHOR "kramesa"
#define VERSION "v1.1"

new ZespolGracza[33];
new CountTime[33];

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR);

	register_clcmd("say /spec", "Spec");
	register_clcmd("say /back", "Back");

	register_cvar("amx_spectimes", "3");
	
	RegisterHam(Ham_Spawn, "player", "PlayerSpawned", 1);
}

public client_putinserver(id)
ZespolGracza[id] = -1;

public PlayerSpawned(id){
	ZespolGracza[id] = get_user_team(id);
}

public Spec(id)
{
	if(CountTime[id] >= get_cvar_num("amx_spectimes"))
	{
		client_print(id, print_chat, "[AMXX] Sorry, you cant use this command more of %d times.", get_cvar_num("amx_spectimes"));
		return PLUGIN_HANDLED;
	}

	if(ZespolGracza[id] == -1){
		ZespolGracza[id] = get_user_team(id);
	}
	
	if(ZespolGracza[id] == 0 || ZespolGracza[id] == 3)
	{
		client_print(id, print_chat, "[AMXX] You already Spectator.");
		return PLUGIN_HANDLED;
	}
	else
	{
		user_kill(id, 1);
		cs_set_user_team(id, CS_TEAM_SPECTATOR);
		client_print(id, print_chat, "[AMXX] You are now in Spectator.");
		CountTime[id]++;
		return PLUGIN_HANDLED;
	}

	return PLUGIN_HANDLED;
}

public Back(id)
{
	if(get_user_team(id) == 1 || get_user_team(id) == 2)
	{
		client_print(id, print_chat, "[AMXX] You already Non-Spectator.");
		return PLUGIN_HANDLED;
	}

	cs_set_user_team(id, ZespolGracza[id]==2?CS_TEAM_CT:CS_TEAM_T);
	client_print(id, print_chat, "[AMXX] You are now in %sTerrorist team.", ZespolGracza[id]==2?"Counter-":"");
	ExecuteHam(Ham_CS_RoundRespawn, id);
	cs_set_user_deaths(id, 0);
	
	return PLUGIN_HANDLED;
}

Sprawdź, ale jak to mówią cudów nie oczekuj (?) :D


Użytkownik HubertTM edytował ten post 10.11.2013 18:44
Odpowiedz

  • +
  • -
Kaloski - zdjęcie Kaloski 10.11.2013

Jest mniej fajnie zabija nas 2 razy zamiast jednego razu :/ I wyskakuję menu wyboru postaci zamiast auto wyboru.

Dało by się do tego pluginu spec&back dodać bind na allias odpowiednio na /spec i /back, tak aby nie podmieniał ludziom cfg.

Przykładowo na coś takiego:

bind "F3" "spec"
;alias spec "say /spec; bind F3 back" 
;alias back "say /back; bind F3 spec" 

lub o ile się dać aby dało to ludziom pod niezbindowany przycisk aby się im nie gryzło.

Odpowiedz

  • +
  • -
Droso - zdjęcie Droso 10.11.2013

Jest mniej fajnie zabija nas 2 razy zamiast jednego razu :/ I wyskakuję menu wyboru postaci zamiast auto wyboru.

Zmieniłem .sma wyżej.

 

 

Jest mniej fajnie zabija nas 2 razy zamiast jednego razu :/ I wyskakuję menu wyboru postaci zamiast auto wyboru.

Dało by się do tego pluginu spec&back dodać bind na allias odpowiednio na /spec i /back, tak aby nie podmieniał ludziom cfg.

Przykładowo na coś takiego:

bind "F3" "spec"
;alias spec "say /spec; bind F3 back" 
;alias back "say /back; bind F3 spec" 

lub o ile się dać aby dało to ludziom pod niezbindowany przycisk aby się im nie gryzło.

Modyfikacja plików gracza jest zabroniona. Nie lepiej przerobić ten plugin tak, że jak wpiszesz /spect to przenosi do specta, a jak wpiszesz ponownie /spect to wraca z powrotem :D?

Odpowiedz

  • +
  • -
Kaloski - zdjęcie Kaloski 10.11.2013

No właśnie też tak myślałem, ale chodziło mi o to żeby na czas sesji z serwerem im to dodawało i np. przy rozłączeniu z serwerem usuwało to jak się nie da tego zrobić to szkoda. :/

Odpowiedz

  • +
  • -
Kaloski - zdjęcie Kaloski 10.11.2013


Modyfikacja plików gracza jest zabroniona. Nie lepiej przerobić ten plugin tak, że jak wpiszesz /spect to przenosi do specta, a jak wpiszesz ponownie /spect to wraca z powrotem ?
Ta przeróbka już posiada to rozwiązanie ? :D.

Czemu nie mogę postów edytować  :(

Odpowiedz

  • +
  • -
Droso - zdjęcie Droso 10.11.2013

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

#define PLUGIN "Spec/Back"
#define AUTHOR "kramesa"
#define VERSION "v1.1"

new ZespolGracza[33];
new CountTime[33];

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR);
    
    register_clcmd("say /spec", "Spec");
    register_clcmd("say /back", "Back");
    
    register_cvar("amx_spectimes", "3");
    
    RegisterHam(Ham_Spawn, "player", "PlayerSpawned", 1);
}

public PlayerSpawned(id){
    if(is_user_alive(id))
        ZespolGracza[id] = get_user_team(id);
}

public client_putinserver(id){
    ZespolGracza[id] = -1;
    CountTime[id] = 0;
}

public Spec(id)
{
    if(CountTime[id] >= get_cvar_num("amx_spectimes"))
    {
        client_print(id, print_chat, "[AMXX] Sorry, you cant use this command more of %d times.", get_cvar_num("amx_spectimes"));
        return PLUGIN_HANDLED;
    }
    
    if(ZespolGracza[id] == -1){
        ZespolGracza[id] = get_user_team(id);
    }
    
    if((get_user_team(id) == 3 || get_user_team(id) == 0) && (ZespolGracza[id] == 1 || ZespolGracza[id] == 2))
    {
        Back(id);
        return PLUGIN_HANDLED;
    }
    else
    {
        user_kill(id, 1);
engclient_cmd(id, "jointeam 6");        
​ client_print(id, print_chat, "[AMXX] You are now in Spectator.");
        CountTime[id]++;
        return PLUGIN_HANDLED;
    }
    
    return PLUGIN_HANDLED;
}

public Back(id)
{
    if(get_user_team(id) == 1 || get_user_team(id) == 2)
    {
        client_print(id, print_chat, "[AMXX] You already Non-Spectator.");
        return PLUGIN_HANDLED;
    }
    
    engclient_cmd(id, "jointeam", ZespolGracza[id]==2? "2": "1");
engclient_cmd(id, "joinclass", "1");
    client_print(id, print_chat, "[AMXX] You are now in %sTerrorist team.", ZespolGracza[id]==2?"Counter-":"");
    ExecuteHam(Ham_CS_RoundRespawn, id);
    cs_set_user_deaths(id, 0);
    
    return PLUGIN_HANDLED;
}

Użytkownik HubertTM edytował ten post 13.11.2013 16:37
Odpowiedz

  • +
  • -
Kaloski - zdjęcie Kaloski 10.11.2013

No właśnie kilka takich chamskich postów znalazłem o interesujący mnie problem, a tam żadnych .sma żadnej informacji jak ten ktoś to naprawił...

Odpowiedz

  • +
  • -
Kaloski - zdjęcie Kaloski 11.11.2013


register_clcmd("say /spec", "Spec");
register_clcmd("say /back", "Back");
 

Nie powinno być dwa razy /spec ?

Wow mogłem zeedytować post :D

No wystarczy chyba odpowiedni spam na hudzie co nie?


Użytkownik RykG edytował ten post 11.11.2013 19:08
Odpowiedz

  • +
  • -
Droso - zdjęcie Droso 11.11.2013

Nie :D

 

 

Komende /back też zostawiłem, żeby, taka komenda istniała, bo nie każdy będzie wiedział, że może 2 raz wpisać /spect


Użytkownik HubertTM edytował ten post 11.11.2013 19:02
Odpowiedz

  • +
  • -
Kaloski - zdjęcie Kaloski 11.11.2013

Jakieś błędy są pojawia się coś takiego nawet po reconecie 


[AMXX] Sorry, you cant use this command more of 3 times.
oraz
[AMXX] You already Non-Spectator.

 

 

Niestety dalej zabija przy switchowaniu na spec. I po powrocie ze speca (jak przerzucił ultimate afk) to po tym respawnie jak mnie zabiją to nie respi ponownie.


Użytkownik RykG edytował ten post 11.11.2013 20:43
Odpowiedz

  • +
  • -
Droso - zdjęcie Droso 12.11.2013

public client_putinserver(id)
ZespolGracza[id] = -1;

zamienić na:

public client_putinserver(id){
ZespolGracza[id] = -1;
CountTime[id] = 0;
}

[AMXX] You already Non-Spectator.

Hmm dziwne, jak nadal to się będzie pojawiało to zrobię to inną funkcją.

 

 

Niestety dalej zabija przy switchowaniu na spec. I po powrocie ze speca (jak przerzucił ultimate afk) to po tym respawnie jak mnie zabiją to nie respi ponownie.

Myślę i nie wiem co wymyślić z tym ;(

Najpierw zajmijmy się w/w problemem :D


Użytkownik HubertTM edytował ten post 12.11.2013 18:23
Odpowiedz

  • +
  • -
Kaloski - zdjęcie Kaloski 12.11.2013


RykG, dnia 11 List 2013 - 20:37, napisał:
[AMXX] You already Non-Spectator.
Hmm dziwne, jak nadal to się będzie pojawiało to zrobię to inną funkcją.
 

Tego komunikatu już nie ma, ale niestety dalej po próbie powrotu do drużyny i po naszej śmierci nie respimy się można co chwilę używać komendy /spec i /back (spec nie reaguję w obie strony) to tak co każdy dead można robić dopuki plugin nie zablokuję możliwości jego użytkowania przez jakiegoś delikwenta.Chyba, że ten problem jest związany z configiem gungame'a lub csdm'a.


Użytkownik RykG edytował ten post 12.11.2013 23:28
Odpowiedz

  • +
  • -
Droso - zdjęcie Droso 13.11.2013

Sprawdź.


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

#define PLUGIN "Spec/Back"
#define AUTHOR "kramesa"
#define VERSION "v1.1"

new ZespolGracza[33];
new CountTime[33];

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR);
    
    register_clcmd("say /spec", "Spec");
    register_clcmd("say /back", "Back");
    
    register_cvar("amx_spectimes", "3");
    
    RegisterHam(Ham_Spawn, "player", "PlayerSpawned", 1);
}

public PlayerSpawned(id){
    if(is_user_alive(id))
        ZespolGracza[id] = get_user_team(id);
}

public client_putinserver(id){
    ZespolGracza[id] = -1;
    CountTime[id] = 0;
}

public Spec(id)
{
    if(CountTime[id] >= get_cvar_num("amx_spectimes"))
    {
        client_print(id, print_chat, "[AMXX] Sorry, you cant use this command more of %d times.", get_cvar_num("amx_spectimes"));
        return PLUGIN_HANDLED;
    }
    
    if(ZespolGracza[id] == -1){
        ZespolGracza[id] = get_user_team(id);
    }
    
    if((get_user_team(id) == 3 || get_user_team(id) == 0) && (ZespolGracza[id] == 1 || ZespolGracza[id] == 2))
    {
        Back(id);
        return PLUGIN_HANDLED;
    }
    else
    {
        user_kill(id, 1);
        engclient_cmd(id, "jointeam 6")
client_print(id, print_chat, "[AMXX] You are now in Spectator.");
        CountTime[id]++;
        return PLUGIN_HANDLED;
    }
    
    return PLUGIN_HANDLED;
}

public Back(id)
{
    if(get_user_team(id) == 1 || get_user_team(id) == 2)
    {
        client_print(id, print_chat, "[AMXX] You already Non-Spectator.");
        return PLUGIN_HANDLED;
    }
    
    engclient_cmd(id, "jointeam", ZespolGracza[id]==2? "2": "1");
    engclient_cmd(id, "joinclass", "1");
    client_print(id, print_chat, "[AMXX] You are now in %sTerrorist team.", ZespolGracza[id]==2?"Counter-":"");
    ExecuteHam(Ham_CS_RoundRespawn, id);
    cs_set_user_deaths(id, 0);
    
    return PLUGIN_HANDLED;
}

Nowa metoda zmieniania drużyny :)


Użytkownik HubertTM edytował ten post 14.11.2013 17:13
Odpowiedz

  • +
  • -
Kaloski - zdjęcie Kaloski 13.11.2013

Nie można tego skompilować błąd wyskakuję :/

Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team

specswitch.sma(55) : warning 217: loose indentation
specswitch.sma(55) : error 029: invalid expression, assumed zero
specswitch.sma(55) : error 029: invalid expression, assumed zero
specswitch.sma(55) : error 029: invalid expression, assumed zero
specswitch.sma(55) : fatal error 107: too many error messages on one line

Compilation aborted.
4 Errors.

Odpowiedz

  • +
  • -
Droso - zdjęcie Droso 14.11.2013

http://amxx.pl/wklejka/13844457349579/

 

Masz we wklejce, bo code dodawało nie wiem czemu znak "?" to .sma i to powodowało błędy.


Droso (14.11.2013 17:17):
Nie przejmuj się wiadomościami: Warning: Loose indentation on line XX ;)
Odpowiedz