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

Kilka pytań - top15, sprite


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

#1 Nenczoks

    Banned

  • Zbanowany

Reputacja: 50
Pomocny

  • Postów:358
  • Lokalizacja:Warszawa
Offline

Napisano 01.07.2012 12:00

Witam. Mam kilka pytań:

1. Chciałbym się dowiedzieć jak wykryć w TOP15 (statsx.amxx) 1, 2 i 3 miejsce? Lub czy istnieje już modyfikacja TOP15, która 1, 2 i 3 miejsca wyróżnia w TOP15. Jakoś nie mogłem tego znaleźć, być może źle szukałem.

2. Czy ktoś mógłby wypisać ciekawe sprite w cs lub cs:cz (bo można do CS 1.6 używać sprite, modele i mapy z CS:CZ). Mam na myśli, np. strzałki jakieś lub ciekawe linie.

3. Jaki event najlepiej użyć, aby pobrać zadane obrażenia drugiemu graczowi i tyle ile zadam tyle dostanę, np. pieniędzy?

#2 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 01.07.2012 12:47

1. TOP15 jest podstawową komendą AMX MOD X i mieści się w pluginie statsx.amxx

Najłatwiej będzie Ci edytować funkcję format_top15() z pliku statsx.sma, ponownie skompilować i podmienić plik statsx.amxx.
Zalecam wykonać kopię bezpieczeństwa pliku statsx.amxx przed podmianą.

W pętli
for(new i = 0; i < 15 && MAX_BUFFER_LENGTH - iLen > 0; i++) 
możesz dla i<3 dodać kod HTML, zmieniający kolor.
Pamiętaj jednak, że top15, jako, że wyświetlane w TOP15, ma swoje ograniczenia dot. liczby znaków.

U mnie, bez wyróżniania, zmodyfikowany top15 wygląda tak:
format_top15(sBuffer[MAX_BUFFER_LENGTH + 1])
{
new iMax = get_statsnum()
new izStats[8], izBody[8]
new iLen = 0

if (iMax > 15)
iMax = 15

new lEff[16], lAcc[16]

//format(lKills, 15, "%L", LANG_SERVER, "KILLS")
//format(lDeaths, 15, "%L", LANG_SERVER, "DEATHS")
//format(lHits, 15, "%L", LANG_SERVER, "HITS")
//format(lShots, 15, "%L", LANG_SERVER, "SHOTS")
//format(lEff, 15, "%L", LANG_SERVER, "EFF")
//format(lAcc, 15, "%L", LANG_SERVER, "ACC")

ucfirst(lEff)
ucfirst(lAcc)

//iLen = format(sBuffer, MAX_BUFFER_LENGTH, "<body bgcolor=#000000><font color=#FFB000><pre>")
//iLen += format(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "%2s %-22.22s %6s %6s %6s %6s %4s %4s %4s^n", "#", "Nick", lKills, lDeaths, lHits, lShots, "HS", lEff, lAcc)

iLen = format( sBuffer, MAX_BUFFER_LENGTH,"<body bgcolor=#000000><font color=#FFB000><pre>" );
iLen += format( sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "%5s %-25.25s %7s %9s %9s %8s %10s %3s %3s %2s^n^n"," #","Nick","Pkt =","Fragi -","Zgony","Uderz","Strzal","HS","Ef","Ce");

/*for (new i = 0; i < iMax && MAX_BUFFER_LENGTH - iLen > 0; i++)
{
get_stats(i, izStats, izBody, t_sName, MAX_NAME_LENGTH)
replace_all(t_sName, MAX_NAME_LENGTH, "<", "[")
replace_all(t_sName, MAX_NAME_LENGTH, ">", "]")
iLen += format(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "%2d %-22.22s %6d %6d %6d %6d %4d %3.0f%% %3.0f%%^n", i + 1, t_sName, izStats[STATS_KILLS],
izStats[STATS_DEATHS], izStats[STATS_HITS], izStats[STATS_SHOTS], izStats[STATS_HS], effec(izStats), accuracy(izStats))
}*/

new iOldLen = 0;

for(new i = 0; i < 15 && MAX_BUFFER_LENGTH - iLen > 0; i++)
{
new check = get_stats(i, izStats, izBody, t_sName, MAX_NAME_LENGTH);

if ( check == 0 )
return;

iOldLen = iLen;
iLen += format( sBuffer[iLen], MAX_BUFFER_LENGTH - iLen,
"%6d %-22.22s %6d %9d %9d %9d %9d %6d %3d %3d^n", i+1, t_sName,
izStats[STATS_KILLS]-izStats[STATS_DEATHS], izStats[STATS_KILLS], izStats[STATS_DEATHS], izStats[STATS_HITS],
izStats[STATS_SHOTS], izStats[STATS_HS], floatround(effec(izStats)), floatround(accuracy(izStats)));

while(MAX_BUFFER_LENGTH-iLen > 2 && replace(sBuffer[iOldLen], MAX_BUFFER_LENGTH-iOldLen, "<", "&lt;")) {
iLen += 3;
}
}
}


3. Polecam Ci Ham_TakeDamage z z bilioteki ham_sandwich, koniecznie z ostatnim parametrem równym 1.

#3 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 01.07.2012 12:48

Automatyczna wiadomość


Ten temat został przeniesiony z forum

AMX Mod XPytania

do

Scripting AMXXPytania

#4 speedkill

    Godlike

  • Przyjaciel

Reputacja: 1 592
Godlike

  • Postów:2 733
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Prudnik
Offline

Napisano 01.07.2012 15:44

1. http://forums.allied...ad.php?t=111260
3. http://amxx.pl/topic...e-na-obrazenia/
  • +
  • -
  • 1

If you can dream it, you can do it.


#5 Nenczoks

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 50
Pomocny

  • Postów:358
  • Lokalizacja:Warszawa
Offline

Napisano 01.07.2012 17:07

O to mi chodziło speedkill z tym 1. A ma ktoś ciekawe sprite? Np. szlaczki za graczem (nazwy)?

#6 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 01.07.2012 18:23

Tutaj masz małą listę sprite`ów wraz z obrazkami. Zamień końcówkę z .bmp na .spr, aby używać wybranego sprite`a.
Tutaj z kolei masz większą listę sprite`ów, lecz bez obrazków. Być może na coś lista Ci się przyda.

Do szlaczków za graczem polecam sprites/steam1.spr

#7 Fili:P

    Godlike

  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 02.07.2012 08:39

3. Jaki event najlepiej użyć, aby pobrać zadane obrażenia drugiemu graczowi i tyle ile zadam tyle dostanę, np. pieniędzy?

Możesz użyć forwardu client_damage z csx. http://amxx.pl/dokum...3/client-damage
  • +
  • -
  • 1




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

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