No tak, ale jak napisać takiego minimoda, że mam jakieś tam klasy, które mają jakieś moce, jak przypisać do nich moce? Bez lvli.
//Edit:
//
//Edit2:
#include <amxmodx>
#include <cstrike>
#include <csx>
#include <fun>
#define AUTHOR "Screeaam"
#define PLUGIN "Klasy Ludzi"
#define VERSION "1.0"
#define przyciski (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<9) // Przyciski: 1,2,3,4,0
new klasa_gracza[33]
enum { NONE = 0, Klasa1, Klasa2, Klasa3, Klasa4 };
new const nazwy_klas[5][]={ "Brak","Klasa1","Klasa2","Klasa3","Klasa4" }
new const opisy_klas[][] = {
"HP: 100, Pancerz: 30",
"HP: 120, Pancerz: 20",
"HP: 100, Pancerz: 25",
"HP: 95, Pancerz: 30"
};
public plugin_init(){
register_plugin(AUTHOR, VERSION, PLUGIN)
register_menucmd(register_menuid("menu"), przyciski, "wybor")
register_clcmd("say /ludzie","WybierzKlase")
register_clcmd("say /opisy","OpisKlasy")
}
public WybierzKlase(id)
{
new menu = menu_create("Wybierz klase:", "WybierzKlase_Handle");
new klasa[50];
for(new i=1; i<sizeof nazwy_klas; i++)
{
bonusy(id);
format(klasa, 49, "%s", nazwy_klas[i]);
menu_additem(menu, klasa);
}
bonusy(id);
menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona");
menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona");
menu_display(id, menu);
}
public WybierzKlase_Handle(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
item++;
if(item == klasa_gracza[id])
return PLUGIN_CONTINUE;
klasa_gracza[id] = item;
bonusy(id);
return PLUGIN_CONTINUE;
}
public plugin_precache(){
precache_model("models/player/klasa1/klasa1.mdl");
precache_model("models/player/klasa2/klasa2.mdl");
precache_model("models/player/klasa3/klasa3.mdl");
precache_model("models/player/klasa4/klasa4.mdl");
}
public client_putinserver(id){
if(klasa_gracza[id] == 0){
WybierzKlase(id)
}
}
public bonusy(id)
switch(klasa_gracza[id])
{
case Klasa1:
{
set_user_health(id, 100)
set_user_armor(id, 30)
cs_set_user_model(id, "Klasa1")
}
case Klasa2:
{
set_user_health(id, 120)
set_user_armor(id, 20)
cs_set_user_model(id, "Klasa2")
}
case Klasa3:
{
set_user_health(id, 100)
set_user_armor(id, 25)
cs_set_user_model(id, "Klasa3")
}
case Klasa4:
{
set_user_health(id, 95)
set_user_armor(id, 30)
cs_set_user_model(id, "Klasa4")
}
}
public OpisKlasy(id)
{
new menu = menu_create("Wybierz Klase:", "OpisKlasy_Handle");
for(new i=1; i<sizeof nazwy_klas; i++)
menu_additem(menu, nazwy_klas[i]);
menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona");
menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona");
menu_display(id, menu);
}
public OpisKlasy_Handle(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
client_print(id, print_chat, "[JakisMod] %s: %s", nazwy_klas[item+1], opisy_klas[item+1]);
menu_display(id, menu);
return PLUGIN_CONTINUE;
}
Oświecił mnie post
G[o]Q'a
Czy takie coś będzie działać?
EDIT3:
Czy jeżeli zamiast set_user_health(id, X) w bonusy(id) dam tak:
set_user_health(id, race_heal[klasa_gracza[id]])
A gdzieś na górze:
new race_heal[5] = { 100,100,120,100,95 }
Będzie takie coś działać i każda klasa będzie miała swoje zdrowie a nie innej klasy? Bo takie oznaczenie się kompiluje.
Użytkownik Screeaam... edytował ten post 29.06.2010 16:35