-
Posts
7 -
Joined
-
Last visited
Content Type
Profiles
Forums
News
Documentation
Posts posted by Marcel2
-
-
Acum 9 minute, [El.Capo] a spus:
Inlocuieste DIALOG_UPGRADEVIP cu asta
case DIALOG_UPGRADEVIP: {
if(!response) return 1;
new idd = GetPVarInt(playerid, "VehicleID");
if(CarInfo[idd][Spawned] == 0) return SendClientMessage(playerid, COLOR_LGREEN, "Eroare: Vehiculul tau nu este spawnat!");
if(valid_vip_vehicle(CarInfo[idd][cModel]) == 0) return SCM(playerid, COLOR_GREY, "Acest vehicul nu poate fi upgradat!");
if(strlen(CarInfo[idd][cText]) > 3) return SCM(playerid, -1, "Acest vehicul este deja unul VIP!");
if(PlayerInfo[playerid][pPremiumPoints] < 1008) return SCM(playerid, -1, "Nu ai destule puncte premium.");
if(IsABike2(CarInfo[idd][Spawned])) return SCM(playerid, COLOR_LGREEN, "Eroare: Nu poti upgrada acest vehicul!");
PlayerInfo[playerid][pVIPTicket] -= 1;
Update(playerid, pVIPTicketx);
SCM(playerid, COLOR_YELLOW, "* Felicitari! Ti-ai upgradat cu succes vehiculul la unul VIP.");
format(string, sizeof(string), "%s si-a upgradat vehiculul %s[id: %d] la unul VIP pentru 1xTicket VIP.", GetName(playerid), aVehicleNames[CarInfo[idd][cModel]-400], idd);
InsertLog(playerid, string, LOG_SHOP);
format(string, sizeof(string), "UPDATE `cars` SET `Text`='%s' WHERE `ID`='%d'", GetName(playerid), idd);
mysql_query(SQL, string);
format(CarInfo[idd][cText], 32, GetName(playerid));
attach_vip_text(idd);
CarInfo[idd][cVIPcar] = 1;
format(query, sizeof(query), "UPDATE `cars` SET `VIPcar`='1' WHERE `ID`='%d'", idd);
mysql_query(SQL, query);
}Da, asta era. Mersi, chiar nu m-am gândit să-i declar valoare 1, inate să o urc şi in baza de date.
Am crezut că ar trebuii să o citească automat, odată ce e scrisă, the more you know. Thx.
Cer T/C.
-
Acum 45 minute, [El.Capo] a spus:
arata dialogul
DIALOG_GARAGE
si
DIALOG_GARAGE+1
Pentru al 2-lea dialog ţi-am dat doar partea de inceput şi cazul pentru VIP, pentru că e un dialog destul de stufos.
Spoilercase DIALOG_GARAGE: { if(!response) return 1; new idd; if(PlayerInfo[playerid][pCarKey][listitem] == 0) return 1; else idd = PlayerInfo[playerid][pCarKey][listitem]; sVehicle[5][playerid] = idd; SetPVarInt(playerid, "VehicleSlot", listitem); if(CarInfo[idd][Spawned] != 0) strcat(string, "Vehicle Info\nFind Vehicle\nTow Vehicle (/park)\nTow Vehicle (last known location)\nDespawn\nDebug\nSell Vehicle\nBuy Insurance\nUpgrade to VIP Vehicle - {FFFF00}1xTiceket VIP{FFFFFF}\n{FF0000}Remove tuning"); else if(CarInfo[idd][Spawned] == 0) strcat(string, "Vehicle Info\nFind Vehicle\nTow Vehicle (/park)\nTow Vehicle (last known location)\nSpawn vehicle\nDebug\nSell Vehicle\nBuy Insurance\nUpgrade to VIP Vehicle - {FFFF00}1xTiceket VIP{FFFFFF}\n{FF0000}Remove tuning"); if(CarInfo[idd][Confiscated] == 1) strcat(string, "\n{FFFFFF}Pay fine to TTC"); ShowPlayerDialog(playerid, DIALOG_GARAGE1, DIALOG_STYLE_LIST, "Options", string, "Ok", "Back"); }
Spoilercase DIALOG_GARAGE1: { if(!response) return ShowPlayerVehicle(playerid); new vsid = sVehicle[5][playerid]; switch(listitem) { case 8: { if(CarInfo[vsid][Spawned] == 0) return SendClientMessage(playerid, COLOR_LGREEN, "Eroare: Vehiculul tau nu este spawnat!"); if(valid_vip_vehicle(CarInfo[vsid][cModel]) == 0) return SCM(playerid, COLOR_GREY, "Acest vehicul nu poate fi upgradat!"); if(strlen(CarInfo[vsid][cText]) > 3) return SCM(playerid, -1, "Acest vehicul este deja unul VIP!"); if(PlayerInfo[playerid][pVIPTicket] < 1) return SCM(playerid, -1, "Nu ai un Ticket VIP."); SetPVarInt(playerid, "VehicleID", vsid); ShowPlayerDialog(playerid, DIALOG_UPGRADEVIP, DIALOG_STYLE_MSGBOX, "Upgrade to VIP Vehicle", "Esti sigur ca vrei sa faci acest lucru?\nVei pierde 1xTicket VIP.", "Da", "Nu"); }
Presupun că o să fie nevoie şi de acest dialog:
Spoilercase DIALOG_UPGRADEVIP: { if(!response) return 1; new idd = GetPVarInt(playerid, "VehicleID"); if(CarInfo[idd][Spawned] == 0) return SendClientMessage(playerid, COLOR_LGREEN, "Eroare: Vehiculul tau nu este spawnat!"); if(valid_vip_vehicle(CarInfo[idd][cModel]) == 0) return SCM(playerid, COLOR_GREY, "Acest vehicul nu poate fi upgradat!"); if(strlen(CarInfo[idd][cText]) > 3) return SCM(playerid, -1, "Acest vehicul este deja unul VIP!"); if(PlayerInfo[playerid][pPremiumPoints] < 1008) return SCM(playerid, -1, "Nu ai destule puncte premium."); if(IsABike2(CarInfo[idd][Spawned])) return SCM(playerid, COLOR_LGREEN, "Eroare: Nu poti upgrada acest vehicul!"); PlayerInfo[playerid][pVIPTicket] -= 1; Update(playerid, pVIPTicketx); SCM(playerid, COLOR_YELLOW, "* Felicitari! Ti-ai upgradat cu succes vehiculul la unul VIP."); format(string, sizeof(string), "%s si-a upgradat vehiculul %s[id: %d] la unul VIP pentru 1xTicket VIP.", GetName(playerid), aVehicleNames[CarInfo[idd][cModel]-400], idd); InsertLog(playerid, string, LOG_SHOP); format(string, sizeof(string), "UPDATE `cars` SET `Text`='%s' WHERE `ID`='%d'", GetName(playerid), idd); mysql_query(SQL, string); format(CarInfo[idd][cText], 32, GetName(playerid)); attach_vip_text(idd); format(query, sizeof(query), "UPDATE `cars` SET `VIPcar`='1' WHERE `ID`='%d'", idd); mysql_query(SQL, query); }
-
Dacă variabilia este schimbată in timp de serverul este pornit, aceasta se modifică in baza de date, dar pe joc nu se afişează corect.
VIdeo cu problema: LINK
Functia:
Spoilerstock ShowPlayerVehicle(playerid) { new szTitle[180], szDialog[1300], szDialog2[1300], vstatus[1024]; LoadPlayerCars(playerid); if(GetVehicles(playerid) == 0) return SendClientMessage(playerid, COLOR_LGREEN, "Eroare: Nu ai un vehicul personal!"); format(szTitle, sizeof(szTitle), "Vehicles (%d/%d)", GetVehicles(playerid), TotalSlots(playerid)); strcat(szDialog2, "Model\t\tStatus\t\tKM\t\tVIP\n"); for(new i = 0; i < 20; i++) { new car = PlayerInfo[playerid][pCarKey][i]; if(car != 0) { if(IsVehicleOccupied(CarInfo[car][Spawned])) format(vstatus, sizeof(vstatus), "%s\t\t{FFFF00}(Occupied){FFFFFF}\t\t%.2f\t%d", aVehicleNames[CarInfo[car][cModel]-400], CarInfo[car][KM], CarInfo[car][cVIPcar]); else if(CarInfo[car][Spawned] > 0) format(vstatus, sizeof(vstatus), "%s\t\t{26B309}(Spawned){FFFFFF}\t\t%.2f\t%d", aVehicleNames[CarInfo[car][cModel]-400], CarInfo[car][KM], CarInfo[car][cVIPcar]); else format(vstatus, sizeof(vstatus), "%s\t\t{FF0000}(Despawned){FFFFFF}\t\t%.2f\t%d", aVehicleNames[CarInfo[car][cModel]-400], CarInfo[car][KM], CarInfo[car][cVIPcar]); format(szDialog, sizeof(szDialog), "%s\n", vstatus); strcat(szDialog2, szDialog); } else strcat(szDialog2, "{FFD857}<slot liber>\n"), sVehicle[i][playerid] = 0; } ShowPlayerDialog(playerid, DIALOG_GARAGE, DIALOG_STYLE_TABLIST_HEADERS, szTitle, szDialog2, "Ok", "Exit"); return 1; }
-
Acum 39 minute, _alchemy a spus:
Nu ti-as recomanda sa folosesti drept return o functie. Insereaza tot ce se afla in functie in comanda. Apoi, foloseste OnDialogResponse pentru dialogul DIALOG_SHOP.
Am incercat, aceiaşi problemă.
-
Cum poţi face upgrade de la versiunea de r38 la r41-4 mqsql?
Am incercat să fac asta pe gamemode-ul Saints-Network, dar sau schimbat multe funcţii din câte am văzut şi primesc multe erori pentru funcţii nedefinite.
Ex:
(2656) : error 017: undefined symbol "mysql_real_escape_string" (2658) : error 017: undefined symbol "mysql_queryg" (2659) : error 017: undefined symbol "mysql_store_result" (2660) : error 017: undefined symbol "mysql_num_rows" (2662) : error 017: undefined symbol "mysql_free_result" (2669) : error 017: undefined symbol "mysql_fetch_row" (2671) : error 017: undefined symbol "mysql_free_result" (2680) : error 017: undefined symbol "mysql_real_escape_string" (2683) : error 017: undefined symbol "mysql_store_result" (2684) : error 017: undefined symbol "mysql_num_rows" (2686) : error 017: undefined symbol "mysql_free_result" (2693) : error 017: undefined symbol "mysql_fetch_row" (2704) : error 017: undefined symbol "mysql_real_escape_string" (2707) : error 017: undefined symbol "mysql_store_result" (2708) : error 017: undefined symbol "mysql_num_rows" (2710) : error 017: undefined symbol "mysql_free_result" (2717) : error 017: undefined symbol "mysql_fetch_row" (2719) : error 017: undefined symbol "mysql_free_result" (4438) : error 017: undefined symbol "mysql_store_result" (4439) : error 017: undefined symbol "mysql_num_rows" (4447) : error 017: undefined symbol "mysql_free_result" (9343) : error 017: undefined symbol "mysql_store_result"
Ştiu că-s puse de mai multe ori, dar am luat tot log-ul.
-
Salut, am incercat să fac un shop pe dialog, cum este şi-n gamemode-ul Burned, problema fiind că dacă tastez comanda /shop aceasta nu face nimic şi iţi este trimis mesajul că comanda X nu există.
Imagine (in-game):
SpoilerPrecizez şi că gamemode-ul nu dă erori la compilare.
Comanda:
CMD:shop(playerid,params[]) return ShowShop(playerid);
Functia:
function ShowShop(playerid) { new diamond = PlayerInfo[playerid][pDiamonds], string[180], szDialog[4000]; strcat(szDialog, "{FFE100}($) Preturi si informatii{FFFFFF}\n"); if(diamond >= 500) format(string, sizeof(string), "Premium Account - {1ECC14}500 Diamondss\n"); else format(string, sizeof(string), "Premium account - {FF0000}500 Diamonds\n"); strcat(szDialog, string); new title[180]; format(title, 256, "Shop: (%d diamonds)", diamond); ShowPlayerDialog(playerid, DIALOG_SHOP, DIALOG_STYLE_LIST, title, szDialog, "Select", "Close"); return 1; }
Verificare nr. de caractere
in Discuţii scripting
Posted
Salut, voiam să vă intreb dacă există o modalitate de a număra caracterele unui text fără anumite caractere aflate intre nişte caractere specifice.
Spre exemplu: {FFFFFF}Ex , are 10 caractere, dar aş dorii să nu pună la număr caracterele aflate intre {}, deci să fie in total doar 2 caractere.
Aşa arată verificare pe care am făcut-o, dar după cum am spus, numara chiar şi ce se află intre {}:
Şi dacă se poate aş dorii şi un loc unde pot afla mai multe despre diferite "funcţii" dacă le pot spune aşa (nu cele de pe wiki - samp, asemanatoare "strlen")