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

Grawitacja - vip


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

#1 no name

    Wszechpomocny

  • Użytkownik

Reputacja: 56
Pomocny

  • Postów:387
  • GG:
  • Steam:steam
  • Imię:Wojciech
  • Lokalizacja:Kraków
Offline

Napisano 29.10.2010 20:29

Siema, chciałem dodać do vipa grawitacje, ale nie da się skompilować:

#define DAMAGE_RECIEVED

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>

new mpd, mkb, mhb
new maxplayers
new g_MsgSync
new health_add
new health_hs_add
new health_max
new nKiller
new nKiller_hp
new nHp_add
new nHp_max


#if defined DAMAGE_RECIEVED
new g_MsgSync2
#endif
public plugin_init()
{
register_plugin("VIP part1", "2.0", "Kolisz")
mpd = register_cvar("money_per_damage","3")
mkb = register_cvar("money_kill_bonus","500")
mhb = register_cvar("money_hs_bonus","200")
health_add = register_cvar("amx_vip_hp", "15")
health_hs_add = register_cvar("amx_vip_hp_hs", "30")
health_max = register_cvar("amx_vip_max_hp", "100")

register_event("Damage","Damage","b")
register_event("DeathMsg","death_msg","a")
register_logevent("logevent_Round_Start", 2, "1=Round_Start");
register_event("DeathMsg", "hook_death", "a", "1>0")

maxplayers = get_maxplayers()

register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0")

g_MsgSync = CreateHudSyncObj()

#if defined DAMAGE_RECIEVED
g_MsgSync2 = CreateHudSyncObj()
#endif
}

public on_damage(id)
{
new attacker = get_user_attacker(id)

#if defined DAMAGE_RECIEVED
// id should be connected if this message is sent, but lets check anyway
if ( is_user_connected(id) && is_user_connected(attacker) )
if (get_user_flags(attacker) & ADMIN_LEVEL_H)
{
new damage = read_data(2)

set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)
ShowSyncHudMsg(id, g_MsgSync2, "%i^n", damage)
#else
if ( is_user_connected(attacker) && if (get_user_flags(attacker) & ADMIN_LEVEL_H) )
{
new damage = read_data(2)
#endif
set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
ShowSyncHudMsg(attacker, g_MsgSync, "%i^n", damage)
}
}

public Damage(id)
{
new weapon, hitpoint, attacker = get_user_attacker(id,weapon,hitpoint)
if(attacker<=maxplayers && is_user_alive(attacker) && attacker!=id)
if (get_user_flags(attacker) & ADMIN_LEVEL_H)
{
new money = read_data(2) * get_pcvar_num(mpd)
if(hitpoint==1) money += get_pcvar_num(mhb)
cs_set_user_money(attacker,cs_get_user_money(attacker) + money)
}
}

public death_msg()
{
if(read_data(1)<=maxplayers && read_data(1) && read_data(1)!=read_data(2)) cs_set_user_money(read_data(1),cs_get_user_money(read_data(1)) + get_pcvar_num(mkb) - 300)
}

public logevent_Round_Start()
{
new players[32], player, pnum;
get_players(players, pnum, "a");
for(new i = 0; i < pnum; i++)
{
player = players[i];
if(get_user_flags(player) & ADMIN_LEVEL_H)
{
give_item(player, "weapon_hegrenade");
give_item(player, "weapon_flashbang");
give_item(player, "weapon_flashbang");
give_item(player, "weapon_smokegrenade");
give_item(player, "item_kevlar");
give_item(player, "item_assaultsuit");
give_item(player, "item_thighpack");
set_user_gravity ...........

}
}
}

public hook_death()
{
// Killer id
nKiller = read_data(1)

if ( (read_data(3) == 1) && (read_data(5) == 0) )
{
nHp_add = get_pcvar_num (health_hs_add)
}
else
nHp_add = get_pcvar_num (health_add)
nHp_max = get_pcvar_num (health_max)
// Updating Killer HP
if(!(get_user_flags(nKiller) & ADMIN_LEVEL_H))
return;

nKiller_hp = get_user_health(nKiller)
nKiller_hp += nHp_add
// Maximum HP check
if (nKiller_hp > nHp_max) nKiller_hp = nHp_max
set_user_health(nKiller, nKiller_hp)
// Hud message "Healed +15/+30 hp"
set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)
show_hudmessage(nKiller, "Healed +%d hp", nHp_add)
// Screen fading
message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, nKiller)
write_short(1<<10)
write_short(1<<10)
write_short(0x0000)
write_byte(0)
write_byte(0)
write_byte(200)
write_byte(75)
message_end()

}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/


I tak:

1. Nie wiem czy w dobrym miejscu, ale na start rundy to chyba odpowiednie miejsce
2. Nie wiem o co chodzi z index w kodzie, na dokumentacji mam:

Index to indeks gracza - od 1 do 32.

Ale nie wiem jak go przekształcić:

set_user_gravity ( index, Float:gravity = 1.0 )


I ostatnie pytanie... Da się ustawić cvar na gravitacje?
  • +
  • -
  • 0

#2 InteR ;)

    Pomocny

  • Użytkownik

Reputacja: 6
Nowy

  • Postów:45
  • Lokalizacja:PL
Offline

Napisano 30.10.2010 11:05

łap :)
Tutaj VIP ma grawitację o 50% mniejszą - 400 gravity
[attachment=9832:vip.sma]
  • +
  • -
  • 0

#3 no name

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 56
Pomocny

  • Postów:387
  • GG:
  • Steam:steam
  • Imię:Wojciech
  • Lokalizacja:Kraków
Offline

Napisano 30.10.2010 20:30

set_user_gravity(0.5)


tylko tyle wystarczyło? O.o

to już wiem co źle robiłem...

ja miałem spacje po grawity ;/

Dodano 02 listopad 2010 - 17:35:
Mam problem.


L 11/02/2010 - 17:31:32: [FUN] Player out of range (1056964608)
L 11/02/2010 - 17:31:32: [AMXX] Displaying debug trace (plugin "VIPpart1.amxx")
L 11/02/2010 - 17:31:32: [AMXX] Run time error 10: native error (native "set_user_gravity")
L 11/02/2010 - 17:31:32: [AMXX] [0] vip.sma::logevent_Round_Start (line 105)

Użytkownik no name edytował ten post 30.10.2010 20:32

  • +
  • -
  • 0

#4 hardbot

    Banned

  • Zbanowany

Reputacja: 0
Nowy

  • Postów:3 049
Offline

Napisano 02.11.2010 20:37

O.o

Spoiler

Użytkownik hardbot edytował ten post 02.11.2010 20:42


#5 InteR ;)

    Pomocny

  • Użytkownik

Reputacja: 6
Nowy

  • Postów:45
  • Lokalizacja:PL
Offline

Napisano 03.11.2010 15:15

To zmień:
set_user_gravity(0.5)

Na:
set_user_gravity(id, 0.5)

  • +
  • -
  • 0

#6 no name

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 56
Pomocny

  • Postów:387
  • GG:
  • Steam:steam
  • Imię:Wojciech
  • Lokalizacja:Kraków
Offline

Napisano 03.11.2010 20:53

1. Poprawiłem, powinno być:

Spoiler


2. Żeby zwiększyć prędkość to w dokumentacji jest kod:

set_user_maxspeed ( index, [ Float:speed = - 1.0 ] )


czyli, żeby VIP miał o 50 speeda więcej mam dać:

set_user_maxspeed(player , get_user_maxspeed( id ) + 50.0 ) 


Zgadza się?

I czy da się zrobić, żeby nie crashowało, gdy ktoś użyje spadochronu? tzn, jak ktoś użyje spadochronu to już nie ma ani gravitacji ani speeda.

Użytkownik no name edytował ten post 03.11.2010 21:44

  • +
  • -
  • 0




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

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