←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Natyw do moda?

  • +
  • -
Andrzejek - zdjęcie Andrzejek 20.08.2012

Witam, mam pytanie chcial bym zrobić coś takiego, do Moda JailBreak, że np. do pluginu jb_duszek.amxx dodać cos takiego ze simon może tylko dawać duszka. Jak to zrobić do: g_Simon, żeby uzyć to w jedynm plugiie, za pomocą natywu ??
Odpowiedz

  • +
  • -
Andrzejek - zdjęcie Andrzejek 21.08.2012

No nie za wiele pomogłeś, bo czytałem to i nie wiem jak dodać do g_Simon
Odpowiedz

  • +
  • -
speedkill - zdjęcie speedkill 21.08.2012

Dodaj to do głównego pluginu do jailbreak'a, użycie is_user_simon(id) zwraca true jeżeli jest ;)
public plugin_natives()
{
    register_native("is_user_simon","g_Simon",1)
}
public g_Simon(id)
{
    if(g_Simon[id])
        return true

    return false
}
Odpowiedz

  • +
  • -
Fili:P - zdjęcie Fili:P 21.08.2012

Chyba można tak:


public plugin_natives()
{
register_native("is_user_simon","n_Simon", 1)
}
public n_Simon(id)
{
return g_Simon[id];
}


Tw. speedkill chyba nie może być zmiennej i funkcji o takiej samej nazwie bo bd problemy.
sebul (21.08.2012 15:22):
Może być tak, o ile "g_Simon" nie ma tagu bool, jeśli ma, to wystarczy "n_Simon" zamienić na "bool:n_Simon".
Odpowiedz

  • +
  • -
speedkill - zdjęcie speedkill 21.08.2012

Chyba można tak:



public plugin_natives()
{
register_native("is_user_simon","n_Simon", 1)
}
public n_Simon(id)
{
return g_Simon[id];
}


Tw. speedkill chyba nie może być zmiennej i funkcji o takiej samej nazwie bo bd problemy.

Może być nie powinno być żadnego problemu z tym, Twoja funkcja musi zwracać return bool:g_Simon[id], bo to co masz teraz raczej nie zadziała.
Odpowiedz

  • +
  • -
Andrzejek - zdjęcie Andrzejek 21.08.2012

Ale musze dodać do kodu:
is_user_simon

?
Czy wystarczy dodać to i powinno śmigać


public plugin_natives()
{
register_native("is_user_simon","n_Simon", 1)
}
public n_Simon(id)
{
return g_Simon[id];
}

?

A i co powinienem dodać do tego 2 pluginu?
Odpowiedz

  • +
  • -
speedkill - zdjęcie speedkill 21.08.2012

public plugin_natives()
{
        register_native("is_user_simon","g_Simon",1)
}
public g_Simon(id)
{
        if(g_Simon[id])
                return true

        return false
}
Potem w drugim pluginie if(is_user_simon(id)){ // Jest simonem }
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 21.08.2012

Pokaż jak jest tworzona zmienna "g_Simon".

public plugin_natives()
{
        register_native("is_user_simon","g_Simon")
}
public g_Simon(id)
{
        if(g_Simon[id])
                return true

        return false
}
Potem w drugim pluginie if(is_user_simon(id)){ // Jest simonem }

To nie zadziała, bo źle tworzysz/rejestrujesz natyw.
Odpowiedz

  • +
  • -
K!113r - zdjęcie K!113r 21.08.2012

Trochę siedziałem w Jb xD, g_Simon przechowywuje index gracza który jest simonem, :

if(g_SimonAllowed && !g_Freeday && is_user_alive(id) && team == CS_TEAM_CT && !g_Simon)
{
g_Simon = id
get_user_name(id, name, charsmax(name))
entity_set_int(id, EV_INT_body, 1)
g_PlayerSimon[id]--
if(get_pcvar_num(gp_GlowModels))
player_glow(id, g_Colors[0])

hud_status(0)
menu_simona(id)
}


Wiec raczej natyw powinien zwracać id simona

Trochę siedziałem w Jb xD, g_Simon przechowywuje index gracza który jest simonem, :

if(g_SimonAllowed && !g_Freeday && is_user_alive(id) && team == CS_TEAM_CT && !g_Simon)
{
g_Simon = id
get_user_name(id, name, charsmax(name))
entity_set_int(id, EV_INT_body, 1)
g_PlayerSimon[id]--
if(get_pcvar_num(gp_GlowModels))
player_glow(id, g_Colors[0])

hud_status(0)
menu_simona(id)
}


Wiec raczej natyw powinien zwracać id simona
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 21.08.2012

Czyli w tym pluginie gdzie występuje "g_Simon" dajesz to
public plugin_natives() {
register_native("get_id_simon", "n_Simon", 1);
}

public n_Simon()
return g_Simon;

a w innym pluginie gdzie chcesz sprawdzać id simona, dajesz to
native get_id_simon();

i wtedy jeśli chcesz sprawdzić, czy gracz to simon, musisz zrobić taki warunek
if(id == get_id_simon())
Odpowiedz

  • +
  • -
K!113r - zdjęcie K!113r 21.08.2012

No i oczywiście .inc


#if defined _jbextreme_included
#endinput
#endif

#define _jbextreme_included

#pragma library "jbextreme"

native get_id_simon();


o ile się nie myle ;)
speedkill (21.08.2012 20:44):
Nie trzeba, można zrobić to tak jak sebul napisał ;)
Odpowiedz