←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

[COD] - Zrespienie na respie przeciwnika

Zablokowany

  • +
  • -
camilost - zdjęcie camilost 18.09.2010

W public Odrodzenie(id) dodałem przed returnem na końcu
if(informacje_przedmiotu_gracza[id][0] == 38)	set_task(1.0, "Tspawn", id)
Na końcu
Spoiler


I to w ogóle mnie nie teleportuje ^^
Odpowiedz

  • +
  • -
grankee - zdjęcie grankee 20.09.2010

Zmieć team gracza, spawnij, zmień nazad team na taki jaki miał. Unikniesz kombinacji i w ułamku sekundy osiągniesz cel.
Odpowiedz

  • +
  • -
camilost - zdjęcie camilost 20.09.2010

A dokładniej kiedy to zrobić? W Evencie nowej rundy? : P
Bo w Odrodzenie(id) to mi jedynie pewnie zmieni drużynę i ustawi z powrotem i tyle : D
Odpowiedz

  • +
  • -
grankee - zdjęcie grankee 22.09.2010

Wtedy, kiedy chcesz, żeby się odrodził na respie przeciwnika.
Nie mam przed soba sma COD moda...
Odpowiedz

  • +
  • -
camilost - zdjęcie camilost 22.09.2010

RegisterHam(Ham_Spawn, "player", "Odrodzenie", 1);
W tym git będzie? : P
Odpowiedz

  • +
  • -
grankee - zdjęcie grankee 22.09.2010

Tak, z tym, że uwarunkuj kto ma się odrodzić u przeciwnika, bo tak to wszscy sie beda odradzali
Odpowiedz

  • +
  • -
camilost - zdjęcie camilost 22.09.2010

To wiem akurat że musi być warunek ^^ Tam już wszystko miałem z tą funkcją z pierwszego posta ale coś ona nie działała ^^
Odpowiedz

  • +
  • -
grankee - zdjęcie grankee 23.09.2010

W pierwszej mojej odpowiedzi masz sposób jak to zrobić. Zrób tak i jak Ci nie będzie działało to daj kod i pokminimy dalej.
Odpowiedz

  • +
  • -
camilost - zdjęcie camilost 23.09.2010

Na razie prosta funkcja bez zmiennych ale i tak nie teleportuje... (Respi)

public Tspawn(id)
{
	new client = id
	
	new CsTeams:iTeam;
	iTeam = cs_get_user_team(client);
	
	if(!is_user_alive(client) || client != 0) 	return;
	
	switch(iTeam) {
		case CS_TEAM_T:
		{
			cs_set_user_team(client, CS_TEAM_CT, CS_DONTCHANGE)
		}
		case CS_TEAM_CT:
		{
			cs_set_user_team(client, CS_TEAM_T, CS_DONTCHANGE)
		}
		case CS_TEAM_SPECTATOR:
		{
			return;
		}
	}	
	set_task( 0.2, "TeleportMSG", client);
}

public TeleportMSG(client) {
	ExecuteHamB(Ham_CS_RoundRespawn, client)}
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 23.09.2010

if(!is_user_alive(client) || client != 0)       return; 
na
if( client == 0 || !is_user_alive(client))       return; 
Odpowiedz

  • +
  • -
grankee - zdjęcie grankee 24.09.2010

Daj Boże rozum poraz drugi... powiedz mi kiedy ma się ktoś zrespić na respie przeciwnika? Masz to uwarunkowane jakąś zmienną globalną?
Kolejna sprawa, czemu używasz ExecuteHamB a nie ExecuteHam, skoro nie wiesz z czym to pierwsze sie je?

masz tu funkcje, sprawdź czy działa
#include <amxmodx>
#include <cstrike>
#include <hamsandwich>

....

spawnij_u_przeciwnika(id)
{
new CsTeams:team=cs_get_user_team(id)
if(team=CS_TEAM_CT)
cs_set_user_team(id,CS_TEAM_T,CS_DONTCHANGE)
else if(team==CS_TEAM_T)
cs_set_user_team(id,CS_TEAM_CT,CS_DONTCHANGE)
ExecuteHam(Ham_Spawn,id)
cs_set_user_team(id,team,CS_DONTCHANGE)
return 0
}

Użytkownik grankee edytował ten post 24.09.2010 00:18
Odpowiedz

  • +
  • -
camilost - zdjęcie camilost 24.09.2010

Sobie już wczoraj poradziłem jak DarkGL, mi napisał co źle zrobiłem ^^.

Wygląda tak. ;P

public Tspawn(id)
{
	new client = id
	if(zrespilo[client] == 0)	return;
	ChangeTeams(client);
	set_task(0.7, "TeleportMSG", client);
}

public TeleportMSG(client)
{
	if(is_user_connected(client))
	{
		zrespilo[client]--;
		ExecuteHamB(Ham_CS_RoundRespawn, client);
		ChangeTeams(client);
	}
}

public ChangeTeams(client)
{
	new CsTeams:iTeam;
	iTeam = cs_get_user_team(client);
	
	if(client == 0 || !is_user_alive(client))	return;
	
	switch(iTeam)
	{
		case CS_TEAM_T:		cs_set_user_team(client, CS_TEAM_CT, CS_DONTCHANGE)
		case CS_TEAM_CT:	cs_set_user_team(client, CS_TEAM_T, CS_DONTCHANGE)
		case CS_TEAM_SPECTATOR:	return;
	}
}

public RestPrzeb(id)
{
	zrespilo[id] = 0;}

Zmienna zrespiło dostaje przed respem i sprawdza czy ma item w evie RegisterHam(Ham_Spawn, "player", "Odrodzenie", 1);
Odpowiedz

  • +
  • -
Pawex - zdjęcie Pawex 24.09.2010

UP, Moze napisz Tutka jak to zrobic bo nie kazdy sie polapie :P

No np. Mozna zrobic z tego item lub klase :o
Ja mowilem "moze", A tak w ogole to czy Szpieg nie ma 10 procent za zprespienie sie u przeciwnika? Gdzies takie cos widzalem, chyba nawet w swoim sma, ale nie moge teraz tego znalezc.
Użytkownik Pawex edytował ten post 24.09.2010 15:49
Odpowiedz

  • +
  • -
camilost - zdjęcie camilost 24.09.2010

@UP A czy to ma być modyfikacja? : ] Zbędny post? Dział Scripting > Problemy. A Twoja wypowiedź mi w niczym nie pomogła ;d

Miałem problem z błędnym kodem i chciałem go rozwiązać, podałem go, bo może ktoś zrobi go na lepszy : )
Odpowiedz

  • +
  • -
Cypis' - zdjęcie Cypis' 24.09.2010

grankee, twoj kod dziala :D
@@edit
mam buga zrespie sie u przeciwnika ale np. jestem w ct to na poczatku rundy przeniesie mnie na resp tt a po deadzie zostane w tt
Użytkownik patryk4815 edytował ten post 24.09.2010 17:07
Odpowiedz
Zablokowany