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

Problem z vote_fun_mod.


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
3 odpowiedzi w tym temacie

#1 RecJew

    Nowy

  • Użytkownik

Reputacja: -1
Nowy

  • Postów:9
  • Lokalizacja:Polska
Offline

Napisano 28.03.2013 16:53

SIema. Z nudów zrobiłem plugin. Mam w nim kilka błędów, tylko nie wiem gdzie nie moge ich znaleść. Mam nadzieje, że ktos mi pomoże!

błędy:

Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team

aaa.sma(12) : error 029: invalid expression, assumed zero
aaa.sma(12) : error 017: undefined symbol "start_vote"
aaa.sma(32) : error 017: undefined symbol "choises"
aaa.sma(32) : warning 215: expression has no effect
aaa.sma(32) : error 001: expected token: ";", but found "]"
aaa.sma(32) : error 029: invalid expression, assumed zero
aaa.sma(32) : fatal error 107: too many error messages on one line

Compilation aborted.
6 Errors.


Kod sma pluginu:

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

public plugin_init() {
register_logevent("Poczatek_Rundy", 2, "1=Round_Start")
}
public Poczatek_Rundy(id)
{
public start_vote(id)
{
new menu = menu_create("\rWybierz rodzaj rozgrywki!", "menu_handler")
menu_additem(menu, "\wNormal", "1", 0)
menu_additem(menu, "\w5000 hp", "2", 0)
menu_additem(menu, "\wboss MOD", "3", 0)
menu_additem(menu, "\wonly HS", "4", 0)
menu_additem(menu, "\wonly AWP", "5", 0)
menu_addblank(menu, 0)
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)

new players[32], inum
get_players(players, inum, "ch")
for(new i = 0; i < inum; i++)
{
menu_display(players[i], menu, 0)
}

set_task(5.0, "finish_vote")

choises[1] = choises[2] = choises[3] = choises[4] = choises[5] = 0

return 1

}
}
public menu_handler(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_cancel(id)
return PLUGIN_HANDLED
}

new data[6], name[32]
new access, callback

menu_item_getinfo(menu, item, access, data, 5, _, _, callback)

new key = str_to_num(data)
get_user_name(id, name, 31)

switch (key)
{
case 1:
{
client_print (0, print_chat, "[AMXX] %s zaglosowal na Normal", name);
}
case 2:
{
client_print (0, print_chat, "[AMXX] %s zaglosowal na 5000 HP", name);
}
case 3:
{
client_print (0, print_chat, "[AMXX] %s zaglosowal na boss MOD", name);
}
case 4:
{
client_print (0, print_chat, "[AMXX] %s zaglosowal na only HS", name);

}
case 5:
{
client_print (0, print_chat, "[AMXX] %s zaglosowal na only AWP", name);
}
}

++choises[key]

menu_cancel(id)
return PLUGIN_HANDLED
}

public finish_vote()
{


if(choises[1] > choises[2] && choises[1] > choises[3] && choises[1] > choises[4] && choises[1] > choises[5])
{
client_print(0, print_chat, "[AMXX] Typ rundy został ustawiony na Normal, wybralo go %d osob", choises[1])
}
else if(choises[2] > choises[1] && choises[2] > choises[3] && choises[2] > choises[4] && choises[2] > choises[5])
{
client_print(0, print_chat, "[AMXX] Typ rundy został ustawiony na 5000 HP, wybralo go %d osob", choises[2])
new CsTeams:userTeam = cs_get_user_team(id)
if(userTeam == CS_TEAM_T)
{
give_item(id, "weapon_ak47")
give_item(id, "weapon_glock")
}
else if(userTeam == CS_TEAM_CT)
{
give_item(id, "weapon_m4a1")
give_item(id, "weapon_usp")
}
set_user_health(id, 5000)
set_user_maxspeed(id, 5.0)
}
else if(choises[3] > choises[1] && choises[3] > choises[2] && choises[3] > choises[4] && choises[3] > choises[5])
{
client_print(0, print_chat, "[AMXX] Typ rundy został ustawiony na boss MOD, wybralo go %d osob", choises[3])
public vote_gracz()
{

new play[32],num
get_players(play, num, "ahe")
new gracz=play[random(num)]
set_user_health(gracz, 5000)
client_print (0, print_chat, "[AMXX] %s JEST BOSSEM, JAZDA NA NIEGO!", name)
}
new CsTeams:userTeam = cs_get_user_team(id)
if)userTeam == CS_TEAM_T)
{
give_item(id, "weapon_ak47")
give_item(id, "weapon_glock")
}
else if(userTeam == CS_TEAM_CT)
{
give_item(id, "weapon_m4a1")
give_item(id, "weapon_usp")
}
}

else if(choises[4] > choises[1] && choises[4] > choises[2] && choises[4] > choises[3] && choises[4] > choises[5])
{
client_print(0, print_chat, "[AMXX] Typ rundy został ustawiony na Only HS, wybralo go %d osob", choises[4])
new CsTeams:userTeam = cs_get_user_team(id)
if(userTeam == CS_TEAM_T)
{
give_item(id, "weapon_ak47")
give_item(id, "weapon_glock")
}
else if(userTeam == CS_TEAM_CT)
{
give_item(id, "weapon_m4a1")
give_item(id, "weapon_usp")
}
server_cmd("amx_hs_mode 1")
}

else if(choises[5] > choises[1] && choises[5] > choises[2] && choises[5] > choises[3] && choises[5] > choises[4])
{
server_cmd("amx_hs_mode 1")
new CsTeams:userTeam = cs_get_user_team(id)
if)userTeam == CS_TEAM_T)
{
give_item(id, "weapon_awp")
give_item(id, "weapon_glock")
}
else if(userTeam == CS_TEAM_CT)
{
give_item(id, "weapon_awp")
give_item(id, "weapon_usp")
}
}
}

Użytkownik RecJew edytował ten post 28.03.2013 17:07

  • +
  • -
  • 0

#2 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 28.03.2013 19:46

Nie zainicjowałeś tablicy, z której korzystasz
new choises[6];

Przeczytaj Dobre i złe nawyki tworzenia menu by GwynBleidD i zastosuj się do porad w nim zawartych.
public Poczatek_Rundy(id)
{
public start_vote(id)
{
jeden z publików do usunięcia.

Musisz zmienić algorytm wyznaczania zwycięskiego trybu gry i dodać obsługę remisu.
new CsTeams:userTeam = cs_get_user_team(id)
if(userTeam == CS_TEAM_T)
{
give_item(id, "weapon_ak47")
give_item(id, "weapon_glock")
}
else if(userTeam == CS_TEAM_CT)
{
give_item(id, "weapon_m4a1")
give_item(id, "weapon_usp")
}
set_user_health(id, 5000)
set_user_maxspeed(id, 5.0)
to wypadałoby puścić przez pętlę po graczach, id nie przyjmuje wartości gracza.

public vote_gracz()
{

new play[32],num
get_players(play, num, "ahe")
new gracz=play[random(num)]
set_user_health(gracz, 5000)
client_print (0, print_chat, "[AMXX] %s JEST BOSSEM, JAZDA NA NIEGO!", name)
}
new CsTeams:userTeam = cs_get_user_team(id)
if)userTeam == CS_TEAM_T)
{
give_item(id, "weapon_ak47")
give_item(id, "weapon_glock")
}
else if(userTeam == CS_TEAM_CT)
{
give_item(id, "weapon_m4a1")
give_item(id, "weapon_usp")
}
public wewnątrz innego? Do usunięcia, łacznie z klamrami.
Wyświetlasz nick graczom, jednak musisz go najpierw pobrać.

Podobnie z pętlą zrób w pozostałych przypadkach.

server_cmd("amx_hs_mode 1")
nie jest optymalną metodą.

#3 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 28.03.2013 19:46

Automatyczna wiadomość


Ten temat został przeniesiony z forum

AMX Mod XProblemy

do

Scripting AMXXProblemy

#4 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 29.03.2013 04:38

Przepuściłem tylko kod przez autoindenter, popatrz o ile czytelniejszy! Od razu rzuca się teraz w oczy to, że próbujesz deklarować funkcję wewnątrz innej. Pewnie klamry Ci się porypały, a przez to że wcięć nie miałeś, nie bylo tego widać! Ludzie! Wcięcia w kodzie wymyślił bardzo mądry człowiek, a nie ktoś kto chciał Wam życie uprzykrzyć!
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <ns>

public plugin_init() {
register_logevent("Poczatek_Rundy", 2, "1=Round_Start")
}
public Poczatek_Rundy(id)
{
public start_vote(id)
{
new menu = menu_create("\rWybierz rodzaj rozgrywki!", "menu_handler")
menu_additem(menu, "\wNormal", "1", 0)
menu_additem(menu, "\w5000 hp", "2", 0)
menu_additem(menu, "\wboss MOD", "3", 0)
menu_additem(menu, "\wonly HS", "4", 0)
menu_additem(menu, "\wonly AWP", "5", 0)
menu_addblank(menu, 0)
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)

new players[32], inum
get_players(players, inum, "ch")
for(new i = 0; i < inum; i++)
{
menu_display(players[i], menu, 0)
}

set_task(5.0, "finish_vote")

choises[1] = choises[2] = choises[3] = choises[4] = choises[5] = 0

return 1

}
}
public menu_handler(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_cancel(id)
return PLUGIN_HANDLED
}

new data[6], name[32]
new access, callback

menu_item_getinfo(menu, item, access, data, 5, _, _, callback)

new key = str_to_num(data)
get_user_name(id, name, 31)

switch (key)
{
case 1:
{
client_print (0, print_chat, "[AMXX] %s zaglosowal na Normal", name);
}
case 2:
{
client_print (0, print_chat, "[AMXX] %s zaglosowal na 5000 HP", name);
}
case 3:
{
client_print (0, print_chat, "[AMXX] %s zaglosowal na boss MOD", name);
}
case 4:
{
client_print (0, print_chat, "[AMXX] %s zaglosowal na only HS", name);

}
case 5:
{
client_print (0, print_chat, "[AMXX] %s zaglosowal na only AWP", name);
}
}

++choises[key]

menu_cancel(id)
return PLUGIN_HANDLED
}

public finish_vote()
{


if(choises[1] > choises[2] && choises[1] > choises[3] && choises[1] > choises[4] && choises[1] > choises[5])
{
client_print(0, print_chat, "[AMXX] Typ rundy został ustawiony na Normal, wybralo go %d osob", choises[1])
}
else if(choises[2] > choises[1] && choises[2] > choises[3] && choises[2] > choises[4] && choises[2] > choises[5])
{
client_print(0, print_chat, "[AMXX] Typ rundy został ustawiony na 5000 HP, wybralo go %d osob", choises[2])
new CsTeams:userTeam = cs_get_user_team(id)
if(userTeam == CS_TEAM_T)
{
give_item(id, "weapon_ak47")
give_item(id, "weapon_glock")
}
else if(userTeam == CS_TEAM_CT)
{
give_item(id, "weapon_m4a1")
give_item(id, "weapon_usp")
}
set_user_health(id, 5000)
set_user_maxspeed(id, 5.0)
}
else if(choises[3] > choises[1] && choises[3] > choises[2] && choises[3] > choises[4] && choises[3] > choises[5])
{
client_print(0, print_chat, "[AMXX] Typ rundy został ustawiony na boss MOD, wybralo go %d osob", choises[3])
public vote_gracz()
{

new play[32],num
get_players(play, num, "ahe")
new gracz=play[random(num)]
set_user_health(gracz, 5000)
client_print (0, print_chat, "[AMXX] %s JEST BOSSEM, JAZDA NA NIEGO!", name)
}
new CsTeams:userTeam = cs_get_user_team(id)
if)userTeam == CS_TEAM_T)
{
give_item(id, "weapon_ak47")
give_item(id, "weapon_glock")
}
else if(userTeam == CS_TEAM_CT)
{
give_item(id, "weapon_m4a1")
give_item(id, "weapon_usp")
}
}

else if(choises[4] > choises[1] && choises[4] > choises[2] && choises[4] > choises[3] && choises[4] > choises[5])
{
client_print(0, print_chat, "[AMXX] Typ rundy został ustawiony na Only HS, wybralo go %d osob", choises[4])
new CsTeams:userTeam = cs_get_user_team(id)
if(userTeam == CS_TEAM_T)
{
give_item(id, "weapon_ak47")
give_item(id, "weapon_glock")
}
else if(userTeam == CS_TEAM_CT)
{
give_item(id, "weapon_m4a1")
give_item(id, "weapon_usp")
}
server_cmd("amx_hs_mode 1")
}

else if(choises[5] > choises[1] && choises[5] > choises[2] && choises[5] > choises[3] && choises[5] > choises[4])
{
server_cmd("amx_hs_mode 1")
new CsTeams:userTeam = cs_get_user_team(id)
if)userTeam == CS_TEAM_T)
{
give_item(id, "weapon_awp")
give_item(id, "weapon_glock")
}
else if(userTeam == CS_TEAM_CT)
{
give_item(id, "weapon_awp")
give_item(id, "weapon_usp")
}
}
}

  • +
  • -
  • 1

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark





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

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