←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

[ROZWIĄZANE] Funkcja ktora zabija cały mój...

  • +
  • -
Bloody_ - zdjęcie Bloody_ 13.05.2012

Witam czy jest taka funkcja że po użyciu klasy/perku zabije cały mój team oprócz mnie z góry thx.
Odpowiedz

  • +
  • -
radim - zdjęcie radim 13.05.2012

public cod_class_skill_used(id)

{

if(!is_user_connected(id) || !is_user_alive(id))

return PLUGIN_CONTINUE;



new players[ 32 ], pnum, pid, team = get_user_team( id );

get_players( players, pnum, "a" )

for( new i; i < pnum; i++ )

{

pid = pnum[ i ]

if( get_user_team( pid ) == team )

cod_inflict_damage(id, pid, float(get_user_health(pid))+1.0, 0.0, 0, 1);

}

return PLUGIN_CONTINUE;

}

Użytkownik radim edytował ten post 14.05.2012 07:37
Odpowiedz

  • +
  • -
Engi - zdjęcie Engi 13.05.2012

Żeby nie pisać nowego tematu jak to przerobić żeby zabijało cały przeciwny team?
Odpowiedz

  • +
  • -
radim - zdjęcie radim 13.05.2012

if( get_user_team( pid ) == team )
na:
if( get_user_team( pid ) != team )
Odpowiedz

  • +
  • -
Engi - zdjęcie Engi 13.05.2012

Ok, działa + dla ciebie :)
Odpowiedz

  • +
  • -
Bloody_ - zdjęcie Bloody_ 13.05.2012

a to bierze killa do ranku? gościom z mojego timu?
Odpowiedz

  • +
  • -
radim - zdjęcie radim 13.05.2012

Liczy to jak zabojstwo z rakiety/miny/dynamitu. A nie wiem czy wlicza się zabójstwa z rakiet itp. do ranku.
Odpowiedz

  • +
  • -
Engi - zdjęcie Engi 13.05.2012

Liczy to jak zabojstwo z rakiety/miny/dynamitu. A nie wiem czy wlicza się zabójstwa z rakiet itp. do ranku.

Nie wlicza tzn jak wciśnie TAB to będzie pokazywało, że zabił ale jak wpisze /rank to nie będzie mu tam zaliczało
Odpowiedz

  • +
  • -
Bloody_ - zdjęcie Bloody_ 13.05.2012

używam kompilacji lokalnej i mam takie cuś: Error: Invalid subscript (not an array or too many subscripts): "pnum" on line 166
Odpowiedz

Gość_21977_* 13.05.2012

pnum, pid na pnum=31, pid
Odpowiedz

  • +
  • -
Bloody_ - zdjęcie Bloody_ 14.05.2012

benio101 możesz zrobić tą funkcję ze zmianą którą dałeś powyżej bo Cię nie rozumię :S
Odpowiedz

  • +
  • -
Engi - zdjęcie Engi 14.05.2012

public cod_class_skill_used(id)
{
if(!is_user_connected(id) || !is_user_alive(id))
return PLUGIN_CONTINUE;

new players[ 32 ], pnum=31, pid, team = get_user_team( id );
get_players( players, pnum, "a" )
for( new i; i < pnum; i++ )
{
pid = pnum[ i ]
if( get_user_team( pid ) == team )
cod_inflict_damage(id, pid, float(get_user_health(pid))+1.0, 0.0, 0, 1);
}
return PLUGIN_CONTINUE;
}
Odpowiedz

  • +
  • -
G[o]Q - zdjęcie G[o]Q 14.05.2012

po pierwsze benio pisze jakies glupoty jak zwykle po drugie pokaz caly kod a po trzecie warto dodac sprawdzanie czy team to nie spect xD

edit

blad w kodzie radima

pid = pnum[ i ]

na

pid = players[ i ]

Użytkownik G[o]Q edytował ten post 14.05.2012 12:49
Odpowiedz

  • +
  • -
Bloody_ - zdjęcie Bloody_ 14.05.2012

kod: http://amxx.pl/wklejka/13369962380/ jak więc kompiluję lokalnie "kod radmima" nie BENIA to tu mi wykrywa błąd= pid = pnum[ i ]

sprawdzę bo widzę że edytowałeś posta :D

Nie działa kod radima + zmiana Goq'a kiedy wciskam e to MI zabiera hp...
Odpowiedz

Gość_21977_* 14.05.2012

Albo tak, zależy jaki chcesz uzyskać rezultat (ta funkcja po prostu zabija cały team gracza (id), oprócz niego samego):

public kill_my_team(id){
new maxpl=get_maxplayers();
new team=get_user_team(id);
if(team%3)
for(new i=1;i<=maxpl;++i)
if(i!=id && is_user_alive(i) && !is_user_hltv(i) && get_user_team(i)%3 && get_user_team(i)-team)
user_kill(i);

return PLUGIN_CONTINUE;
}
Odpowiedz

  • +
  • -
radim - zdjęcie radim 14.05.2012

Po poprawkach moich i uwagach GoQ wyszedł oto taki kod, który powinien działać:
public cod_class_skill_used(id)
{
if(!is_user_connected(id) || !is_user_alive(id))
return PLUGIN_CONTINUE;

new players[ 32 ], pnum, pid, team = get_user_team( id );
get_players( players, pnum, "a" )
for( new i; i < pnum; i++ )
{
pid = players[ i ]

if(cs_get_user_team(pid) == CS_TEAM_SPECTATOR)
return PLUGIN_CONTINUE;

if( get_user_team( pid ) == team )
user_kill(pid)
}
return PLUGIN_CONTINUE;
}
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 14.05.2012

:facepalm:
public cod_class_skill_used(id) {
if(!is_user_alive(id))
return;

new players[32], pnum, pid, i, team = get_user_team(id);
get_players(players, pnum, "a");
for(i=0; i<pnum; ++i) {
pid = players[i];

if(pid != id && get_user_team(pid) == team)
user_kill(pid, 1);
}
}

Co do sprawdzania czy gracz nie jest na spekcie, to przy zabijaniu całej swojej drużyny nie trzeba tego tutaj sprawdzać.
Odpowiedz

  • +
  • -
Bloody_ - zdjęcie Bloody_ 14.05.2012

sorka że tyle mam próśb ale czy mógłby ktoś jeszcze zrobić że jak użyję to zabija mnie, mój team, i wrogi team?.thx
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 14.05.2012

public cod_class_skill_used(id) {
if(!is_user_alive(id))
return;

new players[32], pnum, i;
get_players(players, pnum, "a");
for(i=0; i<pnum; ++i)
user_kill(players[i], 1);
}
Odpowiedz

  • +
  • -
Bloody_ - zdjęcie Bloody_ 14.05.2012

@UP czy twój kod zabija mnie, mój team i team wroga?
Odpowiedz