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
 

Zdjęcie

[ROZWIĄZANE] automatyczna zmiana teamu gracza i dodawanie fraga co 5 sekund


  • Zamknięty Temat jest zamknięty
35 odpowiedzi w tym temacie

#1 Eustachy8

    Wszechpomocny

  • Użytkownik

Reputacja: 116
Zaawansowany

  • Postów:304
  • Imię:Kuba
  • Lokalizacja:Buczacz
Offline

Napisano 31.10.2012 15:29

Witam!

Potrzebne są mi 2 rzeczy:
1. Chcę, aby TT po zabiciu stawał się CT (podejrzewam, że znalazł bym to w zombi modzie, bo zarażeniu CT staje się TT) i spawnił się w losowym miejscu z CSDM
2. Co pięć sekund dodawało fraga graczowi, an pewno coś z set_task, ale nie wiem jak dokładnie to zrobić
  • +
  • -
  • 0

24azdk0.jpg
b_350_20_692108_381007_FFFFFF_000000.png
 


#2 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 31.10.2012 18:04

2. nie wiem do końca, co masz na myśli, tu daję Ci plugin, który co 5 sekund przyznaje wszystkim CT i TT po 1 fragu:

#include <amxmodx>
#include <fun>

new maxPlayers, id;

public plugin_init(){
register_plugin("5sec frag", "0.1", "benio101");
}

public plugin_cfg(){
maxPlayers=get_maxplayers();

set_task(5.0, "frag", .flags="b");
}

public frag(){
for(id=1; id<=maxPlayers; ++id){
if(is_user_connected(id) && !is_user_hltv(id) && get_user_team(id)%3){
set_user_frags(id, get_user_frags(id)+1);
}
}
}


#3 Eustachy8

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 116
Zaawansowany

  • Postów:304
  • Imię:Kuba
  • Lokalizacja:Buczacz
Offline

Napisano 31.10.2012 20:57

elegancko, tzn tak wygląda. O to mi chodzi (ma dawać tylko CT, ale to już sam poprawie), na razie nie przetestuje bo pierwsze testy będą jak będzie mod już w fazie końcowej +

ale potrzebuje jeszcze 1. :/

Użytkownik Eustachy8 edytował ten post 31.10.2012 20:58

  • +
  • -
  • 0

24azdk0.jpg
b_350_20_692108_381007_FFFFFF_000000.png
 


#4 K!113r

    Teraz to chyba Sławek kek

  • Power User

Reputacja: 387
Wszechpomocny

  • Postów:868
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Piotrków Tryb.
Offline

Napisano 31.10.2012 21:16

cs_set_user_team(player,( g_iTeam[player] = g_iTeam[player] == CS_TEAM_T ? CS_TEAM_CT : CS_TEAM_T))

if (is_user_alive(player))
ExecuteHamB(Ham_CS_RoundRespawn, player)


Prosto z BaseBuildera (komenda do zmiany drużyny), player to id gracza którego chcesz przenieść, w tablicy g_iTeam jest zapisany aktualna drużyna (można użyć cs_get_user_team() lecz będziesz kilka razy wywoływał funkcję, czasem lepiej coś zapisać :D)
  • +
  • -
  • 1

DarkGL to mój autorytet.

skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować


#5 Eustachy8

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 116
Zaawansowany

  • Postów:304
  • Imię:Kuba
  • Lokalizacja:Buczacz
Offline

Napisano 31.10.2012 23:09

a czy to nie zmieni dopiero od nowej rundy?
  • +
  • -
  • 0

24azdk0.jpg
b_350_20_692108_381007_FFFFFF_000000.png
 


#6 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 31.10.2012 23:13

nie

#7 K!113r

    Teraz to chyba Sławek kek

  • Power User

Reputacja: 387
Wszechpomocny

  • Postów:868
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Piotrków Tryb.
Offline

Napisano 31.10.2012 23:24

to jest wycinek kodu, możesz z tego zrobić np. komendę przerzucającą gracza do innej drużyny bez śmierci, lub dodać do zdarzenia śmierci (należy zmienić warunek, ponieważ trzeba jeszcze gracza odrodzić :D)
  • +
  • -
  • 0

DarkGL to mój autorytet.

skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować


#8 Eustachy8

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 116
Zaawansowany

  • Postów:304
  • Imię:Kuba
  • Lokalizacja:Buczacz
Offline

Napisano 31.10.2012 23:39

to mnie trochę zmyliło

Ham_CS_RoundRespawn
w takim razie jutro postaram się to skleić do kupy i tam znać czy wszystko ładnie działa
  • +
  • -
  • 0

24azdk0.jpg
b_350_20_692108_381007_FFFFFF_000000.png
 


#9 speedkill

    Godlike

  • Przyjaciel

Reputacja: 1 592
Godlike

  • Postów:2 733
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Prudnik
Offline

Napisano 01.11.2012 08:55

O takie coś chodziło ?
#include <amxmodx>
#include <fun>
#include <cstrike>

new maxPlayers;

public plugin_init(){
    register_plugin("5sec frag", "0.1", "benio101");
}

public plugin_cfg(){
    maxPlayers = get_maxplayers();
    set_task(5.0, "frag", .flags="b");
    register_event("DeathMsg", "DeathMsg", "a")
}

public frag(){
    for(new id=1; id<=maxPlayers; ++id){
        if(is_user_connected(id) && !is_user_hltv(id) && !is_user_bot(id) && get_user_team(id) == 2){
            set_user_frags(id, get_user_frags(id)+1);
        }
    }
}

public DeathMsg(){
    new g_Victim = read_data(2);
    if(is_user_connected(g_Victim)){
        if(get_user_team(g_Victim == 1)){
            cs_set_user_team(g_Victim, CS_TEAM_CT);
        }
    }
}

  • +
  • -
  • 1

If you can dream it, you can do it.


#10 Eustachy8

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 116
Zaawansowany

  • Postów:304
  • Imię:Kuba
  • Lokalizacja:Buczacz
Offline

Napisano 01.11.2012 11:39

nie do końca, TT jak zabije staje się CT, a zabity CT staje się TT :D ale reszta w najlepszym porządeczku
  • +
  • -
  • 0

24azdk0.jpg
b_350_20_692108_381007_FFFFFF_000000.png
 


#11 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 01.11.2012 11:55

#include <amxmodx>
#include <fun>
#include <cstrike>

new maxPlayers;

public plugin_init(){
register_plugin("5sec frag", "0.3", "speedkill & benio101");

register_event("DeathMsg", "DeathMsg", "a");
}

public plugin_cfg(){
maxPlayers = get_maxplayers();
set_task(5.0, "frag", .flags="b");
}

public frag(){
for(new id=1; id<=maxPlayers; ++id){
if(is_user_connected(id) && !is_user_hltv(id) && !is_user_bot(id) && get_user_team(id) == 2){
set_user_frags(id, get_user_frags(id)+1);
}
}
}

public DeathMsg(){
new g_Victim = read_data(2);
if(is_user_connected(g_Victim)){
new vTeam=get_user_team(g_Victim);
switch(vTeam){
case 1:{
cs_set_user_team(g_Victim, CS_TEAM_CT);
}
case 2:{
cs_set_user_team(g_Victim, CS_TEAM_T);
}
}
}
}


#12 Eustachy8

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 116
Zaawansowany

  • Postów:304
  • Imię:Kuba
  • Lokalizacja:Buczacz
Offline

Napisano 01.11.2012 12:24

nie do końca mnie zrozumieliście, Jeżeli TT zabije CT, staje się nim, a CT zabity staje się TT. Ale jeżeli CT zabije TT nic ma się nie dziać, po prostu naliczyć fraga. Czy tak właśnie jest, a ja źle to widzę? :D
  • +
  • -
  • 0

24azdk0.jpg
b_350_20_692108_381007_FFFFFF_000000.png
 


#13 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 01.11.2012 13:11

#include <amxmodx>
#include <fun>
#include <cstrike>

new maxPlayers;

public plugin_init(){
register_plugin("5sec frag", "0.4", "speedkill & benio101");

register_event("DeathMsg", "DeathMsg", "a");
}

public plugin_cfg(){
maxPlayers = get_maxplayers();
set_task(5.0, "frag", .flags="b");
}

public frag(){
for(new id=1; id<=maxPlayers; ++id){
if(is_user_connected(id) && !is_user_hltv(id) && !is_user_bot(id) && get_user_team(id) == 2){
set_user_frags(id, get_user_frags(id)+1);
}
}
}

public DeathMsg(g_Killer, g_Victim){
if(is_user_connected(g_Killer) && is_user_connected(g_Victim)){
if(get_user_team(g_Killer)==1 && get_user_team(g_Victim)==2){
cs_set_user_team(g_Killer, CS_TEAM_CT);
cs_set_user_team(g_Victim, CS_TEAM_T);
}
}
}


#14 Eustachy8

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 116
Zaawansowany

  • Postów:304
  • Imię:Kuba
  • Lokalizacja:Buczacz
Offline

Napisano 01.11.2012 14:17

Czy to ma racje bytu? :D

#include <amxmodx>
#include <fun>
#include <cstrike>
#include <csx>

new maxPlayers;
new g_ltimer[33];
new g_msgsync;

public plugin_init(){
		register_plugin(" BEL", "0.1", "Eustachy8 (+speedkill & benio101)");

		register_event("DeathMsg", "DeathMsg", "a");

		g_msgsync = CreateHudSyncObj();
}

public plugin_cfg(){
		maxPlayers = get_maxplayers();
		set_task(5.0, "frag", .flags="b");
		set_task(5.0, "dispTime", .flags="b");
}

public frag(){
		for(new id=1; id<=maxPlayers; ++id){
				if(is_user_connected(id) && !is_user_hltv(id) && !is_user_bot(id) && get_user_team(id) == 2){
						set_user_frags(id, get_user_frags(id)+1);
				}
		}
}

public DeathMsg(g_Killer, g_Victim){
		if(is_user_connected(g_Killer) && is_user_connected(g_Victim)){
				if(get_user_team(g_Killer)==1 && get_user_team(g_Victim)==2){
					cs_set_user_team(g_Killer, CS_TEAM_CT);
					cs_set_user_team(g_Victim, CS_TEAM_T);
                    spawn_func(g_Killer);
                    g_ltimer[g_Killer]=0;
				}
		}
}
public spawn_func(id)
{
	   new parm[1];
	   parm[0]=id;
	   set_task(0.5,"player_spawn",72,parm,1);
}
public player_spawn(parm[1])
{
spawn(parm[0]);
}
public dispTime(id)
{  
	   if (get_user_team(id)==2)
	   {
			  set_hudmessage(255, 255, 255, 0.10, 0.80, 0, 1.0, 1.0, 0.01, 0.01, -1);
			  ShowSyncHudMsg(0, g_msgsync, "Zyjesz juz: %d sekund", g_ltimer[id]);
			  ++g_ltimer[id];
	   }
}

Brakuje mi już tylko jednej rzeczy i nie wiem jak ją ugryźć.
A mianowicie, chcę zrobić ten modzik:
http://amxx.pl/topic...nd-enemy-lines/
brakuje mi punktu pierwszego, plugin ma automatycznie ustawiać graczy w drużynach. Dodatkowo musi ustawiać 0 w tablicy g_ltimer[33]; odpowiednim osobom (tym co zostaną przydzieleni do CT)

Użytkownik Eustachy8 edytował ten post 01.11.2012 14:19

  • +
  • -
  • 0

24azdk0.jpg
b_350_20_692108_381007_FFFFFF_000000.png
 


#15 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 01.11.2012 14:37

W ten sposób spawn będzie powodował pewne problemy z kamerą w specyficznych sytuacjach.
Jeśli koniecznie nie chcesz korzystać z Kanapki, to skorzystaj z poprawnej formy ożywiania graczy.

#16 speedkill

    Godlike

  • Przyjaciel

Reputacja: 1 592
Godlike

  • Postów:2 733
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Prudnik
Offline

Napisano 01.11.2012 15:35

Także funkcja dispTime(id), nie zadziała poprawnie, ponieważ nie ma tam pętli ;)
  • +
  • -
  • 1

If you can dream it, you can do it.


#17 Eustachy8

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 116
Zaawansowany

  • Postów:304
  • Imię:Kuba
  • Lokalizacja:Buczacz
Offline

Napisano 01.11.2012 16:21

set_task(5.0, "dispTime", .flags="b");
(tu ma być 1.0)

dlaczego nie będzie? przecież jest ona wywoływana co sekunde i za każdym razem zmienia czas o 1

wrzuciłem w tej postaci:
Spoiler


i poprawnie działa tylko dodawanie fragów co 5 sec :/
nie przenosi do przeciwnego teamu, nie ma odliczania
speedkill (01.11.2012 17:01):
Dlatego, że funkcja dispTime nie posiada id, więc pokazujesz tą wiadomość każdemu ;)

  • +
  • -
  • 0

24azdk0.jpg
b_350_20_692108_381007_FFFFFF_000000.png
 


#18 Eustachy8

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 116
Zaawansowany

  • Postów:304
  • Imię:Kuba
  • Lokalizacja:Buczacz
Offline

Napisano 01.11.2012 18:30

ok rozumiem, ale występuje problem, nie widzi to nikt ;d więc zrobiłem to w sposób jeszcze dziwaczniejszy :D
  • +
  • -
  • 0

24azdk0.jpg
b_350_20_692108_381007_FFFFFF_000000.png
 


#19 Eustachy8

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 116
Zaawansowany

  • Postów:304
  • Imię:Kuba
  • Lokalizacja:Buczacz
Offline

Napisano 01.11.2012 19:56

nie mogę już edytować, nie skleja postów, sorry, za wygląd spamu typowego ;<

Do rzeczy:
Odliczania i dodawanie fragów działa elegancko. Jednak event deathMsg jest olewany całkowicie, nic się nie dzieje podczas gdy TT zabija CT
register_event("DeathMsg", "DeathMsg", "a");
.
.
.

public DeathMsg(g_Killer, g_Victim){
		if(is_user_connected(g_Killer) && is_user_connected(g_Victim)){
				if(get_user_team(g_Killer)==1 && get_user_team(g_Victim)==2){

					cs_set_user_team(g_Killer, CS_TEAM_CT);
					cs_set_user_team(g_Victim, CS_TEAM_T);
					spawn_func(g_Killer);
					g_ltimer[g_Killer]=0;

					new szName[64];
					get_user_name(g_Victim,szName,charsmax(szName));
					new szName2[64];
					get_user_name(g_Killer,szName2,charsmax(szName2));
					ColorChat(0,RED,"[ BEL ] ^x04%s zyl ^x04%i sec. Zabil go ^x04%s",szName,g_ltimer[g_Victim],szName2)

				}
		}
}

Użytkownik Eustachy8 edytował ten post 01.11.2012 20:00

  • +
  • -
  • 0

24azdk0.jpg
b_350_20_692108_381007_FFFFFF_000000.png
 


#20 K!113r

    Teraz to chyba Sławek kek

  • Power User

Reputacja: 387
Wszechpomocny

  • Postów:868
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Piotrków Tryb.
Offline

Napisano 01.11.2012 20:18

event death chyba nie ma argumentów, trzeba je zczytać:

new iKiller = read_data( 1 );
new iVictim = read_data( 2 );


powinno działać, zawsze możesz spróbować z kanapką:

RegisterHam(Ham_Killed, "player", "Ham_Killed_Post", 1);
-
-
-
public Ham_Killed_Post(vid, kid)

(01.11.2012 20:20):
O minutę mnie wyprzedziłeś :D

  • +
  • -
  • 1

DarkGL to mój autorytet.

skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować





Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych