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

Optymalizacja kodu RangDam +


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

#1 maciej916

    Zaawansowany

  • Użytkownik

Reputacja: 2
Nowy

  • Postów:126
  • Imię:Maciej
  • Lokalizacja:Koźmin Wlkp
Offline

Napisano 26.04.2012 16:27

Wiem że ten kod nie jest dobrze zoptymalizowany. jak go zoptymalizować ?
#include <amxmodx>
#include <amxmisc>
#include <csx>

#define PLUGIN "Rangi"
#define VERSION "1.2"
#define AUTHOR "Bulle [t]"

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /ranga", "ranga", 0, "- wyswietla range i statystyki")
}

public ranga(id)
{

static stats[8], body[8]
get_user_stats(id, stats, body)

new ranga[38]

if ( stats[0] >= 0 && stats[0] <= 29)
format(ranga,29,"Spawacz el. Drewnianych")
else if ( stats[0] >= 30 && stats[0] <= 59)
format(ranga,29,"Pracownik Fizyczny")
else if ( stats[0] >= 60 && stats[0] <= 119)
format(ranga,29,"Znakomity Pracownik")
else if ( stats[0] >= 120 && stats[0] <= 209)
format(ranga,29,"Majster")
else if ( stats[0] >= 210 && stats[0] <= 324)
format(ranga,29,"Starszy Majster")
else if ( stats[0] >= 325 && stats[0] <= 499)
format(ranga,29,"Pracownik Fizyczny")
else if ( stats[0] >= 500 && stats[0] <= 729)
format(ranga,29,"Dekorator")
else if ( stats[0] >= 730 && stats[0] <= 999)
format(ranga,29,"Budowlaniec")
else if ( stats[0] >= 1000 && stats[0] <= 1399)
format(ranga,29,"Inzynier")
else if ( stats[0] >= 1400 && stats[0] <= 1849)
format(ranga,29,"Konstruktor")
else if ( stats[0] >= 1850 && stats[0] <= 2299)
format(ranga,29,"Konstruktor Budowlany")
else if ( stats[0] >= 2300 && stats[0] <= 2899)
format(ranga,29,"Projektant")
else if ( stats[0] >= 2900 && stats[0] <= 3549)
format(ranga,29,"Urbanista")
else if ( stats[0] >= 3550 && stats[0] <= 4199)
format(ranga,29,"Architekt")
else if ( stats[0] >= 4200 && stats[0] <= 4999)
format(ranga,29,"Mistrz Architektury Budowlanej")
else if ( stats[0] >= 5000 && stats[0] <= 9999)
format(ranga,29,"Reszta Jest Milczeniem")



set_hudmessage(255, 255, 255, 0.15, 0.45)
show_hudmessage(id, "Ranga: %s^nZabojstw: %d",ranga,stats[0])
}

Użytkownik maciej916 edytował ten post 26.04.2012 16:38

  • +
  • -
  • 0

#2 mierzwi

    Banned

  • Zbanowany

Reputacja: 235
Wszechwidzący

  • Postów:651
  • Lokalizacja:Polska
Offline

Napisano 26.04.2012 17:14

możesz zrobić tak
switch( stats[ 0 ] )
{
    case 0..29: formatex( ranga, sizeof ( ranga ) - 1, "Spawacz el. Drewnianych" );
    case 30..59: formatex( ranga, sizeof ( ranga ) - 1, "Pracownik Fizyczny" );
    
    /* I TAK DALEJ */
    
}

/* ============================ LUB ===================================*/

new const g_sWymogi[] =
{
    30,
    60,
    120,
    210
};

new const g_sRangi[][] =
{
    "Spawacz el. drewnianych",
    "Pracownik fizyczny",
    "Znakomity pracownik",
    "Majster"
};


/* W FUNKCJI */
new iLev;

for( new i = 0; i < sizeof ( g_sWymogi ); i++ )
{
    if( stats[ 0 ] > g_sWymogi[ i ] )
        iLev++;
    
    else
        break;
}
    
formatex( ranga, sizeof ( ranga ) - 1, "%s", g_sRangi[ iLev ] );


jeśli masz fejsa i chcesz mi pomóc to wejdź tutaj: Zaproś kumpla by lubił nasz sklep | Facebook

na pewno jakoś C się odwdzięczę!


#3 maciej916

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:126
  • Imię:Maciej
  • Lokalizacja:Koźmin Wlkp
Offline

Napisano 26.04.2012 17:46

czyli cały kod ma wyglądać tak ?
#include <amxmodx>
#include <amxmisc>
#include <csx>
#define PLUGIN "Rangi"
#define VERSION "1.2"
#define AUTHOR "Bulle [t]"
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /ranga", "ranga", 0, "- wyswietla range i statystyki")
}
new const g_sRangi[][] =
{
"Spawacz el. Drewnianych",
"Spawacz el. Metalowych",
"Pracownik Fizyczny",
"Majster",
"Starszy Majster",
"Pracownik Fizyczny",
"Dekorator",
"Budowlaniec",
"Inzynier",
"Konstruktor",
"Konstruktor Budowlany",
"Projektant",
"Urbanista",
"Architekt",
"Mistrz Architektury Budowlanej",
"Reszta Jest Milczeniem",
};
new const g_sWymogi[] =
{
0,
30,
60,
120,
210,
325,
500,
730,
1000,
1400,
1850,
2300,
2900,
3550,
4200,
5000
};

new iLev;
for( new i = 0; i < sizeof ( g_sWymogi ); i++ )
{
if( stats[ 0 ] > g_sWymogi[ i ] )
iLev++;

else
break;
}

set_hudmessage(255, 255, 255, 0.15, 0.45)
show_hudmessage(id, "Ranga: %s^nZabojstw: %d",ranga,stats[0])
}


jakieś błędy są

rangi.sma(57) : error 010: invalid function or declaration
rangi.sma(59) : error 010: invalid function or declaration
rangi.sma(62) : error 010: invalid function or declaration
rangi.sma(63) : error 010: invalid function or declaration
rangi.sma(65) : error 021: symbol already defined: "set_hudmessage"
rangi.sma(67) : warning 203: symbol is never used: "g_sRangi"
rangi.sma(67) : warning 203: symbol is never used: "g_sWymogi"
rangi.sma(67) : warning 203: symbol is never used: "iLev"

Użytkownik maciej916 edytował ten post 26.04.2012 17:49

  • +
  • -
  • 0

#4 mierzwi

    Banned

  • Zbanowany

Reputacja: 235
Wszechwidzący

  • Postów:651
  • Lokalizacja:Polska
Offline

Napisano 26.04.2012 18:44

nie wiem po co za optymalizowanie się bierzesz jak podstaw nie znasz :facepalm:
/* Plugin generated by AMXX-Studio */

#include		 < amxmodx >
#include		 < csx >

#define PLUGIN        "Rangi"
#define VERSION        "0.1a"
#define AUTHOR        "emu"


new const g_sRangi[][] =
{
	"Spawacz el. drewnianych",
	"Spawacz el. metalowych",
	"Pracownik fizyczny",
	"Majster",
	"Starszy majster",
	"Pracownik fizyczny",
	"Dekorator",
	"Budowlaniec",
	"Inzynier",
	"Konstruktor",
	"Konstruktor budowlany",
	"Projektant",
	"Urbanista",
	"Architekt",
	"Mistrz architektury budowlanej",
	"Reszta jest milczeniem"
};

new const g_sWymogi[] =
{
	30,
	60,
	120,
	210,
	325,
	500,
	730,
	1000,
	1400,
	1850,
	2300,
	2900,
	3550,
	4200,
	5000
};

public plugin_init()
{
	register_plugin( PLUGIN, VERSION, AUTHOR );
	
	register_clcmd( "say /ranga", "cmd_Show" );
	
	// Add your code here...
}

public cmd_Show(id)
{
	static iStats[ 8 ], iBodyHits[ 8 ], iLev;
	get_user_stats( id, iStats, iBodyHits );

	for( new i = 0; i < sizeof ( g_sWymogi ); i++ )
	{
		if( iStats[ 0 ] > g_sWymogi[ i ] )
			iLev++;
		else
			break;
	}

	set_hudmessage( 255, 255, 255, 0.15, 0.45 );
	show_hudmessage( id, "Ranga: %s^nZabojstw: %d", g_sRangi[ iLev ], iStats[ 0 ] );
}

Użytkownik emu edytował ten post 26.04.2012 18:46

jeśli masz fejsa i chcesz mi pomóc to wejdź tutaj: Zaproś kumpla by lubił nasz sklep | Facebook

na pewno jakoś C się odwdzięczę!


#5 maciej916

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:126
  • Imię:Maciej
  • Lokalizacja:Koźmin Wlkp
Offline

Napisano 26.04.2012 19:30

po prostu

jak zrobić aby rangi były wyświetlane cały czas
  • +
  • -
  • 0

#6 mierzwi

    Banned

  • Zbanowany

Reputacja: 235
Wszechwidzący

  • Postów:651
  • Lokalizacja:Polska
Offline

Napisano 26.04.2012 19:39

to zdecyduj się co chcesz, no ja...., ja już Ci nie pomogę, bo kur... lecisz w kulki :mur:

jeśli masz fejsa i chcesz mi pomóc to wejdź tutaj: Zaproś kumpla by lubił nasz sklep | Facebook

na pewno jakoś C się odwdzięczę!


#7 K!113r

    Teraz to chyba Sławek kek

  • Power User

Reputacja: 387
Wszechpomocny

  • Postów:868
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Piotrków Tryb.
Offline

Napisano 26.04.2012 20:18

wywalaj każdemu na HUD lub Color status - http://amxx.pl/topic...-diablobf2-itp/

możesz nawet zaszaleć i w tutorze
po prostu najprościej dajesz taska jak się gracz połączy z serwerem i co sekundę czy ile tam chcesz odświeżać mu (chociaż można odświeżać wolniej :D) oczywiście w tasku dajesz wyświetlenie rangi (tylko konkretnemu graczowi, czasem jako index nie podaj 0 xD)
  • +
  • -
  • 0

DarkGL to mój autorytet.

skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować


#8 maciej916

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:126
  • Imię:Maciej
  • Lokalizacja:Koźmin Wlkp
Offline

Napisano 27.04.2012 13:47

dobra mam a jak zrobić aby było wyświetlane Zabić: x/y
  • +
  • -
  • 0

#9 K!113r

    Teraz to chyba Sławek kek

  • Power User

Reputacja: 387
Wszechpomocny

  • Postów:868
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Piotrków Tryb.
Offline

Napisano 27.04.2012 14:51

wziąć i pobrać zabójstwa (te zapisane Ci chyba chodzi) do tablicy (na 32 graczy :P), a druga liczba to ten twój limit podać (albo sprawdzaj jaką ma rangę i daj limit do next rangi albo względem zabójstw, sam sobie ustaw warunek)
  • +
  • -
  • 0

DarkGL to mój autorytet.

skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować





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

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