←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Jak ustawić speeda dla danego teamu ?

  • +
  • -
NoTa's Photo NoTa 25.08.2012

Witam , tak jak w tytule jak ustawić speed'a dla danego teamu ?
Quote

  • +
  • -
NoTa's Photo NoTa 25.08.2012

Ale mi pomogłeś , wiem jak wybrać dany team tylko nie wiem jak dodać do niego speed'a!

Jak ktoś bym mógł pokazać jak to zrobić na jakimś przykładzie będę wdzięczny :)
Edited by NoTa, 25.08.2012 15:54.
Quote

Gość_21977_* 25.08.2012

Automatyczna wiadomość


Ten temat został przeniesiony z forum

AMX Mod XPytania

do

Scripting AMXXPytania
Quote

Gość_21977_* 25.08.2012

Przykładowy plugin, który dodaje 200 punktów szybkości dla terrorystów
#include <amxmodx>
#include <fun>
#include <hamsandwich>

public plugin_init(){
register_plugin("speed", "0.1", "benio101");
RegisterHam(Ham_Spawn, "player", "SetSpeedPre", 1);
register_event("CurWeapon","SetSpeedPre","be","1=1");
}

public SetSpeedPre(id){
if(is_user_alive(id) && get_user_team(id)==1)//0-unassigned,1-TT,2-CT,3-spectator
SetSpeed(id);
}

public SetSpeed(id){
set_user_maxspeed(id, get_user_maxspeed(id)+200);

return PLUGIN_CONTINUE;
}
Pamiętaj, że zmiana broni / przybliżenia resetuje prędkość gracza.
Quote

  • +
  • -
NoTa's Photo NoTa 25.08.2012

Coś mi nie działa , wkleiłem to do pluginu i dodałem do tego linijke

case DAY_KNIFE:
  {
   new players[32], num, player;
   get_players( players,  num, "a" );
  
   for( new i = 0; i < num; i++ )
   {
    player = players[i];
    StripPlayerWeapons( player );
    SetSpeedPre(id);
   
    if( !is_user_alive( player ) )
	 continue;
   
    switch( cs_get_user_team( player ) )
    {
	 case CS_TEAM_CT:
	 {
	  set_user_maxspeed(player, get_user_maxspeed(id)+200);
	  give_item( player, "weapon_m3" );
	  set_user_health( player, 150 );
	  cs_set_user_bpammo( player, CSW_M3, 90 );
	 }
	
	 case CS_TEAM_T:
	 {
	  give_item( player, "weapon_shield" );
	  give_item( player, "weapon_knife" );
	  set_user_health( player, 35 );
	
	 }

Coś jest nie tak ?
Edited by NoTa, 25.08.2012 17:11.
Quote

Gość_21977_* 25.08.2012

Jeśli jako identyfikator gracza używasz player zamiast id, to konsekwentnie zamiast
set_user_maxspeed(player, get_user_maxspeed(id)+200);
użyj
set_user_maxspeed(player, get_user_maxspeed(player)+200);
Najlepiej pokaż cały kod, bo tak będzie to dłużej trwało.

SetSpeedPre(id);
to był tylko przykład pod prosty plugin. W każdym razie, w Twoim przypadku fragment
SetSpeedPre(id);
nie będzie potrzebny. Pamiętaj natomiast, aby na nowo zmienić prędkość w momencie zmiany broni / przybliżenia.
Quote

  • +
  • -
NoTa's Photo NoTa 25.08.2012

A i wiedz jak zrobić , jak zostanie ostatni tt to dana funkcja się wyłącza, a i że nie może podnieść inny broni tylko tą co mam .

Attached Files


Edited by NoTa, 25.08.2012 18:01.
Quote

  • +
  • -
glut's Photo glut 25.08.2012

Tu masz sprawdzenie czy jest ostatni w TT ;) i wtedy jakaś funkcja. a z tym drugim napisz jeszcze raz bo nie zrozumiałem :D

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Jezeli ostatni gracz funkcja"
#define VERSION "1.0"
#define AUTHOR "glut"


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

register_event("DeathMsg","death","a");
}
public death()
{
new i,liczba,maxplayer = get_maxplayers();

for(i=1 ; i<=maxplayer; i++)
{
if(is_user_alive(i) && get_user_team(i) == 1)
++liczba;
}
if(liczba == 1)
{
// tutaj twój kod jaki chcesz :)
}
}
Quote

  • +
  • -
NoTa's Photo NoTa 25.08.2012

Tak jak jest na cod mod ze dana klas nie może podnieść broni innej niż które ma

a i nie kapuje z tym
// tutaj twój kod jaki chcesz :)
Quote

  • +
  • -
glut's Photo glut 25.08.2012

Tu dodajesz coś jeżeli np został jeden TT to ma wykonać jakąś funkcję np zmniejszyć prędkość albo zwiększyć itd. :)
Quote

Gość_21977_* 25.08.2012

Co chcesz właściwie osiągnąć w tym kodzie?
Quote

  • +
  • -
NoTa's Photo NoTa 25.08.2012

speeda , do niektórych zabaw i blokada podnoszenia broni dla danych zabaw
:)
Quote

  • +
  • -
NoTa's Photo NoTa 26.08.2012

To wie ktoś jak dodać tego speeda+ blokowanie podnoszenia broni do poszczególnych zabaw ?
Quote

  • +
  • -
Czaso Umilacz's Photo Czaso Umilacz 27.08.2012

Gdzieś w kod:
public PlayerPreThink(id)
{
if(!is_user_alive(id))
  return;

new Float:Speed = 250.0;
Speed += get_user_team(id) == 1 ? 100.0 : 0.0;
Speed +=  get_user_team(id) == 2 ? 200.0 : 0.0;
entity_set_float(id, EV_FL_maxspeed, Speed);
}
I do plugin init:
RegisterHam(Ham_Player_PreThink, "player", "PlayerPreThink");
I zoom czy nie, zamiana broni czy nie wartość rośnie, tylko podmieniasz 100 i 200 w linijce Speed +=, oraz wybierasz drużynę ( 1 to chyba TT 2 to chyba CT ).

Jest to zrobione na szybciaka, więc dałem standardową prędkość 250 ( Float:Speed = 250.0; chyba z nożem );
Szło by to zrobić że zależne od broni, ale nie mam tabelki z prędkościami z danią bronią a by poszukać mam lenia w d*pie :P
Edited by Czaso Umilacz, 27.08.2012 09:07.
Quote

  • +
  • -
NoTa's Photo NoTa 28.08.2012

Dzięki ale już sam poradziłem sobie ze speed'em zostało tylko jeszcze blokada podnoszenia borni ,brania z dystrybutorów
ps + dla ciebie za chęci :)
Quote

  • +
  • -
K!113r's Photo K!113r 28.08.2012

A może w evencie cur weapon, sprawdzaj trzymaną broń, jeżeli != CSW_KNIVE to usuwaj wszystkie bronie i daj mu nóż.
Quote

Gość_21977_* 28.08.2012

Ogólnie blokada podnoszenia broni z użyciem HamSandwich:

RegisterHam(Ham_Touch, "weaponbox", "HamTouchPre", 0);
RegisterHam(Ham_Touch, "armoury_entity", "HamTouchPre", 0);

public HamTouchPre(weapon,id){
if(!pev_valid(weapon))// profilaktycznie sprawdza, czy bron jest nia naprawdę
return HAM_IGNORED;

if(!id || id>32 || !is_user_alive(id))// sprawdza, czy podnoszacym jest zyjacy gracz
return HAM_IGNORED;

if(warunek){// tutaj podaj jakis warunek na te "zabawy"
return HAM_SUPERCEDE;// zabroni podnoszenia broni
}

return HAM_IGNORED; // powoduje zignorowanie komendy, czyli pozwala na podniesienie broni

// mozna tez zabronic podnoszenia okreslonej broni, np. AWP:
new name[20];// pojemnik na model
pev(weapon, pev_model, name, 19);//pobranie modelu
if(containi(name, "w_awp")!=-1){// jesli model to AWP, to
return HAM_SUPERCEDE;// nie pozwol podniesc broni
}

return HAM_IGNORED;

//i inny przyklad: niepozwala terrorystom podnosic AWP
new name[20];
pev(weapon, pev_model, name, 19);
if(get_user_team(id)==1 && containi(name, "w_awp")!=-1){
return HAM_SUPERCEDE;
}

return HAM_IGNORED;
}
Warto też dodać wyjątek, np. dla C4
new name[20];
pev(weapon, pev_model, name, 19);
if(containi(name, "w_backpack") != -1){
return HAM_IGNORED;
}
aby można było wykonać cele mapy
Quote