←  Pluginy

AMXX.pl: Support AMX Mod X i SourceMod

»

Odpychający he, bonusexp

Locked

Optymalny193's Photo Optymalny193 08.05.2011

Cześć ;P
Proszę o przerobienie tego pluginu:
Granat odpychający - AMXX.pl: Support AMX Mod X
że jak ct rzuci albo tt to każdego odpycha
I zrobić (potrzebuje do MoneyModa) takiego skilla że dodaje do 4 punktów to sam to zrobie i za każdy 1 punkt mam większy odrzut o 200 np. jak mam 4 to mam 800
Za to będzie 5 plusików

2 zadanie polega na tym
mamy skilla bonus exp (można dodać do 3pkt) sam to zrobię.
Potrzebne mi jak zrobić że za każde zabójstwo (obojętnie jakie czy hs,headsplash czy kill) dostaje się expa
1pkt - +10expa
2pkt - +20expa
3pkt - +30expa

I pisze w wiadomości np. dostałeś xx expa za zabójstwo (np. vip (vipa mam)) +Bonus Exp : i tu ile expa mam za bonusxp
Za to daje 4plusiki

Mam nadzieje że dobrze wytłumaczone.
Pozdrawiam Optymalny193

Dodano 09 maj 2011 - 18:38:
Odświeżam

Dodano 09 maj 2011 - 19:24:
Czy takie coś zadziała:?


#include <amxmodx>
#include <engine>
#include <hamsandwich>
#include <cstrike>
#include <fakemeta>

#define PLUGIN "odpychajacy HE"
#define VERSION "1.0"
#define AUTHOR "kyku"


public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
RegisterHam(Ham_Think, "grenade", "fw_ThinkGrenade")
// Add your code here...
}
public fw_ThinkGrenade(entity)
{

if (!pev_valid(entity)) return HAM_IGNORED;

static Float:dmgtime
pev(entity, pev_dmgtime, dmgtime)

if (dmgtime > get_gametime())
return HAM_IGNORED;

if (!is_user_connected(pev(entity, pev_owner)))
return HAM_IGNORED;
if(get_user_weapon(pev(entity, pev_owner))!=CSW_HEGRENADE)
return HAM_IGNORED;

new Float:origin[3], Float:origin2[3];


// ~~~~~~~~~~~~~~ TUTAJ USTAWIENIA ~~~~~~~~~~~~~~

new Float:sila = 100.0 * pointsodpych; // tu zmieniasz sile
new Float:dystans_wybuchu = 500.0 * pointsodpych; // tu zasieg wybuchu

// ~~~~~~~~~~~~~~ KONIEC USTAWIEN ~~~~~~~~~~~~~~



for(new i=1;i<33;i++)if(is_user_alive(i)){
entity_get_vector(i, EV_VEC_origin, origin2);entity_get_vector(entity, EV_VEC_origin, origin);

new Float: wynik = sila - (sila*(get_distance_f(origin, origin2)/dystans_wybuchu));
// akurat takie obliczanie sily wpadlo do glowy :P
//przyklad: 1000 - (1000 * (300 / 500)) = 400 czyli sila wybuchu bedzie rowna 400/1000 gdy bedzie stal w odleglosci 300/500 units


if(sila)set_velocity_from_origin(i, origin, wynik);
}

//engfunc(EngFunc_RemoveEntity, entity)
return HAM_SUPERCEDE;
}
stock get_velocity_from_origin( ent, Float:fOrigin[3], Float:fSpeed, Float:fVelocity[3] )
{
new Float:fEntOrigin[3];
entity_get_vector( ent, EV_VEC_origin, fEntOrigin );



new Float:fDistance[3];
fDistance[0] = fEntOrigin[0] - fOrigin[0];
fDistance[1] = fEntOrigin[1] - fOrigin[1];
fDistance[2] = fEntOrigin[2] - fOrigin[2];

new Float:fTime = ( vector_distance( fEntOrigin,fOrigin ) / fSpeed );

fVelocity[0] = fDistance[0] / fTime;
fVelocity[1] = fDistance[1] / fTime;
fVelocity[2] = fDistance[2] / fTime;

return ( fVelocity[0] && fVelocity[1] && fVelocity[2] );
}



stock set_velocity_from_origin( ent, Float:fOrigin[3], Float:fSpeed )
{
new Float:fVelocity[3];
get_velocity_from_origin( ent, fOrigin, fSpeed, fVelocity )

entity_set_vector( ent, EV_VEC_velocity, fVelocity );

return ( 1 );
}


dałem siła i dystans * pointsodpych

Ale niewiem czy dobrze bedzie
pointsodpych to punkty dodane w odpychajacego he

Dodano 09 maj 2011 - 21:06:
Ok bonusexp zrobiłem :)
Quote
Locked