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

[ROZWIĄZANE] Pytanie odnośnie undefined symbol "id"


  • Zamknięty Temat jest zamknięty
8 odpowiedzi w tym temacie

#1 Mr. Dziwny

    Wyrafinowany

  • Power User

Reputacja: 68
Pomocny

  • Postów:429
  • GG:
  • Imię:Marcin
  • Lokalizacja:Lębork
Offline

Napisano 27.11.2012 13:31

Witam,
otóż posiadam dobry plugin bossa (jest zaje ..). Wszystko pięknie itd., aczkolwiek był on zrobiony pod zombie. Ja natomiast chcę, aby był na serwer COD. Już wszystko co należało zmienić zmieniłem, ale nie mogę uporać się z jedną rzeczą, tzn. jak dodaję, że po zabiciu bossa ma iść exp dla każdego :

cod_set_user_xp(0, cod_get_user_xp(id)+40000);

a za zabranie mu 1 hp ma iść jeden exp:

cod_set_user_xp(id, cod_get_user_xp(id)+1);

Wyskakują mi błędy przy kompilacji :

boss.sma(689) : error 017: undefined symbol "id"
boss.sma(689) : error 017: undefined symbol "i"
boss.sma(764) : error 017: undefined symbol "i"
boss.sma(764) : error 001: expected token: ",", but found ";"

Podsyłam 2 public odpowiedzialne 1 za zadane obrażenia (chyba ^^ ), a 2 za zabójstwo bossa.

public npc_takedamage(ent, inflictor, attacker, Float:damage, damage_type)
{
if(!is_user_alive(attacker) || !is_valid_ent(ent))
return;

new className[32];
entity_get_string(ent, EV_SZ_classname, className, charsmax(className))

if(!equali(className, npc_classname) || !g_alive[ent])
return;

g_fUserDamage[attacker] += damage;

//client_print(attacker, print_center, "%f" , g_fUserDamage[attacker]);
if(g_fUserDamage[attacker] >= 1){
g_fUserDamage[attacker] -= 1;
cod_set_user_xp(id, cod_get_user_xp(id)+1);

}

entity_set_float(g_pSprite, EV_FL_frame, entity_get_float(ent, EV_FL_health) / (ALIEN_HEALTH / 100.0));
}

public npc_killed(ent, attacker) 
{
new className[32];
entity_get_string(ent, EV_SZ_classname, className, charsmax(className))

if(!equali(className, npc_classname) || !g_alive[ent])
return HAM_IGNORED;

g_alive[ent] = 0
Util_PlayAnimation(ent, ANIM_DEATH);
emit_sound(ent, CHAN_VOICE, g_AlienSound[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
remove_task(ent)
set_pev(ent, pev_solid, SOLID_NOT)
set_task(4.5, "npc_remove", ent)

entity_set_int(ent, EV_INT_iuser4, 1);

//cs_set_user_money(attacker, cs_get_user_money(attacker) + g_reward[ent])

cod_set_user_xp(0, cod_get_user_xp(id)+40000);

entity_set_int(g_pSprite, EV_INT_rendermode, kRenderTransTexture);
entity_set_float(g_pSprite, EV_FL_renderamt, 0.0);

begin_changelevel();

client_print(0, print_chat, "BOSS nie zyje! Zmiana mapy na de_dust2");

return HAM_SUPERCEDE;
}


Nie mam pojęcia co z tym zrobić ; /
Proszę o pomoc, za pomoc leci :plus:
  • +
  • -
  • 0

[ CS-Sfera.pl - Forum ogólnotematyczne ]

Sprzedam paczkę AMXX - COD MOD a la LOL (100k LVL):

IP serwera - 31.186.82.137:27106 (podgląd), pisać GG!
Kontakt:
GG: 46592283
E-mail: marcin@cs-sfera.pl


#2 DEADP00L

    Profesjonalista

  • Użytkownik

Reputacja: 212
Profesjonalista

  • Postów:169
  • Steam:steam
  • Imię:Bart
  • Lokalizacja:United Kingdom
Offline

Napisano 27.11.2012 23:28

To

cod_set_user_xp(0, cod_get_user_xp(id)+40000);


zamień na:

cod_set_user_xp(0, cod_get_user_xp(0)+40000);


  • +
  • -
  • 0

#3 Mr. Dziwny

    Wyrafinowany

  • Autor tematu
  • Power User

Reputacja: 68
Pomocny

  • Postów:429
  • GG:
  • Imię:Marcin
  • Lokalizacja:Lębork
Offline

Napisano 28.11.2012 01:03

a 0 to nie jest przypadkiem funkcja dla wszystkich ? Czyli exp wszystkich , tj. jak to będzie to się poziomy wyzerują i doda się 40 k expa.. bynajmniej tak mi się wydaję ;x
  • +
  • -
  • 0

[ CS-Sfera.pl - Forum ogólnotematyczne ]

Sprzedam paczkę AMXX - COD MOD a la LOL (100k LVL):

IP serwera - 31.186.82.137:27106 (podgląd), pisać GG!
Kontakt:
GG: 46592283
E-mail: marcin@cs-sfera.pl


#4 JabLuszko

    Zaawansowany

  • Użytkownik

Reputacja: 45
Pomocny

  • Postów:126
  • Imię:Michał
  • Lokalizacja:Warszawa
Offline

Napisano 28.11.2012 07:50

Nie masz id, bo autor nazwał to attacker - w przypadku npc_takedamage.
W przypadku npc_killed wersja z 0 nie zadziała (chyba, że poprawiałeś silnik QTM_CodMod, żeby to obsługiwał;)) => musisz przeiterować po wszystkich graczach i dać im EXP osobno - http://amxx.pl/dokum...f90/get_players

Użytkownik JabLuszko edytował ten post 28.11.2012 07:52

  • +
  • -
  • 0

#5 Mr. Dziwny

    Wyrafinowany

  • Autor tematu
  • Power User

Reputacja: 68
Pomocny

  • Postów:429
  • GG:
  • Imię:Marcin
  • Lokalizacja:Lębork
Offline

Napisano 28.11.2012 11:02

Czyli jak powinno wyglądać npc_killed, bo nie za bardzo załapałem ;)


Mam pytanie jeszcze odnośnie tego:
public npc_takedamage(ent, inflictor, attacker, Float:damage, damage_type)
{
if(!is_user_alive(attacker) || !is_valid_ent(ent))
return;

new className[32];
entity_get_string(ent, EV_SZ_classname, className, charsmax(className))

if(!equali(className, npc_classname) || !g_alive[ent])
return;

g_fUserDamage[attacker] += damage;

//client_print(attacker, print_center, "%f" , g_fUserDamage[attacker]);
if(g_fUserDamage[attacker] >= 1){
g_fUserDamage[attacker] -= 1;
cod_set_user_xp(id, cod_get_user_xp(id)+1);

}

entity_set_float(g_pSprite, EV_FL_frame, entity_get_float(ent, EV_FL_health) / (ALIEN_HEALTH / 100.0));

}

  • +
  • -
  • 0

[ CS-Sfera.pl - Forum ogólnotematyczne ]

Sprzedam paczkę AMXX - COD MOD a la LOL (100k LVL):

IP serwera - 31.186.82.137:27106 (podgląd), pisać GG!
Kontakt:
GG: 46592283
E-mail: marcin@cs-sfera.pl


#6 JabLuszko

    Zaawansowany

  • Użytkownik

Reputacja: 45
Pomocny

  • Postów:126
  • Imię:Michał
  • Lokalizacja:Warszawa
Offline

Napisano 28.11.2012 18:35

Wydało mi się, że coś tam potrafisz - jednak się przeliczyłem.

if(g_fUserDamage[attacker] >= 1){
g_fUserDamage[attacker] -= 1;
cod_set_user_xp(id, cod_get_user_xp(id)+1);

}


Czy ten powyższy if to Twoje dzieło? Jeśli to Twoje dzieło to skasuj i zamień na

cod_set_user_xp(attacker, cod_get_user_xp(attacker)+floatround(dmg));


Co przykładu z npc_killed to nie wiem czego nie zrozumiałeś (warto by napisać...).
Masz tam w linku przykładową pętlę iterującą po wszystkich graczach (oraz ewentualne warunki-flagi) skopiuj oraz dopisz tam tylko cod_set_user_xp(id, cod_get_user_xp(id)+ILE_EXPA));. Oczywiście z odpowiednimi flagami - są one w dokumentacji wytłumaczone - ja nie wiem czy wszyscy mają dostać, czy wszyscy żywi, czy wszyscy w CT i tak dalej...

Użytkownik JabLuszko edytował ten post 28.11.2012 18:37

  • +
  • -
  • 2

#7 Mr. Dziwny

    Wyrafinowany

  • Autor tematu
  • Power User

Reputacja: 68
Pomocny

  • Postów:429
  • GG:
  • Imię:Marcin
  • Lokalizacja:Lębork
Offline

Napisano 29.11.2012 02:20

Dobra doszedłem do wniosku , ze lepiej mi się myśli nocą.. Wszystko dziala jak należy ^^
Dziwie się tylko sb że nie załapałem od początku o co w tym chodzi (odnośnie 1 funkcji, co do killied to pomogłeś mi i to za***iście) ^^
Oczywiście leci :plus:

Temat do zamknięcia.
  • +
  • -
  • 0

[ CS-Sfera.pl - Forum ogólnotematyczne ]

Sprzedam paczkę AMXX - COD MOD a la LOL (100k LVL):

IP serwera - 31.186.82.137:27106 (podgląd), pisać GG!
Kontakt:
GG: 46592283
E-mail: marcin@cs-sfera.pl


#8 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 29.11.2012 13:02

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL

#9 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 29.11.2012 13:03

Automatyczna wiadomość


Ten temat został przeniesiony z forum

AMX Mod XPytania

do

Scripting AMXXProblemy




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

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