Sveiki, pradėjau dirbti prie modifikacijos ir pridėjus kelis dialogus, sistemą, įėjus į serverį jis nebereguoja į ESC ar kitų mygtukų paspaudimus.
stock t_LoadTrees()
{
new a_Querry[100];
for(new t = 0; t < 12; t++)
{
printf("%d\n", t);
TreesDB[t][treeId] = t;
TreesDB[t][TreeStatus] = 0;
TreesDB[t][TreeHealth] = 100.00;
format(TreesDB[t][CutterName], 24, "-");
TreesDB[t][TimeFromLastHit] = 0;
TreesDB[t][TimeToUpdate] = 0;
TreesDB[t][TreeXposition] = 0.0000;
TreesDB[t][TreeYposition] = 0.0000;
TreesDB[t][TreeZposition] = 0.0000;
TreesDB[t][TreeLabel] = Text3D:INVALID_3DTEXT_ID;
TreesDB[t][TreeObject] = INVALID_OBJECT_ID;
format(a_Querry, 100, "SELECT * FROM `a_trees` WHERE `ID` = '%d'", t);
mysql_query(a_Querry);
mysql_store_result();
mysql_retrieve_row();
if(mysql_num_rows())
{
TreesDB[t][TreeStatus] = 0;
mysql_fetch_field_row(a_Querry, "posX"); TreesDB[t][TreeXposition] = floatstr(a_Querry);
mysql_fetch_field_row(a_Querry, "posY"); TreesDB[t][TreeYposition] = floatstr(a_Querry);
mysql_fetch_field_row(a_Querry, "posZ"); TreesDB[t][TreeZposition] = floatstr(a_Querry);
new msg[250];
format(msg, sizeof(msg), "Medžio id: {81BD4A}%d{ffffff},\nPaskutinis kirto šį medį: {81BD4A}%s{ffffff},\n \nNorėdami kirsti mėdi spauskite „{81BD4A}FIRE{ffffff}“ mygtuką.", t+1, TreesDB[t][CutterName]);
TreesDB[t][TreeLabel] = Create3DTextLabel(msg, 0xFFFFFFFF, TreesDB[t][TreeXposition],TreesDB[t][TreeYposition],TreesDB[t][TreeZposition], 7.0, 0, 1);
TreesDB[t][TreeObject] = CreateObject(672, TreesDB[t][TreeXposition],TreesDB[t][TreeYposition],TreesDB[t][TreeZposition], 0.00000, 0.00000, 0.00000);
}
mysql_free_result();
}
return 1;
}
Net ir jo nekraunant buvo tapati klaida, kitos vietos kurbūt galėjo tai įtakoti:
if(dialogid == SWEDBANK_DIALOG6){
if(response){
if(!IsNumeric(inputtext)){
KlaidosZinute(playerid, "Laukelyje gali būti įvesti tik skaičiai.");
ShowPlayerDialog(playerid, SWEDBANK_DIALOG6, DIALOG_STYLE_INPUT, "Įveskite banko PIN kodą", "{ffffff}Norėdami tęsti privalote įvesti banko korteles {03ad8b}PIN{ffffff} kodą.", "Tęsti", "Uždaryti");
return 1;
}
new pinkodas = StringToInt(inputtext);
if(pinkodas != playerDB[playerid][BankPin]){
KlaidosZinute(playerid, "Įvestas neteisingas banko korteles PIN kodas.");
ShowPlayerDialog(playerid, SWEDBANK_DIALOG6, DIALOG_STYLE_INPUT, "Įveskite banko PIN kodą", "{ffffff}Norėdami tęsti privalote įvesti banko korteles {03ad8b}PIN{ffffff} kodą.", "Tęsti", "Uždaryti");
return 1;
}
Zinute1(playerid, "Prisijūngėte prie savo banko sąskaitos.");
new msg[128];
format(msg,sizeof(msg),"{ffffff}Sveiki, jūsų banko kortelėje yra: {03ad8b}%s {ffffff}€.\n \n{cccccc}• Ar norite nuimti pinigus?",KPinigai(playerDB[playerid][banke]));
ShowPlayerDialog(playerid,SB_BANKOMATAS,DIALOG_STYLE_MSGBOX,"Bankomatas",msg,"Taip","Ne");
}
}
if(dialogid == SWEDBANK_DIALOG7){
if(response){
if(!IsNumeric(inputtext)){
KlaidosZinute(playerid, "Laukelyje gali būti įvesti tik skaičiai.");
ShowPlayerDialog(playerid, SWEDBANK_DIALOG7, DIALOG_STYLE_INPUT, "Įveskite banko PIN kodą", "{ffffff}Norėdami tęsti privalote įvesti banko korteles {03ad8b}PIN{ffffff} kodą.", "Tęsti", "Uždaryti");
return 1;
}
new pinkodas = StringToInt(inputtext);
if(pinkodas != playerDB[playerid][BankPin]){
KlaidosZinute(playerid, "Įvestas neteisingas banko korteles PIN kodas.");
ShowPlayerDialog(playerid, SWEDBANK_DIALOG7, DIALOG_STYLE_INPUT, "Įveskite banko PIN kodą", "{ffffff}Norėdami tęsti privalote įvesti banko korteles {03ad8b}PIN{ffffff} kodą.", "Tęsti", "Uždaryti");
return 1;
}
Zinute1(playerid, "Prisijūngėte prie savo banko sąskaitos.");
ShowPlayerDialog(playerid, SWEDBANK_DIALOG2, DIALOG_STYLE_LIST, "{ffaa00}Swedbank", "Sąskaitos balansas\nPinigų padėjimo operacija\nPinigų nuėmimo operacija", "Pasirinkti", "Baigti");
}
}
if(pickupid == bankomatPickup[r])
{
if(playerDB[playerid][BankRegister] == 0 ){KlaidosZinute(playerid,"Jūs neturite atsidarę banko sąskaitos!"); return 1;}
ShowPlayerDialog(playerid, SWEDBANK_DIALOG6, DIALOG_STYLE_INPUT, "Įveskite banko PIN kodą", "{ffffff}Norėdami tęsti privalote įvesti banko korteles {03ad8b}PIN{ffffff} kodą.", "Tęsti", "Uždaryti");
return 1;
}
if(pickupid == pickups[0][swedbank1])
{
if(playerDB[playerid][BankRegister] != 1 ){KlaidosZinute(playerid,"Jūs turite būti susikūręs banko kortelę."); return 1;}
ShowPlayerDialog(playerid, SWEDBANK_DIALOG7, DIALOG_STYLE_INPUT, "Įveskite banko PIN kodą", "{ffffff}Norėdami tęsti privalote įvesti banko korteles {03ad8b}PIN{ffffff} kodą.", "Tęsti", "Uždaryti");
}
Daugiau kaip ir niekur nelindau, nieko neliečiau. Iš pradžių serverio loguose rodė šį pranešimą :
[17:40:59] [connection] 78. . .92:54307 requests connection cookie.
[17:41:00] [connection] incoming connection: 78. . .92:54307 id: 0
[17:41:00] [debug] Run time error 20: "Invalid index parameter (bad entry point)"
[17:41:00] [join] Tomas_Focus has joined the server (0:78. . .92)
[17:41:36] [part] Tomas_Focus has left the server (0:0)
Vėliau atsinaujinus crashdetect pluginą, include, bei pridėjus pawn.cfg failą su -d2 arba -d3 į logus nieko neberašė, bet vis tiek nebeveikė.
UPDATE: nei vienas iš šių išvardintų dalykų negalėjo įtakoti viso to, kas vyksta.
main() {} // modifikacijoje yra.
Bebras prieš 8 metus
Jei nėra jokios informacijos loguose ir neveikia jokie mygtukai, sakyčiau kad begalinis ciklas. Printink po kelias eilutes pradedant nuo pradžių ir žiūrėk kur nustoja viskas veikt.
Funkis prieš 7 metus
Net nenumanau, kuris būtent ciklas galėtų grybauti, nes su ciklais išvis nieko nedariau ir jų neliečiau.
Funkis prieš 7 metus
Panašu, jog kažkas po onplayerconnect galėtų būt blogai, bet yra BET. Užkomentavus visiškai jį, jau leidžia kažką rašyt į prisijungimo dialogą, bet toliau nieko nevyksta. Susidėjus absoliučiai po visu callbackų printus, visi suveikia ir nieks niekur nesustoja.
Bebras prieš 7 metus
Gal kur nors OnPlayerRequestSpawn
, OnPlayerRequestClass
? Ar visiem žaidėjam tas pats?
Funkis prieš 7 metus
Užkomentavus visiškai onplayerconnect callbacką, tada jau leidžia rašyt į tuos prisijungimo dialogus, bet jokio veiksmo nebūna. OnPlayerRequestClass irgi buvau užkomentavęs, vis tiek neleido nieko spaust, daryt, rašyt per ` ir pan.