←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

[Mój mod][Expenie na Klasie NONE]Problem

Zablokowany

  • +
  • -
Gh0st - zdjęcie Gh0st 02.07.2011

Witam , dziś bawaiłem się w pisanie własnego moda (Transformers mod) xD
Wiec tak , Chcę żeby nie dało się expić na klasie none ( probowałem ale nie wyszło)
Nie otwiera się menu rozdania statystyk a powinno .

Tutaj daje .sma
Użytkownik Gh0st edytował ten post 03.07.2011 14:53
Odpowiedz

Masło - zdjęcie Masło 02.07.2011

A może zrób tak żeby:
* nie było klasy NONE tylko pierwsza w liście klas ?
:mellow: :mellow: :mellow: :mellow: :mellow:
Odpowiedz

  • +
  • -
R3X - zdjęcie R3X 02.07.2011

klasa none jest potrzebna, bo zanim wybierzesz klasę to musisz mieć punkt odniesienia


public Zapisz(id)
{
	if(player_klasa[id] == NONE) return PLUGIN_CONTINUE;

zrób sobie funkcję, którą będzie rozdawał xp graczom i tam walnij ten sam warunek
Odpowiedz

  • +
  • -
Gh0st - zdjęcie Gh0st 03.07.2011

R3X masz + .

Mogę prosić o .sma ?
Proszę :)
Odpowiedz

  • +
  • -
R3X - zdjęcie R3X 03.07.2011

sma masz w pierwszy poście

Jeśli nie umiesz zrobić funkcji, która dodaje graczowi XP i oczekujesz żebym to ja uzupełnił kod nie powinieneś zabierać się za pisanie moda.
Odpowiedz

  • +
  • -
Gh0st - zdjęcie Gh0st 03.07.2011

A ktoś powiedział że nie umiem ? , nie jestem pewnie . wolałem napisać żeby ktoś zrobił niż ja bym zrobił i może by coś nie działało i bym zakładał nowy Topick ...
Odpowiedz

  • +
  • -
R3X - zdjęcie R3X 03.07.2011

Takie wrażenie zrobił na mnie ten kod:

Absurd
if (player_rasa[id] == NONE) 
{
	get_pcvar_num(cZabojca) == 0
}

pętla w SprawdzPoziom(id) spamuje hudmessage`ami

no i zapisywanie skopiowane z CodModa pewnie, bo jest ten sam błąd z formatowaniem danych przed pobranie i użycie # w zapisie a potem zamiana na spacje


Dawanie expa za pośrednictwem funkcji wiele ułatwi, możesz tu np. sprawdzać poziom i unikać expienia na klasie none
dajExpa(id, ile){
	if(player_klasa[id] == NONE) 
		return;

	player_exp[id] += ile;
	SprawdzPoziom(id);
}
Odpowiedz

  • +
  • -
Gh0st - zdjęcie Gh0st 03.07.2011

R3X tak to jest z początkującymi . Masz rację Kod Zapisz/wczytaj skopiowany z Codmod .
Dziękuje za pomoc . leci drugi plusik za to że nie powiedziałeś Pier*** niech sam sobie radzi : )

p.s . to jak mam zrobić z tym formatowaniem ?

replace_all(vaultdata, 255, "#", " ")

Użytkownik Gh0st edytował ten post 03.07.2011 15:21
Odpowiedz

  • +
  • -
R3X - zdjęcie R3X 03.07.2011

Jak byś chciał poprawić wczytywanie to musisz zrozumieć jak to działa. Oto Twój(przesadziłem? xD) kod
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s-%s-%s-Transformers",AuthID,player_rasa[id],player_klasa[id])
format(vaultdata,255,"#%i#%i#%i#",player_exp[id], player_level[id], player_sila[id])
nvault_get(g_vault,vaultkey,vaultdata,255)

z nvault g_vault odczytaj wartość klucza vaultkey i zapisz w vaultdata
nvault_get(g_vault,vaultkey,vaultdata,255)
chwila, chwila: "zapisz w vaultdata"? czy to oznacza, że to co było tam wcześniej zostanie nadpisane czymś nowy? tak jest :)

więc linijka wyżej
format(vaultdata,255,"#%i#%i#%i#",player_exp[id], player_level[id], player_sila[id])
jest jak podlewanie stawu, bez sensu



Edit.
a ten krzaki przy zapisie możesz spokojnie zastąpić spacjami i wywalić to replace_all() z wczytwania
Odpowiedz

  • +
  • -
Gh0st - zdjęcie Gh0st 03.07.2011

R3X'iu mam pytanie czy w evencie DeathMSG mogę używać Id ?
dam przykład :

public DeathMsg(id)
{
//code
}

czy musi być :
public DeathMsg() 
{
//code
}

Użytkownik Gh0st edytował ten post 03.07.2011 17:03
Odpowiedz

  • +
  • -
R3X - zdjęcie R3X 03.07.2011

id w handlerach możesz używać jeśli rejestrujesz event z flagą b (DeathMsg łapie się tylko z flagą a); id graczy wyciągnij read_data -> Half-Life 1 Game Events - AlliedModders Wiki
Odpowiedz

  • +
  • -
Gh0st - zdjęcie Gh0st 03.07.2011

Dziękuje rozumiem . :)
proszę o nie zamykanie tego tematu gdyż nie będę zaśmiecał forum . wszystkie pytanie/problemy będę umieszczał tutaj ,

Dodano 03 lipiec 2011 - 19:41:
Wiec tak : Mam następujący błąd / błędy

gdy wchodzę na serwer klasa = none , ma zerowy level , jak zmienić na 1 ?
gdy wbijam następująco inne levele wyświetla się menu statystyk , ale nie mogę rozdać tych punktów , menu po naciśnięciu się zamyka .


Słowa krytyki mile widziane .

Załączone pliki

Odpowiedz
Zablokowany