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

Pomysł na stalkera + totem


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

#1 Vertricus

    Godlike

  • Przyjaciel

Reputacja: 426
Wszechobecny

  • Postów:1 549
  • Lokalizacja:.
Offline

Napisano 31.07.2009 22:38

public Effect_Healing_Totem_Think(ent)
{
new id = pev(ent,pev_owner)
new totem_dist = 300
new amount_healed = player_b_heal[id]

//We have emitted beam. Apply effect (this is delayed)
if (pev(ent,pev_euser2) == 1)
{
new Float:forigin[3], origin[3]
pev(ent,pev_origin,forigin)
FVecIVec(forigin,origin)

//Find people near and damage them
new entlist[513]
new numfound = find_sphere_class(0,"player",totem_dist+0.0,entlist,512,forigin)

for (new i=0; i < numfound; i++)
{
new pid = entlist[i]

if (get_user_team(pid) != get_user_team(id) && player_item_id[id] != 17)
continue


if (is_user_alive(pid) && get_user_health(pid) + amount_healed < race_heal[player_class[pid]]+player_strength[pid]*2)
set_user_health(pid,get_user_health(pid)+amount_healed)
else
set_user_health(pid,race_heal[player_class[pid]]+player_strength[pid]*2)
}


set_pev(ent,pev_euser2,0)
set_pev(ent,pev_nextthink, halflife_time() + 1.5)

return PLUGIN_CONTINUE
}


//Entity should be destroyed because livetime is over
if (pev(ent,pev_ltime) < halflife_time() || !is_user_alive(id))
{
remove_entity(ent)
return PLUGIN_CONTINUE
}



//If this object is almost dead, apply some render to make it fade out
if (pev(ent,pev_ltime)-2.0 < halflife_time())
set_rendering ( ent, kRenderFxNone, 255,255,255, kRenderTransAlpha, 100 )



new Float:forigin[3], origin[3]
pev(ent,pev_origin,forigin)
FVecIVec(forigin,origin)



//Find people near and give them health
message_begin( MSG_BROADCAST, SVC_TEMPENTITY, origin );
write_byte( TE_BEAMCYLINDER );
write_coord( origin[0] );
write_coord( origin[1] );
write_coord( origin[2] );
write_coord( origin[0] );
write_coord( origin[1] + totem_dist );
write_coord( origin[2] + totem_dist );
write_short( sprite_white );
write_byte( 0 ); // startframe
write_byte( 0 ); // framerate
write_byte( 10 ); // life
write_byte( 10 ); // width
write_byte( 255 ); // noise
write_byte( 255 ); // r, g, b
write_byte( 100 ); // r, g, b
write_byte( 100 ); // r, g, b
write_byte( 128 ); // brightness
write_byte( 5 ); // speed
message_end();

//Time till we apply totems effect

set_pev(ent,pev_euser2,1)
set_pev(ent,pev_nextthink, halflife_time() + 0.5)


return PLUGIN_CONTINUE

}


No więc chce wstawić warunek że jeśli gracz posiada stalker'a to ma go ominąć przy dodawaniu hp.
Wymyśliłem coś takiego jednak nie chce się skompilować :
Powiem krótko i wymownie: :help:

Edit
poprawiłem i działa(się skompilowało), jednak nie mam jak przetestować :/
  • +
  • -
  • 0

#2 DK

    Wszechobecny

  • Użytkownik

Reputacja: 49
Pomocny

  • Postów:411
  • GG:
  • Steam:steam
  • Lokalizacja:KrK / Wadowice
Offline

Napisano 01.08.2009 09:30

if ((get_user_team(pid) != get_user_team(id)) && player_item_id[id] != nr itema ?? moze)

  • +
  • -
  • 0

#3 Vertricus

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 426
Wszechobecny

  • Postów:1 549
  • Lokalizacja:.
Offline

Napisano 01.08.2009 09:43

Dziś w nocy też tak pomyślałem patrząc na inne moce :) Ale tak czy siak dziękuję i prosiłbym kogoś o przetestowanie :D

Teraz do pełni szczęścia jeśli to działa to z stalkerem + barba bug :)

public add_barbarian_bonus(id)
{
if (player_class[id] == Barbarzynca && player_item_id[id] != 17)
{
new maxhealth = race_heal[player_class[id]]+player_strength[id]*2


if (get_user_health(id)+25 <= maxhealth)
{
set_user_health(id,get_user_health(id)+25)
}
else
{
set_user_health(id,maxhealth)
}
}
}

Coś takiego będzie działać?:D
  • +
  • -
  • 0

#4 DK

    Wszechobecny

  • Użytkownik

Reputacja: 49
Pomocny

  • Postów:411
  • GG:
  • Steam:steam
  • Lokalizacja:KrK / Wadowice
Offline

Napisano 01.08.2009 09:51

skompiluje sie a czy działąc będzie to nie wiem :P
  • +
  • -
  • 0

#5 Vertricus

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 426
Wszechobecny

  • Postów:1 549
  • Lokalizacja:.
Offline

Napisano 01.08.2009 10:02

Skompilować się da ale mam wew ip więc nikt do mnie nie wbije ;)

Prosiłbym aby napisał ktoś jeśli testował ;)

[ Dodano: 03-08-2009, 20:52 ]

public Effect_Healing_Totem_Think(ent)
{
new id = pev(ent,pev_owner)
new totem_dist = 300
new amount_healed = player_b_heal[id]

//We have emitted beam. Apply effect (this is delayed)
if (pev(ent,pev_euser2) == 1)
{
new Float:forigin[3], origin[3]
pev(ent,pev_origin,forigin)
FVecIVec(forigin,origin)

//Find people near and damage them
new entlist[513]
new numfound = find_sphere_class(0,"player",totem_dist+0.0,entlist,512,forigin)

for (new i=0; i < numfound; i++)
{
new pid = entlist

if (get_user_team(pid) != get_user_team(id))
continue


if (is_user_alive(pid) && player_item_id[id] != 17 && get_user_health(pid) + amount_healed < race_heal[player_class[pid]]+player_strength[pid]*2)
set_user_health(pid,get_user_health(pid)+amount_healed)
else
set_user_health(pid,race_heal[player_class[pid]]+player_strength[pid]*2)
}


set_pev(ent,pev_euser2,0)
set_pev(ent,pev_nextthink, halflife_time() + 1.5)

return PLUGIN_CONTINUE
}


//Entity should be destroyed because livetime is over
if (pev(ent,pev_ltime) < halflife_time() || !is_user_alive(id))
{
remove_entity(ent)
return PLUGIN_CONTINUE
}



//If this object is almost dead, apply some render to make it fade out
if (pev(ent,pev_ltime)-2.0 < halflife_time())
set_rendering ( ent, kRenderFxNone, 255,255,255, kRenderTransAlpha, 100 )



new Float:forigin[3], origin[3]
pev(ent,pev_origin,forigin)
FVecIVec(forigin,origin)



//Find people near and give them health
message_begin( MSG_BROADCAST, SVC_TEMPENTITY, origin );
write_byte( TE_BEAMCYLINDER );
write_coord( origin[0] );
write_coord( origin[1] );
write_coord( origin[2] );
write_coord( origin[0] );
write_coord( origin[1] + totem_dist );
write_coord( origin[2] + totem_dist );
write_short( sprite_white );
write_byte( 0 ); // startframe
write_byte( 0 ); // framerate
write_byte( 10 ); // life
write_byte( 10 ); // width
write_byte( 255 ); // noise
write_byte( 255 ); // r, g, b
write_byte( 100 ); // r, g, b
write_byte( 100 ); // r, g, b
write_byte( 128 ); // brightness
write_byte( 5 ); // speed
message_end();

//Time till we apply totems effect

set_pev(ent,pev_euser2,1)
set_pev(ent,pev_nextthink, halflife_time() + 0.5)


return PLUGIN_CONTINUE

}



[ Dodano: 04-08-2009, 11:36 ]
Żaden sposób nie działa tylko barba ;)

if (get_user_team(pid) != get_user_team(id))
continue


if (is_user_alive(pid) && player_item_id[pid] != 17 && get_user_health(pid) + amount_healed < race_heal[player_class[pid]]+player_strength[pid]*2)
set_user_health(pid,get_user_health(pid)+amount_healed)
else
set_user_health(pid,race_heal[player_class[pid]]+player_strength[pid]*2)
}


Problem leży po stronie tego, że nasz warunek sprawdza czy stawiający totem ma stalker'a.
Musiało by być tak, że sprawdza get_user_item[id] != 17 tylko że czegoś takiego nie ma :D

Chyba wszystko co w tej dziedzinie można zrobić.

[ [i]Dodano: 07-08-2009, 13:17
]
Close~
Pomogła osoba z innego forum
  • +
  • -
  • 0




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

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