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
Modyfikacja

Przeróbka pluginu - dd2_v18

Modyfikacja

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
1 odpowiedź w tym temacie

#1 'eXe'

    Profesjonalista

  • Zbanowany

Reputacja: 9
Nowy

  • Postów:164
  • GG:
  • Imię:PatryQ
  • Lokalizacja:Czeladz
Offline

Napisano 12.11.2011 13:04

Witam,

Proszę o przerobienie poniższego pluginu (aktualnie plugin restartuje mape, pokazuje najlepszego gracza rundy, blokuje bombsite B)
Prosiłbym aby ktoś mi przerobił ten plugin żeby tylko blokował bombsite b (na mapie dd2) od 10 graczy + napis na hudzie

/*
Changelog:
1.0 - pierwsze wydanie pluginu.
1.1 - poprawione zaliczanie punktu za wybuch C4
1.2 - dodana opcja zamiany druzyn
1.3 - dodanie rozgrzewki (pierwsza runda)
1.4 - lekkie bugfixy
1.5 - dodanie najlepszego gracza
1.6 - poprawione bledy
1.7 - dodanie dzwiekow na koniec gry (mp3), dodano limit 2 graczy by rundy zbednie sie nie dodawaly
1.8 - dodanie opcji only 1 bs
http://amxx-dev.pl
rr_limit - ilosc granych rund
rr_change 0/1 - zamiana druzyn po ukonczeniu rund
rr_restart 0/1 - czy 1 runda to rozgrzewka
rr_plainfo 0/1 - czy pokazywac info o najlepszym graczu
rr_winsound 0/1 - czy ma odgrywac piosenki
rr_only1bs 0/1 - czy gramy tylko na A (LICZBA Graczy LIMIT_GRACZY_<img src='https://amxx.pl/public/style_emoticons/<#EMO_DIR#>/cool.png' class='bbc_emoticon' alt='B)' />
*/
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#pragma semicolon 1
#define LIMIT_GRACZY_B 6
#define RESPAWN 9875
enum { MIN = 0, MAX };
// Dzwieki TT, CT w mp3 !
new const d[][] = { "sound/misc/dev/terwin.mp3", "sound/misc/dev/ctwin.mp3" };
// Polozenie bombsite (<img src='https://amxx.pl/public/style_emoticons/<#EMO_DIR#>/cool.png' class='bbc_emoticon' alt='B)' />
new Float: xyz[][] = {
{ -1736.3, 2348.1, -59.9 },
{ -1356.3, 2878.1, 160.0 }
};
new tt, ct, plimit, bool: roz = false, pchange, prestart, pinforma, psoundy, ponly1bs;
new SayText, SyncHudObj;
new tag[] = "!t[ amxx-dev.pl ]";
public plugin_precache() {
precache_sound(d[0]);
precache_sound(d[1]);
}
public plugin_init() {
register_plugin("DD2", "1.8", "byQQ");

register_event("HLTV", "event_RoundStart", "a", "1=0", "2=0");
register_event("DeathMsg", "event_DeathMsg", "a");
register_event("BarTime", "event_BarTime", "be", "1=3");

register_message(get_user_msgid("TextMsg"), "message_TextMsg");

plimit   = register_cvar("rr_limit", "20");
pchange  = register_cvar("rr_change", "1");
prestart = register_cvar("rr_restart", "0");
pinforma = register_cvar("rr_plainfo", "1");
psoundy  = register_cvar("rr_winsound", "1");
ponly1bs = register_cvar("rr_only1bs", "1");

SyncHudObj = CreateHudSyncObj();
SayText = get_user_msgid("SayText");

if(get_pcvar_num(prestart))
  WymusRes(60);
}
public WymusRes(czas) {
new param[1]; param[0] = czas;
set_task(1.0, "WyswietlRes", _, param, 1);
}
public event_RoundStart() {
if(roz) return;

new limit = get_pcvar_num(plimit);
new sumka = ct+tt;
new pozos = limit - (ct+tt);

if(sumka >= limit) {
  if(ct == tt) {
   msg(0, "%s!g Mamy remis, runda rozstrzygajaca", tag);
   return;
  }

  if(get_pcvar_num(pchange)) ZamianaTeam();

  set_cvar_num("sv_restart", 3);
  set_cvar_num("amx_reloadadmins", 1);
  if(tt > ct) {
   msg(0, "%s!g Wygrali Terrorysci %d/%d", tag, tt, ct);
   if(get_pcvar_num(psoundy)) client_cmd(0, "stopsound; mp3 stop; mp3 play %s", d[0]);
  }
  else {
   msg(0, "%s!g Wygrali Anty Terrorysci %d/%d", tag, ct, tt);
   if(get_pcvar_num(psoundy)) client_cmd(0, "stopsound; mp3 stop; mp3 play %s", d[1]);
  }
  if(get_pcvar_num(prestart)) WymusRes(50);
  ct = tt = 0;
} else {
  msg(0, "%s!g Restart mapy za %d rund%s", tag, pozos, (pozos == 1) ? "e" : (pozos < 5) ? "y" : "");

  if(get_pcvar_num(pinforma)) ZwrocNajlepszego();
}
}
public event_DeathMsg() {
new kid = read_data(1);
new vid = read_data(2);

if(!is_user_alive(kid) || !roz || get_user_team(kid) == get_user_team(vid))
  return PLUGIN_CONTINUE;

set_task(1.0, "OdrodzGracza", vid + RESPAWN);

return PLUGIN_CONTINUE;
}
public event_BarTime(id) {
if(roz || !is_user_alive(id) || get_playersnum() >= LIMIT_GRACZY_B || !get_pcvar_num(ponly1bs))
  return PLUGIN_CONTINUE;

if(gracz_na_b(id) && get_user_team(id) == 1) {
  set_hudmessage(250, 70, 0, -1.0, 0.4, 0, 0.0, 3.0);
  ShowSyncHudMsg(id, SyncHudObj, "Zbyt malo graczy by tu klasc^nOgarnij sie!");

  client_cmd(id, "drop weapon_c4");
}
return PLUGIN_CONTINUE;
}
public message_TextMsg(const MsgId, const MsgDest, const MsgEntity) {	  
static message[32]; get_msg_arg_string(2, message, charsmax(message));

if(get_playersnum() < 2)
  return PLUGIN_CONTINUE;

if(equal(message, "#Game_will_restart_in")) { Wyzeruj(); }
else if(equal(message, "#Terrorists_Win") || equal(message, "#Target_Bombed")) { tt++; }
else if(equal(message, "#CTs_Win")) { ct++; }

return PLUGIN_CONTINUE;
}
public ZamianaTeam() {
new players[32], num;
get_players(players, num, "ch");

for(new i = 0; i < num; i++) {
  fm_set_user_team(players[i], (get_user_team(players[i]) == 2) ? 1 : 2);
}
msg(0, "%s!g Zamieniam druzyny!", tag);
}
public Wyzeruj() ct = tt = 0;
public ZwrocNajlepszego() {
new players[32], num;
get_players(players, num);

new fragi, dedy, top[4];
for(new i = 0; i < num; i++) {
  new id = players[i];
  if(!is_user_connected(id) || is_user_hltv(id)) continue;

  fragi = get_user_frags(id);
  dedy = get_user_deaths(id);

  new suma = fragi*2 - dedy;

  if(suma > top[3]) {
   top[0] = fragi;						   // Fragi najlepszego
   top[1] = dedy;					 // Dedy najlepszego
   top[2] = id;							  // ID najlepszego
   top[3] = top[0]*2 - top[1];			   // Bilans do dalszego porownania
  }
}

if(!top[2]) return;

new name[33]; get_user_name(top[2], name, 32);

msg(0, "%s!g Najlepszym graczem jest !t%s (%d/%d)", tag, name, top[0], top[1]);
}
public WyswietlRes(param[]) {
set_hudmessage(0, 255, 0, 0.65, 0.75, 0, 0.0, 1.0, 0.0, 0.0);
ShowSyncHudMsg(0, SyncHudObj, "=== Rozgrzewka ===^n[Pozostaly czas: %d]", param[0]);

param[0]--;
roz = true;

if(param[0] >= 0) { set_task(1.0, "WyswietlRes", _, param, 1); }
else {
  roz = false;
  set_cvar_num("sv_restartround", 1);
  Wyzeruj();
}
}
public OdrodzGracza(taskid)
ExecuteHamB(Ham_CS_RoundRespawn, taskid - RESPAWN);
stock msg(const id, const string[], {Float, Sql, Resul,_}:...) {

new msgs[191], players[32], count = 1;
vformat(msgs, sizeof msgs - 1, string, 3);

replace_all(msgs, 190, "!g", "^4");
replace_all(msgs, 190, "!y", "^1");
replace_all(msgs, 190, "!t", "^3");

if(id) players[0] = id;
else get_players(players,count,"ch");

new index;
for (new i = 0 ; i < count ; i++)
{
  index = players[i];
  message_begin(MSG_ONE_UNRELIABLE, SayText, _, index);
  write_byte(index);
  write_string(msgs);
  message_end();
}
}
stock gracz_na_b(id) {
new Float: fO[3]; pev(id, pev_origin, fO);

if(xyz[MIN][0] < fO[0] && xyz[MIN][1] < fO[1] && xyz[MIN][2] < fO[2] &&
  xyz[MAX][0] > fO[0] && xyz[MAX][1] > fO[1] && xyz[MAX][2] > fO[2])
return 1;

return 0;
}
stock fm_set_user_team(id, team) {
if(!is_user_connected(id))
  return 0;

set_pdata_int(id, 114, team);
dllfunc(DLLFunc_ClientUserInfoChanged, id, engfunc(EngFunc_GetInfoKeyBuffer, id));

return 1;
}


Dam reputacje!

P.S
Próbowałem sam to jakoś przerobić i non-stop był błąd przy kompilacji ;/

Załączony plik  dd2_v18.sma   6,69 KB  35 Ilość pobrań
  dd2_v18.amxx

Pomoże ktoś?!

Użytkownik 'eXe' edytował ten post 11.11.2011 08:48


#2 luki02006

    Życzliwy

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:28
Offline

Napisano 02.01.2012 15:09

Łap to jest ten plugin, by wyłączyć lub grac na jeden bs zmieniasz cvar

rr_limit "20" - limit graczy na serwie (chyba to to nie jestem pewien)
rr_change "1" - czy po konciu rundy maja sie zmieniac teamy
rr_restart "0" - czy ma byc rozgrzewka
rr_plainfo "1" - info w grze.
rr_winsound "0" - muzyka na koniec rundy
rr_only1bs "0" - gra na jeden czy dwa bsy

http://www.multiupload.com/5MCHN6UHHF

Załączone pliki


  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: Modyfikacja

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

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