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

Przypisywanie ulepszeń (np. hp) dla rangi za fragi.


Najlepsza odpowiedź Linux' , 18.04.2016 16:12

Rusz glową, dlaczego tak sie dzieje skoro public poprawna_ranga(id) nie jest nigdzie przypisany o_O .

 

Spoiler

 

Jesli nie chcesz korzystac z case to wystarczy je pominac, nawet nie trzeba go dodawac. Poza tym pamietaj o tabulatorach!

Przejdź do postu


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

#1 Robiin

    Godlike

  • Support Team

Reputacja: 1 106
Super Hero

  • Postów:2 049
  • Imię:Robert
  • Lokalizacja:Wrocław
Online

Napisano 18.04.2016 00:33

Cześc, 
nie do końca wiem, jak się za to zabrać, ale potrzebuję aby do każdej rangi można było przypisać dodatek (na przykład ranga 1=+5 hp, ranga 2=+10hp)

 

Rangi stąd;

https://amxx.pl/topi...it-by-pineksio/

 

 


  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#2 Linux'

    Pan Pomocny

  • Power User

Reputacja: 549
Wszechwiedzący

  • Postów:1 501
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:AmxMod i SourceMod
Offline

Napisano 18.04.2016 08:29

Musisz przechwycić aktualna range gracza a następnie ustawiać mu zdrowie przy odrodzeniu, np ranga gracza*5.
  • +
  • -
  • 1

b35020692_qesnxqa.png


#3 Robiin

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 106
Super Hero

  • Postów:2 049
  • Imię:Robert
  • Lokalizacja:Wrocław
Online

Napisano 18.04.2016 09:16

Musisz przechwycić aktualna range gracza a następnie ustawiać mu zdrowie przy odrodzeniu, np ranga gracza*5.

 

Nie rozumiem albo jestem głupi, mam zrobić zmienną

ranga_gracza = pobierz_range_gracza

 

ranga_gracza*5?

 

Może jakiś przykładzik? xD


  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#4 Linux'

    Pan Pomocny

  • Power User

Reputacja: 549
Wszechwiedzący

  • Postów:1 501
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:AmxMod i SourceMod
Offline

Napisano 18.04.2016 11:22

Wychwytujesz moment odrodzenia i dodajesz

set_user_health(id, 100+ranga_gracza[id]*5);

Zdrowie będzie wzrastać o 5 przy każdej randze.


  • +
  • -
  • 1

b35020692_qesnxqa.png


#5 Robiin

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 106
Super Hero

  • Postów:2 049
  • Imię:Robert
  • Lokalizacja:Wrocław
Online

Napisano 18.04.2016 11:52

Spoiler

 

co mi wyszło ^, ale problem jest taki że hp mi dodaje o 43, bo po respie mam 143 ;> (Pewnie coś źle zrobiłem, albo znowu robie z siebie debila i wykładam się na najprostszym  :facepalm:  :facepalm: )


  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#6 Linux'

    Pan Pomocny

  • Power User

Reputacja: 549
Wszechwiedzący

  • Postów:1 501
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:AmxMod i SourceMod
Offline

Napisano 18.04.2016 15:07

Musisz przechwycić numer rangi gracza do zmiennej a ty próbujesz wykonać funkcje na stringu. Nie testowałem ale się kompiluje

#include <amxmodx>
#include <amxmisc>
#include <csx>
#include <fakemeta>
#include <fun>
#include <hamsandwich>

#define PLUGIN "Rangi"
#define VERSION "1.0"
#define AUTHOR "Sn!ff3r" /* Edit by Real */

#define TASK 666

#define ADMIN_FLAG ADMIN_LEVEL_H
/* TUTAJ WYZEJ ZMIEN FLAGE VIPA NA SWOJA */

new ranga_gracza[33];
new nazwy_rang[][] =
{
	"Brak", // 0
	"Poczatkowy", // 1
	"Bywalec", // 2
	"Mistrz", // 3
	"Staly Bywalec", // 4
	"KoX", // 5
	"Kat", // 6
	"Kozak", // 7
	"Macho", // 8
	"Snajper", // 9
	"Rambo", // 10
	"Terminator" // 11
};
public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	RegisterHam(Ham_Spawn, "player", "Fw_PlayerSpawnPost", 1)
}
public client_connect(id)
{
	if(is_user_bot(id))
		return
	
	new param[1]
	param[0] = id
	set_task(1.0,"rank",TASK+id,param,1,"b")
}
public client_disconnect(id)
{
	if(task_exists(TASK+id))
		remove_task(TASK+id)
}
public rank(param[])
{	
	static stats[8], body[8]
	new id = param[0]	
	if(!is_user_alive(id))
	{
		id = pev(id, pev_iuser2);
		if(!id)
			id = param[0]
	} 
	
	get_user_stats(id, stats, body)
	if ( stats[0] >= 0 && stats[0] <= 29)
		ranga_gracza[id] = 1;
	else if ( stats[0] >= 30 && stats[0] <= 59)
		ranga_gracza[id] = 2;
	else if ( stats[0] >= 60 && stats[0] <= 119)
		ranga_gracza[id] = 3;
	else if ( stats[0] >= 120 && stats[0] <= 209)
		ranga_gracza[id] = 4;
	else if ( stats[0] >= 210 && stats[0] <= 324)
		ranga_gracza[id] = 5;
	else if ( stats[0] >= 325 && stats[0] <= 499)
		ranga_gracza[id] = 6;
	else if ( stats[0] >= 500 && stats[0] <= 729)
		ranga_gracza[id] = 7;
	else if ( stats[0] >= 730 && stats[0] <= 999)
		ranga_gracza[id] = 8;
	else if ( stats[0] >= 100 && stats[0] <= 1399)
		ranga_gracza[id] = 9;
	else if ( stats[0] >= 1400 && stats[0] <= 1849)
		ranga_gracza[id] = 10;
	else if ( stats[0] >= 1850 && stats[0] <= 2299)
		ranga_gracza[id] = 11;

	new name[33]
	get_user_name(id,name, charsmax(name))
	set_hudmessage(255, 255, 255, 0.01, 0.17)
	show_hudmessage(id, "| Nick: %s^n| Ranga: %s^n| Zabojstw: %d^n| Postep: %i/11^n| VIP: %s", name , nazwy_rang[ranga_gracza[id]], stats[0], ranga_gracza[id], get_user_flags(id) & ADMIN_FLAG ? "Tak" : "Nie")
}
public Fw_PlayerSpawnPost(id)
{
	if (is_user_alive(id))
		set_user_health(id, 100+ranga_gracza[id]*5);
}

  • +
  • -
  • 1

b35020692_qesnxqa.png


#7 Robiin

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 106
Super Hero

  • Postów:2 049
  • Imię:Robert
  • Lokalizacja:Wrocław
Online

Napisano 18.04.2016 15:31

No dobra, problem jest taki, że hp dodaje, ale do 110/115, a wyżej już nie.

 

A jakby to zrobić, żeby do każdej rangi przypisać inny dodatek? ;>

public poprawna_ranga(id)
{
	if(ranga_gracza[1])
	{
		set_user_health(id, get_user_health(id)+5);
	}
}

? Czy nie? :v


  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#8 Linux'

    Pan Pomocny

  • Power User

Reputacja: 549
Wszechwiedzący

  • Postów:1 501
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:AmxMod i SourceMod
Offline

Napisano 18.04.2016 15:34

nie if(ranga_gracza[1]) a najwyzej (ranga_gracza[id] == 1). Poza tym lepiej uzyc tablicy, tak jak z nazwami


  • +
  • -
  • 1

b35020692_qesnxqa.png


#9 Robiin

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 106
Super Hero

  • Postów:2 049
  • Imię:Robert
  • Lokalizacja:Wrocław
Online

Napisano 18.04.2016 15:38

Czyli

public poprawna_ranga(id)
{
	if(ranga_gracza[id] == 1)
	{
		set_user_health(id, get_user_health(id)+5);
	}
	if(ranga_gracza[id] == 2)
	{ 
		// Dla rangi z id 2, czyli 	"Bywalec"
		set_user_health(id, get_user_health(id)+10);
}

(tylko zamiast get_user_health(id), to 100+10, tak?)

i wtedy ranga bywalec 100+10 hp tak?


  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#10 Linux'

    Pan Pomocny

  • Power User

Reputacja: 549
Wszechwiedzący

  • Postów:1 501
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:AmxMod i SourceMod
Offline

Napisano 18.04.2016 15:45

Tak tylko jezeli nie chcesz uzywac tablicy to uzyj switcha, bedzie optymalniej. Czyli

switch(ranga_gracza[id])
{
	case 0:
	{

	}
	case 1:
	{

	}
	case 2:
	{

	}
}

// i tak dalej

  • +
  • -
  • 1

b35020692_qesnxqa.png


#11 Robiin

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 106
Super Hero

  • Postów:2 049
  • Imię:Robert
  • Lokalizacja:Wrocław
Online

Napisano 18.04.2016 15:53

No nie, już myślałem że dziobie i do zamknięcia, a jednak  :mur:  :mur:

 

Nie dodaje bonusów

Spoiler

Użytkownik asik edytował ten post 18.04.2016 15:54

  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#12 Linux'

    Pan Pomocny

  • Power User

Reputacja: 549
Wszechwiedzący

  • Postów:1 501
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:AmxMod i SourceMod
Offline

Napisano 18.04.2016 16:12   Najlepsza odpowiedź

Rusz glową, dlaczego tak sie dzieje skoro public poprawna_ranga(id) nie jest nigdzie przypisany o_O .

 

Spoiler

 

Jesli nie chcesz korzystac z case to wystarczy je pominac, nawet nie trzeba go dodawac. Poza tym pamietaj o tabulatorach!


  • +
  • -
  • 1

b35020692_qesnxqa.png


#13 Robiin

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 106
Super Hero

  • Postów:2 049
  • Imię:Robert
  • Lokalizacja:Wrocław
Online

Napisano 18.04.2016 16:38

Rusz glową, dlaczego tak sie dzieje skoro public poprawna_ranga(id) nie jest nigdzie przypisany o_O .

 

Spoiler

 

Jesli nie chcesz korzystac z case to wystarczy je pominac, nawet nie trzeba go dodawac. Poza tym pamietaj o tabulatorach!

 

Ja serio jestem głupi -.-  :facepalm:

Zawsze się wykładam na najprostszym .__.

Dzięki wielkie, sory za problem bo się ciut ośmieszyłem  ;>  ;>


  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#14 rzeznik9871

    Wszechwidzący

  • Użytkownik

Reputacja: 80
Zaawansowany

  • Postów:260
Offline

Napisano 18.04.2016 17:27

na co robic jakies smierdzacy ify czy casey jak mozna 10 tysiecy razy ladniej i optymalniej

public Fw_PlayerSpawnPost(id)
{
	set_user_health(id,get_user_health(id)+ranga_gracza[id]*5)
}

tak jak to napisal linux...


  • +
  • -
  • 0

Cześć


#15 Robiin

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 106
Super Hero

  • Postów:2 049
  • Imię:Robert
  • Lokalizacja:Wrocław
Online

Napisano 18.04.2016 17:36

na co robic jakies smierdzacy ify czy casey jak mozna 10 tysiecy razy ladniej i optymalniej

public Fw_PlayerSpawnPost(id)
{
	set_user_health(id,get_user_health(id)+ranga_gracza[id]*5)
}

tak jak to napisal linux...

HP to dla wygody wyjaśnienia przykładu Linuxa. Dodatki mam w zamiarze zrobić inne dla każdej rangi. Dlatego też, łatwiej jest mi zrobić to w case'ach

 

 

 

Temat do zamknięcia. Dziękuję wszystkim  ;)


  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.





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

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