-
Posts
107 -
Joined
-
Last visited
Content Type
Profiles
Forums
News
Documentation
Posts posted by IosifR
-
-
-
Am uitat sa precizez..
ca sa-ti setezi admin trb sa dai din baza de date -
Re. E foarte simplu sa faci acest lucrul doar ca uni dintre cei noi in scripting nu stiu cum. e a
Primadata mergem la enum pInfo sau cum aveti voi.
enum pInfo { // Ce aveti voi, pAdmin }
Acum, mergem la OnLogin sau OnPlayerLogin depinde cum aveti voi in gamemode. Inainte de SpawnPlayer(playerid); puneti
PlayerInfo[playerid][pAdmin] = cache_get_field_content_int(0, "Admin");
Acum trebuie sa facem comanda cu care adminul va oferi admin.
CMD:setadmin(playerid, params[]) { if(PlayerInfo[playerid][pAdmin] < 6) return SendClientMessage(playerid, 0xB1BFCC80, "Eroare: Nu ai gradul administrativ necesar."); new id, admin, string[64]; if(sscanf(params, "ud", id, admin)) return SendClientMessage(playerid, 0xB1BFCC80, "SYNTAX: /setadmin <ID/Name> <Admin Level (0-7)>"); if(admin < 0 || admin > 7) return SendClientMessage(playerid, -1, "Invalid Admin Level."); format(string, sizeof(string), "Felicitari! Ai fost promovat la admin %d.", admin); SendClientMessage(id, -1, string); new query[100]; PlayerInfo[playerid][pAdmin] = admin; mysql_format(SQL, query, sizeof(query), "UPDATE `users` SET `Admin` = '%d' WHERE `ID` = '%d'", PlayerInfo[playerid][pAdmin], PlayerInfo[playerid][pSQLID]); mysql_tquery(SQL, query); return 1; }
In loc de PlayerInfo puneti cum aveti voi. De ex P_Data... la `users` cum aveti voi tabelul in baza de date unde se salveaza conturile.
Acum, intram in baza de date. (localhost/phpmyadmin).
Dupa ce ati intrat in baza de date apasati pe Structure.
Dupa aceea mai jos faceti o coloana.
Ceva de genul trebuie sa arate coloana. Acum dam pe Save si suntem gata!
Sper ca celor incepatori le-a fost de ajutor. pa
-
e bug la jobgoal
-
Merge bn
-
Salut boiz
kum fac comanda nre ?? ?? ?? //ita aici kum am fakut komanda /n da pe nre nuj kum sho fac
imi zike cnv?
CitatCMD:n(playerid, params[])
{
if(P_Data[playerid][pHelper] > 1)
return SCM(playerid, color_gray, "Faci parte din staff deja!");
if(P_Data[playerid][pAdmin] > 1)
return SCM(playerid, color_gray, "Faci parte din staff deja!");
if(IntrebareON[playerid] == 1)
return SCM(playerid, color_gray, "Ai deja o intrebare pusa!");
new intrebare[64],string[64];
if(sscanf(params, "s[64]", intrebare))
return SCM(playerid, color_gray, "Folosire: /n <intrebare/question>");
SCM(playerid, color_yellow, "Ai pus o intrebare ! Asteapta pana raspunde un helper.");
IntrebareON[playerid] = 1;
format(string, sizeof(string), "%s[%d] a pus intrebarea: %s", GetName(playerid), playerid, intrebare);
SendHelperMessage(color_anunt, string);
return 1;
} -
-
Helou, am fakut o comanda /kick, mere totu bn pana cand o testez
CitatCMD:kick(playerid, params[])
{
if(P_Data[playerid][pAdmin] < 1)
return SCM(playerid, color_gray, AdminOnly);
new userID, reason[32], string[128];
if(sscanf(params, "us[32]", userID, reason))
return SCM(playerid, color_gray, "Folosire: /kick <player> <reason>");
format(string, sizeof(string), "{E93623}({FFFFFF}AdmBot{E93623}){E93623}: Jucatorul %s a primit kick de la adminul %s, reason: %s", userID, GetName(playerid), reason);
SendClientMessageToAll(color_red, string);
Kick(userID);
return 1;
}Stie cnv dc nu apare acolo numele la jucatoru care a loat kick?
ms
-
Asta-i gm facut dupa tutorialele lu' GroWy
-
La 14.04.2021 la 23:44, CosminAK47 a spus:
Linkul din descriere la video e cel de la primul, adica e prima versiune..
-
Salut sa-mp.ro! Azi am decis sa va prezint jobul Fisherman. Tin sa precizez ca sunt mai la inceput cu scriptingul.. si e primul lucru facut de mine mai 'complex' sa zic asa...
M-am inspiriat de pe open.mp (no promo).. la unele functii, callback-uri.. Ignorati cercul galben din mijloc.. e de la programul cu care am filmat.. Nu pot sa zic ca e 'unic' da mna..
Am avut niste greseli gramaticale in script.. da, asta e. Enjoy! (Cand vinzi pestele la Nenea Gica si apare textdrawul, nu apare tot deoarece am facut stringul de 64 ch. si era de creo 70 cred..)UPDATE:
ps: interior facut de mn
-
Am rezolvat problema
Cer T/C -
Acum 32 minute, iSkull a spus:
Cine te-a trezit din hibernare?
Am facut cum mi-au zis ei doi dar tot asa e.
Si eroare cu query am rezolvato dar nu imi da levelu cand dau buylevel si nu imi ia rpurile
trebuiea sa pun new query[100]; susNu toata lumea e asa desteapta ca tine
-
Acum 3 minute, NERS a spus:
mysql_tquery(handle, string, "", "");
nah, tot asa e:
Acum 35 minute, IosifR a spus:Salut, a mers ce mi-ai dat tu acolo. Dar...
Am facut comanda buylevel dar cand dau buylevel nu imi updateaza nivelul, in baza de date si nici in joc. Dar, banii ii ia. RespectPoints-urile nu mi le ia.
Dc? ce am facut gresit in comanda asta -
Citat
error 017: undefined symbol "query"
Linia:
Citatmysql_tquery(handle, query);
-
Salut, a mers ce mi-ai dat tu acolo. Dar...
Am facut comanda buylevel dar cand dau buylevel nu imi updateaza nivelul, in baza de date si nici in joc. Dar, banii ii ia. RespectPoints-urile nu mi le ia.
Dc? ce am facut gresit in comanda astaCitatCMD:buylevel(playerid, params[])
{
new respect = (P_Data[playerid][pLevel] * 3), money = (P_Data[playerid][pLevel] * 250);
if(P_Data[playerid][pRespectPoints] < respect)
return SCM(playerid, color_error, "Nu ai destule respect points!");if(GetPlayerMoney(playerid) < money)
return SCM(playerid, color_error, "Nu ai destui bani!");new string[64];
GivePlayerMoney(playerid, -money);
P_Data[playerid][pRespectPoints] -= respect;
P_Data[playerid][pLevel] ++;
mysql_format(playerid, "UPDATE `conturi` SET `RespectPoints` = '%d', `Level` = '%d' WHERE `ID` = '%d'", P_Data[playerid][pRespectPoints], P_Data[playerid][pLevel], P_Data[playerid][pID]);
format(string, sizeof(string), "Ai avansat la nivel %d!", P_Data[playerid][pLevel]);
SendClientMessage(playerid, color_gray, string);
return 1;
} -
Acum 15 ore, WicK. a spus:
bugged? :)))))))))))))))))))))))
Da fruate
Din cate imi amintesc scrie la inceput de gm
-
Acum 27 minute, Banditul a spus:
PS: Doar ce am recitit topicul si te intrebi cum ai putea adauga un astfel de sistem.
Daca te referi la acest tutorial
Din pacate in topic nu specifica nimic despre bani/level care din codul prezent in topic nu ar avea cum sa fie salvate mai ales ca nici schema bazei de date nu contine aceste date.
Desigur totusi ne poti arata ce ai incercat sa faci si ce erori primesti ca sa iti putem indica problemele si ce poti repara dar iti ofer un mic cod eventual care sper ca te poate ajuta. Va fi nevoie sa adaugi tu in baza date cum ti-a fost explicat si in tutorial coloana pentru bani si level
enum pInfo { pParola, pID, Money, // Adaugi acestea la pInfo Level // Evident le redenumesti cum doresti }; new P_Data[MAX_PLAYERS][pInfo]; GiveMoneyToPlayer(playerid, money) { P_Data[playerid][Money] += money; mysql_format(handle, query, sizeof(query), "UPDATE conturi SET `Money` = %i WHERE ID = %i", P_Data[playerid][Money], P_Data[playerid][pID]); mysql_tquery(handle, query); ResetPlayerMoney(playerid); GivePlayerMoney(playerid, P_Data[playerid][Money]); } GivePlayerLevel(playerid, level) { P_Data[playerid][Level] += level; mysql_format(handle, query, sizeof(query), "UPDATE conturi SET `Level` = %i WHERE ID = %i", P_Data[playerid][Level], P_Data[playerid][pID]); mysql_tquery(handle, query); SetPlayerScore(playerid, P_Data[playerid][Level]) // Presupun ca level se reflecta in tabelul de score } forward OnLogin(playerid); public OnLogin(playerid) { new rows, fields,temporar[200]; cache_get_data(rows, fields); if(rows) { cache_get_field_content(0, "Parola",temporar), format(P_Data[playerid][pParola], 25, temporar); P_Data[playerid][pID] = cache_get_field_content_int(0, "ID"); P_Data[playerid][Money] = cache_get_field_content_int(0, "Money"); ResetPlayerMoney(playerid); GivePlayerMoney(playerid, P_Data[playerid][Money]); // Ii resetam bani si ii oferim ce ar in baza de date astfel incat bani pe care ii vede in joc sa fie aceiasi P_Data[playerid][Level] = cache_get_field_content_int(0, "Level"); SetPlayerScore(playerid, P_Data[playerid][Level]) SpawnPlayer(playerid); } else { ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Parola incorecta!", "Te rog sa iti introduci parola corecta, pentru a te loga pe server.", "Logare", "Exit");// ii va da dialogul cu mesajul specific. } return 1; }
Poti folosi aceste 2 functii pe care ti le-am dat pentru a oferi jucatorului bani/level acolo unde ai nevoie. Astfel incat sa nu fi nevoit sa tot copiezi acelasi cod peste tot, doar chemi functia.
Ms foarte multt.
Fix la astea greseam: mysql_format(handle, query, sizeof(query), "UPDATE conturi SET `Money` = %i WHERE ID = %i", P_Data[playerid][Money], P_Data[playerid][pID]);
in loc sa pun mysql_format am pus mysql_Query
Si nu puneam handle
Am sa incerc sa-l fac daca nu merge ceva bine am sa dau un edit... probabil maine
-
Acum 2 ore, Banditul a spus:
Daca arati ce cod ai facut, poate intelegem si noi ce ai facut gresit si ce trebuie reparat
E fix codul care l-a facut WiDuAIK, doar ca eu am editat putin textele.. Si cand incerc sa fac sa salveze bani si lvlul imi da o gramada de erori..
(Am incercat sa-l fac singur, sa mai ma uit in alte gmuri.. pentru ca nu am gasit nik pe net)
Si.... uite ca am apelat la sa-mp.ro
-
HELLO
Cine imi poate zice cum pot sa fac sa salveze si bani si levelul ? Am facut sistem login register de pe tutorialul lui @WiDuAlK, am mai facut niste modificari, etc..
Dar nu salevaza bani si levelul ma ajuta cnv -
Acum 4 minute, Banditul a spus:
Pentru ca daca ai windows 10 si mai ales daca instalezi si alte programe precum visual studio sau orice program sau joc care iti instaleaza aceste runtime nu trebuie sa le instalezi tu, le instaleaza programul sau chiar si steam am observat ca instaleaza daca iti lipseste pentru a rula un joc
am windows 7
honestly chiar nu stiam chestia asta -
Eu nu l am instalat si mere
-
Salut sa-mp.ro! Astazi am sa va arat cum sa faceti comanda /hostname ( pentru incepatori.. astept hate de la aia 'avansati'). Cu aceasta comanda puteti schimba numele serverului.
Pentru aceasta comanda ma voi folosi de sscanf si zcmd. (https://www103.zippyshare.com/v/Lxj6JFGI/file.html)
CitatCMD:hostname(playerid, params[])
{
if(PlayerInfo[playerid][pAdmin] >=6) // Daca nu aveti sistem de admin, in loc de asta puneti 'if(IsPlayerAdmin(playerid))'
{
new string[128], name[64]; // Aici creem un string pentru a trimite textele si 'name', adica numele care il scrie playerul care foloseste comanda.
if(sscanf(params, "s[64]", name)) return SCM(playerid,COLOR_GREY, "Folosire: {FFFFFF}/hostname <Nume>"); // Aici ne folosim de sscanf. Daca adminul scrie doar /hostname i va trimite un mesaj cum se foloseste comanda
{
format(string, sizeof(string), "hostname %s", name); In loc de '%s' va fii numele care a scris adminul.
SendRconCommand(string); Aceasta linie trimite comanda catre consola serverului
format(string, sizeof(string), "Ai schimbat numele serverului in %s", name);
SendClientMessage(playerid,# COLOR_RED1, string); // Trimite mesajul de mai sus ca a schimbat numele serverului
}
}
else return SCM(playerid, COLOR_YELLOW2, AdminOnly);
return 1;
}La inceput de gamemode puneti
Citat#define AdminOnly "{FFFFCC}Eroare: Nu ai acces la aceasta comanda!"
#define COLOR_YELLOW2 0xFFFABAFF
#define COLOR_RED1 0x80404000
#define COLOR_GREY 0xAFAFAFAA
#define SCM SendClientMessage
Si
Citat#include <zcmd>
#include <sscanf>pa
<click> -
Tot aceasi erroare am ... daca iti dau scriptul ma poti ajuta tu ? Plz
Topic Closed
in Vânzare
Posted
TI-am dat cerere pe discord.