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
CoD Nowy

Scalenie Silnika i Pluginem

cod nowy

  • Zamknięty Temat jest zamknięty
2 odpowiedzi w tym temacie

#1 Heineken

    Banned

  • Zbanowany

Reputacja: 58
Pomocny

  • Postów:223
  • GG:
  • Imię:Marcin
  • Lokalizacja:Kołobrzegu
Offline

Napisano 02.02.2014 18:49

Witam,

Mam do was pytanie jak scali plugin z silnikiem?

 

Bo che ograniczyć wysyłanie wiadomości w HUD.

 

Załączone pliki



#2 TyrTrek

    Wszechpomocny

  • Zbanowany

Reputacja: 28
Życzliwy

  • Postów:383
  • Lokalizacja:Poland
Offline

Napisano 09.02.2014 20:31

http://amxx.pl/topic...-hudem-codmoda/ masz poradnik :)


JEŚLI POMOGŁEM DAJ +


#3 Heineken

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 58
Pomocny

  • Postów:223
  • GG:
  • Imię:Marcin
  • Lokalizacja:Kołobrzegu
Offline

Napisano 10.02.2014 18:38

 

Ok. +

A z questami też da się tak zrobić?

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <cstrike>
#include <nvault>

#define MAX_PLAYER 32

native cod_set_user_coins(id, wartosc);
native cod_get_user_coins(id);

enum {
NONE = 0,
KILL = 1,
SUBSTRATES = 2,
DISARM = 3,
HEADSHOT = 4,
RESUCE_HOSTAGES = 5,
DMG = 6 
}


new QuestInfoMessage[][] = {
"Brak Questa %i",
"Musisz zabic jeszcze %i osob",
"Musisz podlozyc bombe jeszcze %i razy",
"Musisz rozbroic bombe jeszcze %i razy",
"Musisz zabic jeszcze %i osob headshotem",
"Musisz uratowac jeszcze %i razy hosty",
"Musisz zadac jeszcze %i obrazen"
}

new QuestyPrzedzial[][] = {
{1, 50},
{51, 100},
{101, 150},
{151, 201}
}

new QuestRozdzial[][] = {
"Easy",
"Medium",
"Hard",
"Expert"
}


// Polozenie x / y
new Float:HudType[][3] = {
{0.01, 0.92},
{0.01, 0.92},
{0.01, 0.92}
}

// Red, green, blue
new HudColor[][5] = {
{255, 255, 0},
{255, 255, 0},
{255, 255, 0}
}

new szPlayerName[MAX_PLAYER+1][64];
new iPlayerQuestID[MAX_PLAYER+1];
new ePlayerQuestType[MAX_PLAYER+1]
new iPlayerQuestProgress[MAX_PLAYER+1]
new iPlayerPrzedzial[MAX_PLAYER+1]
new iPlayerHudType[MAX_PLAYER+1];

new vault;
new vault2
new MenuCallback;
new MaxQuest;
new HudObj;
new HudObj2;

new Array: gPrzedzial;
new Array: gIleRazy;
new Array: gTyp;
new Array: gNagroda;
new Array: gNagrodaCoins;

public plugin_cfg() {
gPrzedzial 	= ArrayCreate();
gIleRazy	= ArrayCreate();
gTyp		= ArrayCreate();
gNagroda	= ArrayCreate();
gNagrodaCoins   = ArrayCreate();

new plik[128]; get_localinfo("amxx_configsdir", plik, charsmax(plik));
format(plik, charsmax(plik), "%s/misje.ini", plik);



if(!file_exists(plik)){
new szError[512];
formatex(szError, charsmax(szError), "[Questy] Nie mozna znależć pliku misje.ini w lokalizacji %s", plik)
set_fail_state(szError);
}

new fp = fopen(plik, "r");

new tresc[128], dane[5][32];
while( !feof(fp) ) {
fgets(fp, tresc, charsmax(tresc));

if(tresc[0] == ';' || tresc[0] == '^0') 
continue;

parse(tresc, dane[0], 31, dane[1], 31, dane[2], 31, dane[3], 31, dane[4], 31);

replace_all(tresc, 127, "^"", "");

ArrayPushCell(gPrzedzial, 	str_to_num(dane[0]));
ArrayPushCell(gIleRazy, 	str_to_num(dane[1]));
ArrayPushCell(gTyp,		str_to_num(dane[2]));
ArrayPushCell(gNagroda,		str_to_num(dane[3]));
ArrayPushCell(gNagrodaCoins,	str_to_num(dane[4]));

}
fclose(fp);

MaxQuest = ArraySize(gPrzedzial);
}

public plugin_init() 
{
register_plugin("[CodMod] Quest", "1.0", "Gh0st")
vault = nvault_open("Gh0st_quests");
vault2 = nvault_open("Gh0st_akt_quests")
register_event("DeathMsg", "DeathMsg", "a")
register_clcmd("say /misje", "Pierwsze_Menu");
register_logevent("LogEvent_Quest", 3, "1=triggered");
MenuCallback = menu_makecallback("menu_callback"); 
register_event("Damage", "Damage", "b", "2!=0")
HudObj = CreateHudSyncObj();
HudObj2 = CreateHudSyncObj();
set_task(0.8, "HudInfo", _, _, _, "b");
}

public plugin_precache()
{	
precache_sound("QTM_CodMod/select.wav");
precache_sound("QTM_CodMod/start.wav");
precache_sound("QTM_CodMod/start2.wav");
precache_sound("QTM_CodMod/levelup.wav");
}

public Pierwsze_Menu(id)
{
client_cmd(id, "spk QTM_CodMod/select");
new menu = menu_create("^n^n^n\yWybierz Akcje:", "Pierwsze_Menu_Handle")
(ePlayerQuestType[id]) ? menu_additem(menu, "Wybierz Misje", _, _, MenuCallback) : menu_additem(menu, "Wybierz Misje")
(ePlayerQuestType[id]) ? menu_additem(menu, "Zakoncz Misje") : menu_additem(menu, "Zakoncz Misje^n^n^n\w[\yForum\w: \rGanjaMafia-Cs.xaa.pl \w| \rZapraszamy\w]^n\w[\yKontakt z \rAdministratorem \d(\rH@\d)\w]^n\w[\ySkype\w: \rProSkillBongo \yGG\w: \r49822711\w]", _, _, MenuCallback)
//menu_additem(menu, "Co to sa questy?[ Wiadomosc na czacie ]")
//menu_additem(menu, "Zarzadaj Hud")



menu_display(id,menu,0)
}

public Pierwsze_Menu_Handle(id, menu, item)
{
if(item == MENU_EXIT){
menu_destroy(menu);
return PLUGIN_CONTINUE;
}

switch( item )
{
case 0: Menu_Questow(id)
case 1: ResetQuest(id)
case 2: QuestMessage(id, "Questy sa to misje, po ktorych wykonaniu mozesz dostac wyznaczana ilosc  Expa i Srebrnikow:) ")
case 3: Menu_Hud(id)
}

client_cmd(id, "spk QTM_CodMod/select");
return PLUGIN_HANDLED;

}

public Menu_Hud(id)
{
new menu = menu_create("\yWybierz Hud:", "Menu_Hud_Handle")
new formats[100]

menu_additem(menu, "wyłącz Hud");

for(new i; i<sizeof HudType; i++)
{
formatex(formats, charsmax(formats), "Styl Hud \y%i", i+1)
menu_additem(menu, formats);
}
menu_display(id,menu,0)
}

public Menu_Hud_Handle(id, menu, item)
{

client_cmd(id, "spk QTM_CodMod/select");

if(item == MENU_EXIT){
menu_destroy(menu);
return PLUGIN_CONTINUE;
}

if(item == 0){
iPlayerHudType[id]=0;
menu_destroy(menu)
return PLUGIN_HANDLED;
}

iPlayerHudType[id]=item;
Menu_Hud(id);
return PLUGIN_HANDLED;

}

public menu_callback(id, Menu, item){
return ITEM_DISABLED
}

public DeathMsg()
{
new id = read_data(1);
new vid = read_data(2)
new hs = read_data(3);
if( is_user_connected(id) && get_user_team(id) != get_user_team(vid) )
{
if( ePlayerQuestType[id] )
{
switch(ePlayerQuestType[id])
{
case KILL: 
{ 
add_progress(id, 1) 
}
case HEADSHOT: 
{ 
if(hs) add_progress(id, 1);
}
}
}
}

} 

public client_connect(id)
{
get_user_name(id, szPlayerName[id], 63);
ResetQuest(id)
LoadAktQuest(id)
iPlayerHudType[id]=1;

}

public add_progress(id, amount)
{
if( ! is_user_connected(id) )
return PLUGIN_HANDLED;

new Sprawdz = CheckProgress(id)

if( Sprawdz == 0 ){
iPlayerQuestProgress[id]+=amount;
return PLUGIN_HANDLED;
}
else if( Sprawdz > 0 ){
give_award(id);
return PLUGIN_HANDLED;
}	

return PLUGIN_HANDLED;
}

public CheckProgress(id)
{
if( ! is_user_connected(id) )
return PLUGIN_HANDLED;


new need = get_user_progress_need(id) - 1;
new progress = get_user_progress(id)

if( progress >= need )
return 1;
else 
return 0;	

return PLUGIN_HANDLED;

}

public give_award(id)
{
if( ! is_user_connected(id) )
return PLUGIN_HANDLED;

if(LoadQuest(id, iPlayerQuestID[id]))
return PLUGIN_HANDLED;

new award = ArrayGetCell(gNagroda, iPlayerQuestID[id]);
new award_coins = ArrayGetCell(gNagrodaCoins, iPlayerQuestID[id]);
cod_set_user_coins(id, cod_get_user_coins(id) + award_coins);

cod_set_user_xp(id, cod_get_user_xp(id)+award)
SaveQuest(id, iPlayerQuestID[id])
new formats[512];
formatex(formats, 511, "Gratulacje! Ukonczyles Quest, Otrzymales %i Doswiadczenia i %i Srebrnikow", award, award_coins);
QuestMessage(id, formats);
ResetQuest(id)

return PLUGIN_HANDLED;

}

public ResetQuest(id)
{
ePlayerQuestType[id] = NONE;
iPlayerQuestID[id]   = -1;
iPlayerQuestProgress[id]  = 0;
}

public SaveQuest(id, QuestID) {
if(is_user_bot(id))
return PLUGIN_CONTINUE;


new vaultkey[64], vaultdata[64];

formatex(vaultkey, charsmax(vaultkey), "%s-%i", szPlayerName[id], QuestID);
formatex(vaultdata, charsmax(vaultdata), "1");
nvault_set(vault, vaultkey, vaultdata);

return PLUGIN_CONTINUE;
}

public LoadQuest(id, QuestID) {
if(is_user_bot(id))
return PLUGIN_CONTINUE;

new vaultkey[64], vaultdata[64];
formatex(vaultkey, charsmax(vaultkey), "%s-%i", szPlayerName[id], QuestID);
nvault_get(vault, vaultkey, vaultdata, charsmax(vaultdata));

return str_to_num(vaultdata) > 0 ? true : false;
}

public QuestMessage(id, Message[]){
set_hudmessage(0, 255, 0, 0.02, 0.65, 0, 1.0, 0.6)
ShowSyncHudMsg(id, HudObj2, "%s", Message);
}

public Menu_Questow(id)
{
if( ! ePlayerQuestType[id] )
{
new menu = menu_create("^n^n\yWybierz Etap:", "menu_first_handle")
new formats[128]


for(new i; i < sizeof(QuestyPrzedzial); i++)
{
if( cod_get_user_level(id) >= QuestyPrzedzial[i][0]){

formatex(formats,127,"Etap \r%s \d(\wod\y %i \wdo\y %i \rLv\w.\d)",QuestRozdzial[i], QuestyPrzedzial[i][0], QuestyPrzedzial[i][1]);
menu_additem(menu,formats)

}else{
formatex(formats,127,"\Etap %s \d(\yod \y%i \wdo\y %i \rLv\w.\d)",QuestRozdzial[i], QuestyPrzedzial[i][0], QuestyPrzedzial[i][1]);
menu_additem(menu,formats, _, _, MenuCallback)
}
}

menu_display(id,menu,0)
}else{
QuestMessage(id, "Wykonaj najpierw poprzedni quest");
}
}

public menu_first_handle(id, menu, item)
{
if(item == MENU_EXIT){
menu_destroy(menu);
return PLUGIN_CONTINUE;
}

new menu2 = menu_create("Wybierz Quest:","menu_handle")
new formats[128]
for(new i = 0;i<MaxQuest;i++)
{	
if(ArrayGetCell(gPrzedzial, i) == item)
{

switch(ArrayGetCell(gTyp, i))
{
case KILL: formatex(formats, 127, "Zabij \r%i\y osob \w Nagroda: \r%i\y Expa \r %i\y SB", ArrayGetCell(gIleRazy, i), ArrayGetCell(gNagroda, i), ArrayGetCell(gNagrodaCoins, i))
case HEADSHOT: formatex(formats, 127, "Traf \r%i\y HeadShotow \wNagroda: \r %i \y Expa \r %i\y SB",  ArrayGetCell(gIleRazy, i), ArrayGetCell(gNagroda, i), ArrayGetCell(gNagrodaCoins, i))
case SUBSTRATES: formatex(formats, 127, "Podkluz \r%i\y bomb \wNagroda: \r %i \y Expa \r %i\y SB",  ArrayGetCell(gIleRazy, i), ArrayGetCell(gNagroda, i), ArrayGetCell(gNagrodaCoins, i))
case RESUCE_HOSTAGES: formatex(formats, 127, "Uratuj \r%i\y razy hosty \wNagroda: \r %i\y Expa \r%i \y SB",  ArrayGetCell(gIleRazy, i), ArrayGetCell(gNagroda, i), ArrayGetCell(gNagrodaCoins, i))
case DISARM: formatex(formats, 127, "Rozbroj \r%i\y bomb \wNagroda: \r %i \y Expa\r %i\y SB",  ArrayGetCell(gIleRazy, i),  ArrayGetCell(gNagroda, i), ArrayGetCell(gNagrodaCoins, i))
case DMG: formatex(formats, 127, "Zadaj \r%i\y obrazen \wNagroda: \r %i \y Expa \r %i\y SB",  ArrayGetCell(gIleRazy, i),  ArrayGetCell(gNagroda, i), ArrayGetCell(gNagrodaCoins, i))
}
menu_additem(menu2, formats);
}
}
iPlayerPrzedzial[id] = item;
menu_setprop(menu2, MPROP_PERPAGE, 6);
menu_display(id,menu2,0)
menu_destroy(menu);

return PLUGIN_HANDLED
}
public menu_handle(id, menu, item)
{
if(item == MENU_EXIT){
menu_destroy(menu);
return PLUGIN_CONTINUE;
}

new ile = 0;
for(new i = 0;i<MaxQuest;i++){
if(ArrayGetCell(gPrzedzial, i) != iPlayerPrzedzial[id])
continue;

if(ile == item)
{
item = i;
break;
}

ile++;
}

if(LoadQuest(id, item)){
QuestMessage(id, "Juz wykonywales ta Misje!. Wybierz Inna.");
Menu_Questow(id);
return PLUGIN_HANDLED;
}

ResetQuest(id)

iPlayerQuestID[id] = item;
ePlayerQuestType[id] = ArrayGetCell(gTyp, item)

QuestMessage(id, "Rozpoczales Misje. Powodzenia!");

menu_destroy(menu)
return PLUGIN_HANDLED
}

public LogEvent_Quest()
{

new user[80]
new action[64]
new name[32]

read_logargv(0, user, 79);
read_logargv(2, action, 63);
parse_loguser(user, name, 31);
new id = get_user_index(name);

if( ! is_user_connected(id) || ePlayerQuestType[id] == NONE )
return PLUGIN_HANDLED;

new type = ePlayerQuestType[id];

if(equal(action, "Planted_The_Bomb"))
{ 
if(type == SUBSTRATES) 
add_progress(id, 1);
}

else if(equal(action, "Defused_The_Bomb"))
{ 
if(type == DISARM) 
add_progress(id, 1); 
}
else if(equal(action, "Rescued_A_Hostage"))
{ 
if(type == RESUCE_HOSTAGES)
add_progress(id, 1); 
}

return PLUGIN_HANDLED;
}

public Damage(id)
{

if( is_user_connected(id) )
{

new atc_id = get_user_attacker(id);

if( ! is_user_connected(atc_id) )
return PLUGIN_HANDLED;

if( ! ePlayerQuestType[atc_id] )
return PLUGIN_HANDLED;

if( ePlayerQuestType[atc_id] != DMG )
return PLUGIN_HANDLED;

new damage = read_data(2);

add_progress(atc_id, damage);

}

return PLUGIN_HANDLED;

}

public HudInfo()
{

new Msg[1024];

new Float:HUD_X
new Float:HUD_Y

new HEX_COLOR_1
new HEX_COLOR_2
new HEX_COLOR_3
new Msg2[512]

for(new id; id<MAX_PLAYER+1; id++){
if( ! is_user_connected(id) ) continue;
if( ! is_user_alive(id) ) continue;
if( ! iPlayerHudType[id] ) continue;

HEX_COLOR_1 = HudColor[iPlayerHudType[id]-1][0];
HEX_COLOR_2 = HudColor[iPlayerHudType[id]-1][1];
HEX_COLOR_3 = HudColor[iPlayerHudType[id]-1][2];
HUD_X = HudType[iPlayerHudType[id] - 1][0];
HUD_Y = HudType[iPlayerHudType[id] - 1][1];


if( ! ePlayerQuestType[id] )
Msg = "Nie Robisz Misji^nWpisz /misje";
else{
formatex(Msg2, charsmax(Msg2), QuestInfoMessage[ePlayerQuestType[id]], (get_user_progress_need(id)-get_user_progress(id)));	
formatex(Msg, charsmax(Msg), "Rozdzial: %s^nPostep: %i/%i^nInfo: %s", QuestRozdzial[iPlayerPrzedzial[id]], get_user_progress(id), get_user_progress_need(id), Msg2);		
}
set_hudmessage(HEX_COLOR_1, HEX_COLOR_2, HEX_COLOR_3, HUD_X, HUD_Y, 0, 1.0, 0.8)
ShowSyncHudMsg(id, HudObj, Msg);
}
}

public get_user_progress(id){
return iPlayerQuestProgress[id] ? iPlayerQuestProgress[id] : 0;
}

public get_user_progress_need(id){
if(ePlayerQuestType[id])
return ArrayGetCell(gIleRazy, iPlayerQuestID[id]);

return 0;	
}

public SaveAktQuest(id, ma) {
if(is_user_bot(id))
return PLUGIN_CONTINUE;


new vaultkey[64], vaultdata[64];

formatex(vaultkey, charsmax(vaultkey), "%s", szPlayerName[id]);
formatex(vaultdata, charsmax(vaultdata), "%i %i %i %i", ma ? iPlayerQuestID[id] : -1, ePlayerQuestType[id], iPlayerQuestProgress[id], iPlayerPrzedzial[id]);
nvault_set(vault2, vaultkey, vaultdata);

return PLUGIN_CONTINUE;
}

public LoadAktQuest(id) 
{
if(is_user_bot(id))
return PLUGIN_CONTINUE;

new vaultkey[64], vaultdata[64];
formatex(vaultkey, charsmax(vaultkey), "%s", szPlayerName[id]);
nvault_get(vault2, vaultkey, vaultdata, charsmax(vaultdata));

new data[5][64];
parse(vaultdata, data[0], 63, data[1], 63, data[2], 63, data[3], 63)

new new_data[6]

for(new i=0; i<4; i++)
new_data[i] = str_to_num(data[i]);

if(new_data[0] == -1) return PLUGIN_HANDLED


iPlayerQuestID[id] = new_data[0]
ePlayerQuestType[id] = new_data[1];
iPlayerQuestProgress[id] = new_data[2]
iPlayerPrzedzial[id] = new_data[3]

return PLUGIN_HANDLED;

}

public client_disconnect(id)
{
SaveAktQuest(id, ePlayerQuestType[id]);
ResetQuest(id)
}






Również z jednym lub większą ilością słów kluczowych: cod nowy

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

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