Skocz do zawartości

  • Zaloguj korzystając z Facebooka Zaloguj korzystając z Twittera Zaloguj przez Steam Zaloguj poprzez Google      Logowanie »   
  • Rejestracja

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

#21 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 01.11.2012 20:19

Bo ja ostatnio głupoty wypisuję :wstyd:

Zamiast
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){
napisz
public DeathMsg(){
new g_Killer=read_data(1);
new g_Victim=read_data(2);
if(
is_user_connected(g_Killer) &&
is_user_connected(g_Victim) &&
get_user_team(g_Killer)==1 &&
get_user_team(g_Victim)==2
){
Bo dla DeathMsg trzeba read_data() użyć, jak dobrze speedkill to wcześniej zrobił.

#22 Eustachy8

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 116
Zaawansowany

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

Napisano 01.11.2012 20:46

no wszystko ładnie, zamienia teamami w tym określonym przypadku, daje informacje co i jak. Lecz nie działa respawnienie killera, wywala serwer.
dodatkowo, licznik czasu pokazuje i TT i CT


public plugin_cfg(){
		maxPlayers = get_maxplayers();
		set_task(5.0, "frag", .flags="b");
set_task(1.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(){
new g_Killer = read_data( 1 );
		new g_Victim = read_data( 2 );
		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 ^x01zyl ^x04%i ^x01sec. Zabil go ^x04%s",szName,g_ltimer[g_Victim],szName2)

				}
		}
}
public dispTime()
{  
for(new id=1; id<=maxPlayers; ++id)
{
		if(is_user_connected(id) && 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: %d sek", g_ltimer[id]);
++g_ltimer[id];
}
}
}
public spawn_func(id)
{
	if(is_user_connected(id))
	{
		//Make the engine think he is spawning
		set_pev(id,pev_deadflag,DEAD_RESPAWNABLE);
		set_pev(id, pev_iuser1, 0);
		dllfunc(DLLFunc_Think,id)

		//Move his body so if corpse is created it is not in map
		engfunc(EngFunc_SetOrigin,id,Float:{-4800.0,-4800.0,-4800.0})

		//Actual Spawn
		set_task(0.5,"spawnagain",id)
	}
}

public spawnagain(id)
{
	//Make sure he didn't disconnect in the 0.5 seconds that have passed.
	if(is_user_connected(id))
	{
		//Spawn player
		spawn(id)
		dllfunc(DLLFunc_Spawn,id)

		//After 1.0 the player will be spawned fully and you can mess with the ent (give weapons etc)
		//set_task(1.0,"player_fully_spawned",id)
	}
}

@Edit: Zauważyłem, że licznik działa dobrze, jak jest jedna osoba (CT widzi, TT nie) ale jak jusz jest 1 vs 1 lub więcej, widzą wszyscy

ps.
jako twórców moda, już muszę umieścić 4 osoby ;D Miało być tylko n mój serwer, ale będzie to nie sprawiedliwe, więc jak tylko skończę (skończymy ;P ) udostępnię na forum ;)

Użytkownik Eustachy8 edytował ten post 01.11.2012 21:03

  • +
  • -
  • 0

24azdk0.jpg
b_350_20_692108_381007_FFFFFF_000000.png
 


#23 K!113r

    Czempion

  • Power User

Reputacja: 385
Wszechpomocny

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

Napisano 01.11.2012 21:10

Ja bym jednak zdecydował się na kanapkę: http://amxx.pl/dokum...cs-roundrespawn
zawsze u mnie działała niezawodnie.
  • +
  • -
  • 1

DarkGL to mój autorytet.

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


#24 Eustachy8

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 116
Zaawansowany

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

Napisano 01.11.2012 21:21

takie proste a takie skuteczne ;D.
to w sumie zostało już tylko ten licznik poprawić i będę na ostatniej prostej do ukończenia modu, wyrównywanie teamów do proporcji np 4 TT 1 CT :D

takie proste a takie skuteczne ;D.
to w sumie zostało już tylko ten licznik poprawić i będę na ostatniej prostej do ukończenia modu, wyrównywanie teamów do proporcji np 4 TT 1 CT :D
  • +
  • -
  • 0

24azdk0.jpg
b_350_20_692108_381007_FFFFFF_000000.png
 


#25 K!113r

    Czempion

  • Power User

Reputacja: 385
Wszechpomocny

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

Napisano 01.11.2012 21:29

Nie wiem czy to informacja czy prośba o pomoc, zawsze możesz np. skorzystać z tego http://amxx.pl/topic...-team-balancer/
  • +
  • -
  • 0

DarkGL to mój autorytet.

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


#26 Eustachy8

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 116
Zaawansowany

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

Napisano 01.11.2012 21:52

informacja ;D a sposób kanapeczka ma wade, spawni tylko na respie a nie w losowych miejscach jak na csdm
  • +
  • -
  • 0

24azdk0.jpg
b_350_20_692108_381007_FFFFFF_000000.png
 


#27 K!113r

    Czempion

  • Power User

Reputacja: 385
Wszechpomocny

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

Napisano 01.11.2012 22:11

Kanapka działa dobrze, bo standardowo nie ma edytowanych spawn'ów :D

Spróbuj może dołączając bibliotekę csdm natywu:

//Respawns a player correctly under the CSDM spawn system.
native csdm_respawn(player);

  • +
  • -
  • 0

DarkGL to mój autorytet.

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


#28 Eustachy8

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 116
Zaawansowany

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

Napisano 02.11.2012 00:18

eee po prostu wrzucić to do pluginu? Co dać zamiast player, bądź ogólnie, z czym to się je ;D
  • +
  • -
  • 0

24azdk0.jpg
b_350_20_692108_381007_FFFFFF_000000.png
 


#29 K!113r

    Czempion

  • Power User

Reputacja: 385
Wszechpomocny

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

Napisano 02.11.2012 00:26

ojojoj, no to prowadzimy za rączkę:
dołącz bibliotekę (do kompilacji musisz ją mieć w folderze include)

#include <csdm>

i zamiast spawnu kanapką daj:

csdm_respawn(id);

i sprawdź czy działa
  • +
  • -
  • 0

DarkGL to mój autorytet.

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


#30 Eustachy8

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 116
Zaawansowany

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

Napisano 02.11.2012 01:06

działa elegancko, dawno nie pisałem nic i nie myślę, albo poprostu jestem słaby :D A widzisz błąd w liczniku?
  • +
  • -
  • 0

24azdk0.jpg
b_350_20_692108_381007_FFFFFF_000000.png
 


#31 K!113r

    Czempion

  • Power User

Reputacja: 385
Wszechpomocny

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

Napisano 02.11.2012 01:49

twój błąd z licznikiem polega na tym, że wyświetla (przy 1 vs 1) info wszystkim? jeżeli tak to nie wiem czemu :D (jeżeli nie to opisz problem)

ale można skrócić z:

ShowSyncHudMsg(0, g_msgsync, "Zyjesz: %d sek", g_ltimer[id]);
++g_ltimer[id];

na

ShowSyncHudMsg(0, g_msgsync, "Zyjesz: %d sek", g_ltimer[id]++);

  • +
  • -
  • 0

DarkGL to mój autorytet.

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


#32 Eustachy8

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 116
Zaawansowany

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

Napisano 02.11.2012 09:17

już wiem czemu tak się dzieje ;D

ShowSyncHudMsg(0, g_msgsync, "Zyjesz: %d sek", g_ltimer[id]);
wyświetla informacje wszystkim ;D Plugin przez pęntle czeka tylko aż pojawi się jakiś CT (wpadłem na to pare sekund po wyłączeniu kompa wczoraj :D trzeba było poprostu target zmienić na ID
  • +
  • -
  • 0

24azdk0.jpg
b_350_20_692108_381007_FFFFFF_000000.png
 


#33 Eustachy8

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 116
Zaawansowany

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

Napisano 02.11.2012 10:32

jednak przyda mi się pomoc w wyrównywaniu graczy do proporcji
Killer to co dałeś z tego JB wyrównuje przy rozpoczęciu rundy, a tu runda trwa całą mapę
1 Ct wybieram w ten sposób:
w plugin init:
set_task(10.0, "losowanie");

dalej:

public losowanie()
{
ColorChat(0,RED,"[ BEL ] ^x01Losowanie CT");
new id_p=random_num(1,maxPlayers);
if(is_user_connected(id_p) && !(get_user_team(id_p) == 2) && !is_user_hltv(id))
{
cs_set_user_team(id_p, CS_TEAM_CT);
}
}

wyrównywanie myślałem by zrobić w

public DeathMsg(){
new g_Killer = read_data( 1 );
		new g_Victim = read_data( 2 );
		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);
//ExecuteHamB(Ham_CS_RoundRespawn, g_Killer);
csdm_respawn(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 ^x01zyl ^x04%i ^x01sec. Zabil go ^x04%s",szName,g_ltimer[g_Victim],szName2)

				}
		}
}
mam pomysł, ale gorzej z wykonaniem go. Musi sprawdzać jak tam z proporcją maxPlayers / TT na 1 CT (bo w trakcie gry liczba TT może zmaleć, bo ludzie powychodzą) i dodawać/odejmować kolejnego CT

Oczywiście wgrany jest plugin, który automatycznie wrzuca do TT każdego i blokuje możliwość zmiany teamu

Użytkownik Eustachy8 edytował ten post 02.11.2012 10:37

  • +
  • -
  • 0

24azdk0.jpg
b_350_20_692108_381007_FFFFFF_000000.png
 


#34 K!113r

    Czempion

  • Power User

Reputacja: 385
Wszechpomocny

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

Napisano 02.11.2012 21:31

Ja bym to zrobił tak: po wejściu na serwer automatycznie ustawia się drużynę gracza, jeżeli jest 0 ct i 0-1 tt, to idzie do CT, jeżeli nie to TT, no i oczywiście jeżeli jest ileś tam TT i wymagany jest kolejny CT to wpuścić nowego gracza z automatu do CT(oczywiście zablokować możliwość zmiany drużyny). Przy wyjściu jakiegoś gracza z serwera sprawdzać czy ilość ct jest wystarczająca (np. czy nie jest równa 0), jeżeli nie to losować jakiegoś TT i go przerzucić do CT. Niestety nie mam zbytnio czasu aby się w tym zagłębiać dzisiaj, pokombinuj coś z tym http://amxx.pl/topic...oin-management/ . Jak tylko znajdę pewną ilość czasu to wyłuskam jakiś kod (jeżeli sam sobie nie poradzisz :D )
  • +
  • -
  • 0

DarkGL to mój autorytet.

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


#35 Eustachy8

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 116
Zaawansowany

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

Napisano 09.11.2012 21:41

balance ustawiłem na swój sposób, mod zakończony, więc temat można zamknąć. Jeszcze raz dzięki wszystkim za pomoc
  • +
  • -
  • 0

24azdk0.jpg
b_350_20_692108_381007_FFFFFF_000000.png
 


#36 CheQ

    Nie wiem, nie znam się, nie orientuję się, zarobiony jestem.

  • Junior Admin

Reputacja: 1984
Godlike

  • Postów:5534
  • Imię:Adaś
  • Lokalizacja:Glinianka
Offline

Napisano 09.11.2012 21:47

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
  • +
  • -
  • 0

b_560_95_1.png





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

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