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
 

O'Zone - zdjęcie

O'Zone

Rejestracja: 30.01.2012
Aktualnie: Nieaktywny
Poza forum Ostatnio: 08.11.2021 22:16
*****

#522001 Napisany przeze mnie plugin nie działa

Napisane przez O'Zone w 05.03.2013 21:40

Jak zwykle musiałem zrobić błąd xD

#include <amxmodx>
#include <fun>
#include <hamsandwich>

#define PLUGIN "Kalosze Murzyna"
#define VERSION "1.0.0"
#define AUTHOR "MuFFes"

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_logevent("roundstart", 2, "1=Round_Start")
RegisterHam(Ham_Item_PreFrame, "player", "Ustaw_Predkosc", 1)
}

public roundstart() {
new gracze[32], ilosc;
get_players(gracze, ilosc);
new losowygracz = random_num(1,ilosc)
if(is_user_connected(losowygracz))
{
Ustaw_Predkosc(losowygracz);
new nick[32];
get_user_name(losowygracz, nick, charsmax(nick));
client_print(0,print_chat, "[Losowanie] Gracz %s otrzymal podwojna predkosc biegu!",nick);
}
else roundstart()

return PLUGIN_CONTINUE;
}

public Ustaw_Predkosc(losowygracz){
set_user_maxspeed(losowygracz,get_user_maxspeed(losowygracz)*2);
}

Przy okazji dodałem ponowne losowanie w razie, gdyby gracz z jakiegoś powodu nie był dostępny :D
  • +
  • -
  • 0


#521981 Napisany przeze mnie plugin nie działa

Napisane przez O'Zone w 05.03.2013 21:03


public OnPlayerConnect() {
gracze++;
}
public OnPlayerDisconnect() {
gracze--;
}

To jest całkowicie zbędne, najlepiej liczbę graczy pobrać przed losowaniem.

Ogólnie można zrobić to w ten sposób:

#include <amxmodx>
#include <fun>
#include <hamsandwich>


#define PLUGIN "Kalosze Murzyna"
#define VERSION "1.0.0"
#define AUTHOR "MuFFes"

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_logevent("roundstart", 2, "1=Round_Start")
RegisterHam(Ham_Item_PreFrame, "player", "Ustaw_Predkosc", 1)

}
public roundstart() {
new ilosc=get_maxplayers();
new losowygracz=random_num(1,ilosc);
if(is_user_connected(losowygracz))
{
Ustaw_Predkosc(losowygracz);
new nick[32];
get_user_name(losowygracz, nick, charsmax(nick));
client_print(0,print_chat, "[Losowanie] Gracz %s otrzymal podwojna predkosc biegu!",nick);
}
return PLUGIN_CONTINUE;
}

public Ustaw_Predkosc(losowygracz){
set_user_maxspeed(losowygracz,get_user_maxspeed(losowygracz)*2);
}


Dlaczego hamsandwich? Bo jak napisał K!113r, prędkość gracza jest ustawiana przy każdej zmianie broni i ustawienie jej twoim sposobem nie da zamierzonego efektu.
Z tego co pamiętam, to prędkość podobnie jak grawitacja jest ponownie ustawiana na początku każdej rundy, więc wydaje mi się, że nie trzeba dodatkowo ustawiać jej na standardową na końcu rundy.
  • +
  • -
  • 0


#521688 [ROZWIĄZANE] Nie moge skompilować cod_shop.sma

Napisane przez O'Zone w 04.03.2013 21:12

Dla mnie to żaden problem :P
Z tego co widziałem, to warunki w niektórych miejscach były zmienione, ale ceny już nie, stąd te błędy.

Załączone pliki


  • +
  • -
  • 1


#521685 [ROZWIĄZANE] Nie moge skompilować cod_shop.sma

Napisane przez O'Zone w 04.03.2013 20:56

Hehe, maksymalna ilość expa była ustawiona na 7tys. :D
Proszę bardzo:

Załączone pliki


  • +
  • -
  • 1


#521677 [ROZWIĄZANE] Nie moge skompilować cod_shop.sma

Napisane przez O'Zone w 04.03.2013 20:39

Spróbuj teraz:

Załączone pliki


  • +
  • -
  • 1


#521676 Problem z sklepem

Napisane przez O'Zone w 04.03.2013 20:38

Proszę bardzo, powinno działać:

Załączone pliki


  • +
  • -
  • 1


#521672 [ROZWIĄZANE] Dodanie limitu statystyk.

Napisane przez O'Zone w 04.03.2013 20:14

Dokładnie, to limitem jaki miałeś ustawiony był maksymalny poziom podzielony przez 2 :)
Łap zmienioną wersję:

Załączone pliki


  • +
  • -
  • 1


#521602 Dobre rtv oraz mapeczki

Napisane przez O'Zone w 04.03.2013 15:58

Plugin wyboru map: http://amxx.pl/topic...sja-29-01-2012/
Mapy FFA: http://amxx.pl/topic...zka-map-na-ffa/
  • +
  • -
  • 1


#521601 [ROZWIĄZANE] VIP do napisania.

Napisane przez O'Zone w 04.03.2013 15:57

Poprawione :) Teraz powinno działać jednocześnie po śmierci i przy przeżyciu rundy.

Załączone pliki


  • +
  • -
  • 1


#521586 [ROZWIĄZANE] VIP Deathrun Prośba o przerobienie

Napisane przez O'Zone w 04.03.2013 15:23

Mówisz, masz :D

Załączone pliki


  • +
  • -
  • 1


#521467 [ROZWIĄZANE] Zmniejszenie ilości minimalnych osób (mapschooser4)

Napisane przez O'Zone w 03.03.2013 22:19

Tak, wystarczy zmienić liczbę i funkcja będzie dotyczyła zmienionej liczby graczy.
Jeśli zmienisz na 6, to będzie działała, gdy będzie mniej niż 6, a nie mniej niż 5 :)
  • +
  • -
  • 1


#521302 [ROZWIĄZANE] VIP do napisania.

Napisane przez O'Zone w 03.03.2013 17:05

Po wybraniu cichego biegu raz, ten będzie działał do póki gracz nie zginie, bo moc nie jest resetowana na początku następnej rundy.
Dodałem takową funkcję, sprawdź, czy działa:

Załączone pliki


  • +
  • -
  • 1


#521294 stała liczba ss w amxbans_ssban

Napisane przez O'Zone w 03.03.2013 16:24

Ostatnio przerabiałem to dla kogoś :D
Ilość ss'ów ustawiasz cvarem amx_screenscount. Standardowo jest to 5.

Załączone pliki


  • +
  • -
  • 2


#521291 [ROZWIĄZANE] VIP do napisania.

Napisane przez O'Zone w 03.03.2013 16:22

Tak to jest, jak ktoś nie przeczyta uważnie co trzeba zrobić :D

Załączone pliki


  • +
  • -
  • 1


#521285 problem z vipem...

Napisane przez O'Zone w 03.03.2013 16:11

Spróbuj:

#include <amxmodx>
#include <colorchat>
#include <cstrike>
#include <csx>
#include <fun>
#include <hamsandwich>
forward amxbans_admin_connect(id);
new Array:g_Array, bool:g_Vip[33], gRound=0, maxPlayers;

new const g_Langcmd[][]={"say /vips","say_team /vips","say /vipy","say_team /vipy"};

public plugin_init(){
register_plugin("VIP Ultimate", "10.0.0.2", "benio101 & speedkill");
RegisterHam(Ham_Spawn, "player", "SpawnedEventPre", 1);
register_event("HLTV", "event_new_round", "a", "1=0", "2=0");
register_logevent("GameCommencing", 2, "1=Game_Commencing");
register_event("DeathMsg", "DeathMsg", "a");
g_Array=ArrayCreate(64,32);
for(new i;i<sizeof g_Langcmd;i++){
register_clcmd(g_Langcmd[i], "ShowVips");
}
register_clcmd("say /vip", "ShowMotd");
register_logevent("RoundEnd", 2, "1=Round_End");
}
public client_authorized(id){
if(get_user_flags(id) & 524288 == 524288){
client_authorized_vip(id);
}
}
public client_authorized_vip(id){
g_Vip[id]=true;
new g_Name[64];
get_user_name(id,g_Name,charsmax(g_Name));

new g_Size = ArraySize(g_Array);
new szName[64];

for(new i = 0; i < g_Size; i++){
ArrayGetString(g_Array, i, szName, charsmax(szName));

if(equal(g_Name, szName)){
return 0;
}
}
ArrayPushString(g_Array,g_Name);

return PLUGIN_CONTINUE;
}
public client_disconnect(id){
if(g_Vip[id]){
client_disconnect_vip(id);
}
}
public client_disconnect_vip(id){
g_Vip[id]=false;
new Name[64];
get_user_name(id,Name,charsmax(Name));

new g_Size = ArraySize(g_Array);
new g_Name[64];

for(new i = 0; i < g_Size; i++){
ArrayGetString(g_Array, i, g_Name, charsmax(g_Name));

if(equal(g_Name,Name)){
ArrayDeleteItem(g_Array,i);
break;
}
}
}
public SpawnedEventPre(id){
if(g_Vip[id]){
if(is_user_alive(id)){
SpawnedEventPreVip(id);
}
}
}
public SpawnedEventPreVip(id){
give_item(id, "weapon_hegrenade");
cs_set_user_bpammo(id, CSW_HEGRENADE,2);
give_item(id, "weapon_flashbang");
cs_set_user_bpammo(id, CSW_FLASHBANG,2);
give_item(id, "weapon_smokegrenade");
if(gRound<=50){
if(gRound>=1){
if(get_user_team(id)==2){
give_item(id, "item_thighpack");
}
}
}
}
public event_new_round(){
++gRound;
}
public GameCommencing(){
gRound=0;
}
public DeathMsg(){
new killer=read_data(1);
new victim=read_data(2);

if(is_user_alive(killer) && g_Vip[killer] && get_user_team(killer) != get_user_team(victim)){
DeathMsgVip(killer,victim,read_data(3));
}
}
public DeathMsgVip(kid,vid,hs){
if(gRound<=50){
if(gRound>=1){
set_user_health(kid, min(get_user_health(kid)+(hs?15:10),100));
}
}
cs_set_user_money(kid, cs_get_user_money(kid)+(hs?500:300));
}
public ShowVips(id){
new g_Name[64],g_Message[192];

new g_Size=ArraySize(g_Array);

for(new i = 0; i < g_Size; i++){
ArrayGetString(g_Array, i, g_Name, charsmax(g_Name));

add(g_Message, charsmax(g_Message), g_Name);

if(i == g_Size - 1){
add(g_Message, charsmax(g_Message), ".");
}
else{
add(g_Message, charsmax(g_Message), ", ");
}
}
ColorChat(id,GREEN,"^x03Vipy ^x04na ^x03serwerze: ^x04%s", g_Message);
return PLUGIN_CONTINUE;
}
public client_infochanged(id){
if(g_Vip[id]){
new szName[64];
get_user_info(id,"name",szName,charsmax(szName));

new Name[64];
get_user_name(id,Name,charsmax(Name));

if(!equal(szName,Name)){
ArrayPushString(g_Array,szName);

new g_Size=ArraySize(g_Array);
new g_Name[64];
for(new i = 0; i < g_Size; i++){
ArrayGetString(g_Array, i, g_Name, charsmax(g_Name));

if(equal(g_Name,Name)){
ArrayDeleteItem(g_Array,i);
break;
}
}
}
}
}
public plugin_end(){
ArrayDestroy(g_Array);
}
public ShowMotd(id){
show_motd(id, "vip.txt", "Informacje o vipie");
}
public bomb_planted(id){
if(is_user_alive(id) && g_Vip[id]){
cs_set_user_money(id,cs_get_user_money(id) + 300);
}
}
public bomb_defused(id){
if(is_user_alive(id) && g_Vip[id]){
cs_set_user_money(id,cs_get_user_money(id) + 300);
}
}
public plugin_cfg(){
maxPlayers=get_maxplayers();
}
public RoundEnd(){
for(new i = 1; i <= maxPlayers; i++){
if(is_user_alive(i) && g_Vip[i]){
cs_set_user_money(i,cs_get_user_money(i) + 500);
}
}
}
public amxbans_admin_connect(id){
client_authorized(id);
}

  • +
  • -
  • 1