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.
|
Plugin z paka w losowych miejscachpaka w losowych miejscach
#1
Napisano 06.06.2011 13:37
#2
Napisano 07.06.2011 14:00
#3
Napisano 08.06.2011 12:36
#include <amxmodx>
#include <engine>
#define VERSION "0.1"
public plugin_init() {
register_plugin("Pozycja", VERSION, "diablix")
register_clcmd("say 1", "cmdOrigin");
}
public cmdOrigin(id){
new Float:fOrigin[3];
entity_get_vector(id, EV_VEC_origin, fOrigin);
client_print(id, 3, "%f || %f || %f", fOrigin[0], fOrigin[1], fOrigin[2]);
}
Wpisujesz 1 i podajesz mi tu dane na każdej mapie (w jakich miejscach ma tworzyć byt)
Użytkownik diablix edytował ten post 08.06.2011 12:36
#4
Napisano 08.06.2011 20:24
#5
Napisano 11.06.2011 11:56
ale nie wiem o co chodzi pomoze ktos?Wpisujesz 1 i podajesz mi tu dane na każdej mapie (w jakich miejscach ma tworzyć byt)
#6
Napisano 11.06.2011 20:39
Mapa DE_DUST2 *DANE1 *DANE2 *DANE3 itd
Chyba że chcesz aby paka sie respiła w miejscach obok pewnych bytów (np resp ct, tt, buyzone itd)
Użytkownik diablix edytował ten post 11.06.2011 20:40
#7
Napisano 12.06.2011 07:35
A wiec tak:
de_eternal
1007.968749 || 1103.968749 || -75.96874
853.630798 || -159.985382 || 164.03124
1678.004760 || -91.806541 || 276.03124
1574.657470 || 2181.712646 || -225.52081
1184.031249 || 808.002441 || 164.03124
368.031249 || 1615.969116 || 100.84498
1344.031249 || 1696.009033 || -213.968749
1090.122436 || 784.000427 || 78.03124
1338.834472 || 1278.494140 || -203.406249
de_grand
432.031249 || -1631.846923 || 631.93273
-1.606232 || 550.068664 || 164.031249
175.968749 || 848.004760 || 36.03124
37.606452 || 1197.910644 || 164.03124
-357.163116 || 146.684417 || 754.12933
2192.083007 || 207.968749 || 324.03124
-271.999969 || -1376.001464 || 402.03124
719.968749 || -1335.211425 || 402.03124
-656.031249 || 1792.031249 || 324.031249
apocalypse_please
-2223.968749 || -236.531707 || 4.56013
-320.031249 || 176.000061 || 4.03124
-771.263305 || 483.505401 || 298.03124
-65.347457 || -1424.003540 || 178.03124
-1103.984863 || -2112.000244 || -13.96874
-656.000061 || -2184.045410 || 244.81369
-1583.968749 || -1344.031249 || 260.03124
-584.001037 || -1600.031249 || 380.03124
-1036.611206 || -1824.846313 || 454.03124
Użytkownik newax edytował ten post 12.06.2011 08:53
#8
Napisano 12.06.2011 10:51
#include <amxmodx>
#include <engine>
#include <fakemeta>
#define VERSION "0.1"
#define fm_find_ent_by_class(%1,%2) engfunc(EngFunc_FindEntityByString, %1, "classname", %2)
#define fm_create_entity(%1) engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, %1))
new g_iMaxPlayers;
new gMsgBombPickUp;
enum {
de_eternal,
de_grand,
apocalypse_please
};
new const g_szNewBombClassname[] = "newBomb";
new const g_szOldBombModel[] = "models/w_backpack.mdl";
new const g_szMapNames[][] = {
"de_eternal",
"de_grand",
"apocalypse_please"
};
public plugin_init() {
register_plugin("Losowy paka", VERSION, "diablix");
register_logevent("eventRoundStart", 2, "1=Round_Start");
g_iMaxPlayers = get_maxplayers();
gMsgBombPickUp = get_user_msgid("BombPickup");
}
public plugin_precache() engfunc(EngFunc_PrecacheModel, g_szOldBombModel);
public eventRoundStart(){
new iPlayers[32], iNum;
get_players(iPlayers, iNum);
for(new i = 0; i < iNum ; i++)
fm_strip_user_c4(iPlayers[i]);
new iEnt = -1;
while((iEnt = fm_find_ent_by_class(iEnt, g_szNewBombClassname)))
engfunc(EngFunc_RemoveEntity, iEnt);
new szMapname[32], bool:bCanBreak = false, Float:fOrigin[3];
get_mapname(szMapname, sizeof szMapname - 1);
for(new g = 0 ; g < sizeof g_szMapNames ; g ++){
if(equal(szMapname, g_szMapNames[g])){
bCanBreak = true;
new iRanNum = random_num(1, 9);
if(equal(szMapname, g_szMapNames[de_eternal])){
switch(iRanNum){
case 1: fOrigin = Float:{1007.968749, 1103.968749, -75.96874};
case 2: fOrigin = Float:{853.630798, -159.985382, 164.03124};
case 3: fOrigin = Float:{1678.004760, -91.806541, 276.03124};
case 4: fOrigin = Float:{1574.657470, 2181.712646, -225.52081};
case 5: fOrigin = Float:{1184.031249, 808.002441, 164.03124};
case 6: fOrigin = Float:{368.031249, 1615.969116, 100.84498};
case 7: fOrigin = Float:{1344.031249, 1696.009033, -213.968749};
case 8: fOrigin = Float:{1090.122436, 784.000427, 78.03124};
case 9: fOrigin = Float:{1338.834472, 1278.494140, -203.406249};
}
}
else if(equal(szMapname, g_szMapNames[de_grand])){
switch(iRanNum){
case 1: fOrigin = Float:{432.031249, -1631.846923, 631.93273};
case 2: fOrigin = Float:{-1.606232, 550.068664, 164.031249};
case 3: fOrigin = Float:{175.968749, 848.004760, 36.03124};
case 4: fOrigin = Float:{37.606452, 1197.910644, 164.03124};
case 5: fOrigin = Float:{-357.163116, 146.684417, 754.12933};
case 6: fOrigin = Float:{2192.083007, 207.968749, 324.03124};
case 7: fOrigin = Float:{-271.999969, -1376.001464, 402.03124};
case 8: fOrigin = Float:{719.968749, -1335.211425, 402.03124};
case 9: fOrigin = Float:{-656.031249, 1792.031249, 324.031249};
}
}
else if(equal(szMapname, g_szMapNames[apocalypse_please])){
switch(iRanNum){
case 1: fOrigin = Float:{-2223.968749, -236.531707, 4.56013};
case 2: fOrigin = Float:{-320.031249, 176.000061, 4.03124};
case 3: fOrigin = Float:{-771.263305, 483.505401, 298.03124};
case 4: fOrigin = Float:{-65.347457, -1424.003540, 178.03124};
case 5: fOrigin = Float:{-1103.984863, -2112.000244, -13.96874};
case 6: fOrigin = Float:{-656.000061, -2184.045410, 244.81369};
case 7: fOrigin = Float:{-1583.968749, -1344.031249, 260.03124};
case 8: fOrigin = Float:{-584.001037, -1600.031249, 380.03124};
case 9: fOrigin = Float:{-1036.611206, -1824.846313, 454.03124};
}
}
fm_create_ent(g_szNewBombClassname, g_szOldBombModel, Float:{-2.0, -2.0, -2.0}, Float:{2.0, 2.0, 2.0}, SOLID_BBOX, fOrigin, 100.0, DAMAGE_NO, MOVETYPE_NONE);
}
if(bCanBreak) break;
}
}
public pfn_touch(ptr, ptd){
new szClassname[32];
pev(ptd, pev_classname, szClassname, sizeof szClassname - 1);
if(equal(szClassname, g_szNewBombClassname)){
fm_give_item(ptr, "weapon_c4");
engfunc(EngFunc_RemoveEntity, ptd);
}
}
stock fm_strip_user_c4(index){
engclient_cmd(index, "drop", "weapon_c4");
new iWeapbox, iBomb = fm_find_ent_by_class(-1, "weapon_c4");
if(iBomb && (iWeapbox = pev(iBomb, pev_owner)) > g_iMaxPlayers){
dllfunc(DLLFunc_Think, iWeapbox);
message_begin(MSG_ALL, gMsgBombPickUp);
message_end();
}
}
stock fm_give_item(index, const item[]) {
if (!equal(item, "weapon_", 7) && !equal(item, "ammo_", 5) && !equal(item, "item_", 5) && !equal(item, "tf_weapon_", 10))
return 0;
new ent = fm_create_entity(item);
if (!pev_valid(ent))
return 0;
new Float:origin[3];
pev(index, pev_origin, origin);
set_pev(ent, pev_origin, origin);
set_pev(ent, pev_spawnflags, pev(ent, pev_spawnflags) | SF_NORESPAWN);
dllfunc(DLLFunc_Spawn, ent);
new save = pev(ent, pev_solid);
dllfunc(DLLFunc_Touch, ent, index);
if (pev(ent, pev_solid) != save)
return ent;
engfunc(EngFunc_RemoveEntity, ent);
return -1;
}
stock fm_create_ent(const szClassname[], const szModel[], Float:fMins[3] = {-1.0, -1.0, -1.0}, Float:fMaxs[3] = {1.0, 1.0, 1.0}, iSolid = SOLID_NOT, Float:fOrigin[3] = {0.0, 0.0, 0.0}, Float:fHealth = 100.0, Float:fTakedamage = DAMAGE_YES, iMovetype = MOVETYPE_NONE){
new ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
if(!pev_valid(ent))
return 0;
set_pev(ent, pev_classname, szClassname);
engfunc(EngFunc_SetModel, ent, szModel);
dllfunc(DLLFunc_Spawn, ent);
set_pev(ent, pev_mins, fMins);
set_pev(ent, pev_maxs, fMaxs);
set_pev(ent, pev_solid, iSolid);
set_pev(ent, pev_origin, fOrigin);
set_pev(ent, pev_health, fHealth);
set_pev(ent, pev_takedamage, fTakedamage);
set_pev(ent, pev_movetype, iMovetype);
return ent;
}
#9
Napisano 12.06.2011 11:28
PS. Dopiero zauwazylem ze sie paki nie da podniesc. Da sie to jakos naprawic bo reszta pieknie dziala?
Użytkownik newax edytował ten post 12.06.2011 16:11
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych