Skocz do zawartości

  • Zaloguj korzystając z Facebooka Zaloguj korzystając z Twittera Zaloguj przez Steam Zaloguj poprzez Google      Logowanie »   
  • Rejestracja

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

kompilacja przeróbki questow

kompilacja przerobki

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

#1 sebacs2

    Wszechwidzący

  • Użytkownik

Reputacja: 5
Nowy

  • Postów:244
  • Lokalizacja:nie wiem
Offline

Napisano 07.05.2012 10:53

Witam.
Spodobała mi się edycja , i zaczełem zgodnie ze wskazówkami postempowac .
http://amxx.pl/topic...t-questy-gh0st/
Gdy przedzedłem do komplikacji logalnej to zaczely wyskakiwac błędy .
Jak mozna to naprawic ?
Co robię źle ?



/* 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, 25}, // 0 - Rozdzial 1
{26, 50}, // 1 - Rozdzial 2
{51, 75}, // 2 - Rozdzial 3
{76, 100}, // 3 - Rozdzial 4
{101, 125}, // 4 - Rozdzial 5
{126, 150}, // 5 - Rozdzial 6
{151, 175}, // 6 - Rozdzial 7
{176, 201} // 7 - Rozdzial 8

}
new QuestRozdzial[][] = {
"Pierwszy",
"Drugi",
"Trzeci",
"Czwarty",
"Piaty",
"Szosty",
"Siodmy",
"Osmy"
}
// Polozenie x / y
new Float:HudType[][3] = {
{0.02, 0.43},
{0.02, 0.43},
{0.02, 0.43}
}
// Red, green, blue
new HudColor[][5] = {
{0, 255, 0},
{255, 0, 0},
{0, 0, 255}
}
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 /questy", "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("\wQuesty by: \dGh0st ^n \yWybierz Akcje:", "Pierwsze_Menu_Handle")
(ePlayerQuestType[id]) ? menu_additem(menu, "Questy Podstawowe", _, _, MenuCallback) : menu_additem(menu, "Questy Podstawowe")
(ePlayerQuestType[id]) ? menu_additem(menu, "Zakoncz Quest") : menu_additem(menu, "Zakoncz Quest", _, _, 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 :) ")
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 expa i %i Monet", 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("\yWybierz Rozdzial:", "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,"Rozdzial \r%s \y(od %i do %i Lv.)",QuestRozdzial[i], QuestyPrzedzial[i][0], QuestyPrzedzial[i][1]);
menu_additem(menu,formats)

}else{
formatex(formats,127,"\dRozdzial %s (od %i do %i Lv.)",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 %i osob Nagroda: %i expa %i Monet", ArrayGetCell(gIleRazy, i), ArrayGetCell(gNagroda, i), ArrayGetCell(gNagrodaCoins, i))
case HEADSHOT: formatex(formats, 127, "Jebnij %i HeadShotow Nagroda: %i expa %i Monet", ArrayGetCell(gIleRazy, i), ArrayGetCell(gNagroda, i), ArrayGetCell(gNagrodaCoins, i))
case SUBSTRATES: formatex(formats, 127, "Podloz %i bomb Nagroda: %i expa %i Monet", ArrayGetCell(gIleRazy, i), ArrayGetCell(gNagroda, i), ArrayGetCell(gNagrodaCoins, i))
case RESUCE_HOSTAGES: formatex(formats, 127, "Uratuj %i razy hosty Nagroda: %i expa %i Monet", ArrayGetCell(gIleRazy, i), ArrayGetCell(gNagroda, i), ArrayGetCell(gNagrodaCoins, i))
case DISARM: formatex(formats, 127, "Rozbroj %i bomb Nagroda: %i expa %i Monet", ArrayGetCell(gIleRazy, i), ArrayGetCell(gNagroda, i), ArrayGetCell(gNagrodaCoins, i))
case DMG: formatex(formats, 127, "Zadaj %i obrazen Nagroda: %i expa %i Monet", 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
}
{
client_cmd(id, "spk QTM_CodMod/select");

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 %i osob Nagroda: %i expa", ArrayGetCell(gIleRazy, i), ArrayGetCell(gNagroda, i))
case HEADSHOT: formatex(formats, 127, "Jebnij %i HeadShotow Nagroda: %i expa", ArrayGetCell(gIleRazy, i), ArrayGetCell(gNagroda, i))
case SUBSTRATES: formatex(formats, 127, "Podloz %i bomb Nagroda: %i expa", ArrayGetCell(gIleRazy, i), ArrayGetCell(gNagroda, i))
case RESUCE_HOSTAGES: formatex(formats, 127, "Uratuj %i razy hosty Nagroda: %i expa", ArrayGetCell(gIleRazy, i), ArrayGetCell(gNagroda, i))
case DISARM: formatex(formats, 127, "Rozbroj %i bomb Nagroda: %i expa", ArrayGetCell(gIleRazy, i), ArrayGetCell(gNagroda, i))
case DMG: formatex(formats, 127, "Zadaj %i obrazen Nagroda: %i expa", ArrayGetCell(gIleRazy, i), ArrayGetCell(gNagroda, 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 tego Questa!. Wybierz Innego.");
Menu_Questow(id);
return PLUGIN_HANDLED;
}

ResetQuest(id)

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

QuestMessage(id, "Rozpoczales Quest. 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 Zadnej Misji]^n[Say /questy]";
else{
formatex(Msg2, charsmax(Msg2), QuestInfoMessage[ePlayerQuestType[id]], (get_user_progress_need(id)-get_user_progress(id)));
formatex(Msg, charsmax(Msg), "[Rozdzial: %s]^n[Postep: %i/%i]^n[Info: %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)
}

  • +
  • -
  • 0

;P Zapraszam na sieć serwerów Cs-KoRea.pl ^D^

Serwer [FFA+BF2] 31.186.83.100:27041 Serwer [Cod] 31.186.83.100:27046


#2 ParadisO

    Wszechmogący

  • Power User

Reputacja: 128
Zaawansowany

  • Postów:689
  • Lokalizacja:Częstochowa
Offline

Napisano 07.05.2012 14:46

pomiędzy liniami 388 i 389 powinna się znajdować deklaracja funkcji tzn
public nazwa_fukncji(parametry)

  • +
  • -
  • 0

#3 grzesiu131

    Profesjonalista

  • Użytkownik

Reputacja: 87
Zaawansowany

  • Postów:180
  • Lokalizacja:Warszawa
Offline

Napisano 07.05.2012 21:10

Dwa razy było to samo..

Załączone pliki


Użytkownik grzesiu131 edytował ten post 07.05.2012 21:12

  • +
  • -
  • 1

#4 sebacs2

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 5
Nowy

  • Postów:244
  • Lokalizacja:nie wiem
Offline

Napisano 08.05.2012 14:26

dzięki za pomoc .
Ale dlaczego mi wyskakuja blędy, nawet gdy te same sma (co ty mi podałes) bez zadnych przeróbek próbuje komplikowac lokalnie .
Dołączona grafika

Użytkownik sebacs2 edytował ten post 08.05.2012 14:38

  • +
  • -
  • 0

;P Zapraszam na sieć serwerów Cs-KoRea.pl ^D^

Serwer [FFA+BF2] 31.186.83.100:27041 Serwer [Cod] 31.186.83.100:27046


#5 JustBeFine

    Profesjonalista

  • Zbanowany

Reputacja: 66
Pomocny

  • Postów:162
  • GG:
  • Steam:steam
  • Imię:Paweł
  • Lokalizacja:Holandia
Offline

Napisano 08.05.2012 15:18

Nie wiem lecz u mnie się dobrze kompiluje (lokalnie). Bez błędów.
Nie mam pomysłu na sygnę :<





Również z jednym lub większą ilością słów kluczowych: kompilacja, przerobki

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

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