Jump to content

cristyifrim31O

Membru
  • Posts

    28
  • Joined

  • Last visited

Everything posted by cristyifrim31O

  1. Unde aţi întâmpinat problema: forum Descriere problemă:Intru pe un topic, postez in el, dau un refresh si-mi mai arata 2 post-uri postate inainte cu 6 minute.Poze / Videoclip: - Si da e bug pentru ca normal trebuia sa-mi arate acele post-uri, nu dupa ce dau eu refresh.
  2. Iti dau un sfat, sterge tot ce tine de cryptarea parolelor de la WhirlPool. La register pui sa insereze parola in SHA1. Ex: f ormat(iStr, 200, "INSERT INTO `accounts`(`Name`, `Password`) VALUES ('%s', SHA1('%s'))", GetName(playerid), Password); iar la login pui sa selecteze, ex: format(iStr2, 300, "SELECT * FROM `accounts` WHERE `Name` = '%s' AND `Password` = SHA1('%s')", GetName(playerid), iStr);
  3. Foarte frumos, am aflat si eu un includer nou care face ceva ce mi se pare folositor pe un server stunt, +1. Pont: Poti sa optimizezi comanda in felul ala. CMD:startfly(playerid, params[]) StartFly(playerid), SetPlayerHealth(playerid, 100), SetPlayerArmor(playerid, 100); merge si cu return dar arata mai frumos asa.
  4. Vad ca se vorbeste foarte mult despre rpg aici. Eu vreau sa spun ca si serverele stunt in romania s-au cum dus pe apa sambetei. De cand a postat sHiTman XSS v4 au inceput sa apara o groaza de edit-uri. Apoi a postat WoS, unde au aparut toti cu toate serverele lor misto, laguite de la proasta optimizare de la WoS. Acum cam tot ce e pe stunt se plagiaza de la rss si xss, rar daca gasesti idei originale fara buguri.
  5. Descriere tutorial: Random checkpoints(cand cineva e intr-un job sa nu i se seteze cp-ul fix ci sa-l dea random). Mie doar imi explicati cum faci aia cu random, ca te configurat ma ocup eu.
  6. Arata-ne OnPlayerDeath sau vezi sa nu ti se cheme callback-ul OnPlayerRequestClass.
  7. V-ati intrebat cum e sa sperii pe cineva cand tragi in el si sa nu-i scoata HP? Asta poate fi si un fel de /god. Bun, prima data avem nevoie doar de 1 includer. scrieti asta la locul includerului. #include <zcmd> Ne vom folosi de el sa facem comenzi. Acum cream variabila. new fakeBullets[MAX_PLAYERS]; De aceasta variabile ne vom folosi ca sa definim cand playerul are gloantele false. Acum cream comanda. CMD:fakebullets(playerid, params[]) { //Cream comanda if(isnull(params)) return SendClientMessage(playerid, -1, "/FakeBullets [ON/OFF]"); if(strcmp(params, "on", true) == 0) return fakeBullets[playerid] = 1, SendClientMessage(playerid, -1, "/FakeBullets [ON]"), PlayerPlaySound(i,1057,0.0,0.0,0.0); if(strcmp(params, "off", true) == 0) return fakeBullets[playerid] = 0, SendClientMessage(playerid, -1, "/FakeBullets [OFF]"), PlayerPlaySound(i,1057,0.0,0.0,0.0); return 1; } Explicatie. if(isnull(params)) return etc. Daca nu scrie nimic ii va da mesaj sa scrie on sau off. if(strcmp..etc) adica playerul trebuie sa scrie /fakebullets on ca sa porneasca fake bullets si /fakebullets off ca se le opreasca. La public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid, bodypart) adaugam: if(fakeBullets[playerid] == 1) return SetPlayerHealth(damagedid, 100); Explicatie: Cand jucatorul primeste damage iar playerul ce a tras avea fakebullets on, i se va seta viata 100 de fiecare data cand este lovit de gloante. Atentie, OnPlayerGiveDamage este inacurat cateodata si acel player poate muri. Cam asta a fost. Multumesc lui Giskard pentru aceasta idee, aceste fake bullets sunt un fel de gloante oarbe.
  8. Am citit problema, dar am vazut ca ai cerut tu script-ul inaintea mea, +ca dupa ce am postat imi arata inca 2 post-uri inainte in care a aratat ca a rezolvat problema si am dat edit.
  9. Am avut un sync prost si a trebuit sa repostez.
  10. TextDrawShowForPlayer(playerid, TextdrawReport[playerid]); // am postat din greseala(syncul forumului).
  11. if(playerVariables[playerid][pAdminLevel] >= 0) TextDrawShowForPlayer(playerid,TextdrawReport);
  12. Tu in sscanf definesti i ca fiind jucatorul caruia ii trimiti. Nu, nu e aceeasi chestie, pentru ca e o simpla variabila, fara o functie anume.
  13. CMD:ban(playerid, params[]) { if(gPlayerLogged[playerid] == 0) return SendClientMessage(playerid, COLOR_LIGHTRED, "Trebuie sa te loghezi mai intai."); if(IsPlayerConnected(playerid)) { if (PlayerInfo[playerid][pAdmin] >= 3) { new id,reason[128],string[200],giveplayer[30],sendername[30],Type,str[128]; if(sscanf(params, "uds[128]", id,Type,reason)) return SCM(playerid,COLOR_DS,"{B8DBFF}Syntax: /ban <Name/Playerid> <Type(1-account 2-permanent)> <reason>"); if(IsPlayerConnected(id)) { if(id != INVALID_PLAYER_ID) { GetPlayerName(id, giveplayer, sizeof(giveplayer)); GetPlayerName(playerid, sendername, sizeof(sendername)); if(Type == 1) { if(id == playerid) return SendClientMessage(playerid, -1, "Nu te poti bana singur!"); format(string, sizeof(string), "AdmCmd: %s was banned by %s, reason: %s", giveplayer, sendername, reason); SendClientMessageToAll(COLOR_LIGHTRED, string); PlayerInfo[id][pBanned] = 1; SendClientMessage(id,COLOR_LIGHTRED,"[BAN INFO]: Poti face o cerere de unban pe forumul nostru.Forumul este http:."); SendClientMessage(id,COLOR_LIGHTRED,"[HINT]: Te sfatuim sa faci o poza la aceste informatii,si sa o postezi cand faci cerere unban.Apasa F8 pentru a face poza."); format(str,sizeof(str),"UPDATE users SET `Banned`='1' WHERE `name`='%s'",giveplayer); mysql_query(SQL,str); new ip[25]; GetPlayerIp(id, ip, sizeof(ip)); Banlog(ip,PlayerInfo[id][pSQLID],PlayerInfo[playerid][pSQLID],reason,0); KickEx(id); } else if(Type == 2) { if(id == playerid) return SendClientMessage(playerid, -1, "Nu te poti bana singur!"); format(string, sizeof(string), "AdmCmd: %s was banned by %s, reason: %s", giveplayer, sendername, reason); SendClientMessageToAll(COLOR_LIGHTRED, string); new giveplayerid; if(giveplayerid == playerid) return SendClientMessage(playerid, COLOR_ERROR, "You cannot ban yourself."); PlayerInfo[id][pBanned] = 1; SendClientMessage(id,COLOR_LIGHTRED,"[BAN INFO]: Poti face o cerere de unban pe forumul nostru.Forumul este http://."); SendClientMessage(id,COLOR_LIGHTRED,"[HINT]: Te sfatuim sa faci o poza la aceste informatii,si sa o postezi cand faci cerere unban.Apasa F8 pentru a face poza."); format(str,sizeof(str),"UPDATE users SET `Banned`='1' WHERE `name`='%s'",giveplayer); mysql_query(SQL,str); new ip[25]; GetPlayerIp(id, ip, sizeof(ip)); Banlog(ip,PlayerInfo[id][pSQLID],PlayerInfo[playerid][pSQLID],reason,0); Ban(id); } return 1; } } else return SendClientMessage(playerid, COLOR_DS, "{FFFFCC}Error: Player not connected."); } else return SendClientMessage(playerid, COLOR_DS, AdminOnly); } return 1; } Poftim, trebuia sa adaugi if(id == playerid) return SendClientMessage(playerid, -1, "Nu te poti bana singur!");
  14. Arata-ne comanda /ban ca noi nu suntem cititori in stele sa vedem ce script ai tu.
  15. T/C(am stat 5 ore si m-am gandit sa schimb ordinea dialogurilor(am schimbat cam tot sistemul, adica l-am mutat pe if/else)).
  16. Problema intalnita (descriere): cand intru pe server, dau sa ma inregistrez si nu-mi apare dialogul de age :\Ero(area / rile) / warning-(ul / urile): -Liniile de cod / sursa / script-ul(obligatoriu): public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { switch(dialogid) { case Account_D + 2: { new query[256]; if(response) { Data[playerid][iLanguage] = 1; mysql_format(iHandle, query, sizeof(query), "SELECT * FROM accounts WHERE Name = '%s'", GetName(playerid)); mysql_tquery(iHandle, query, "OnPlayerLogin", "i", playerid); } if(!response) { Data[playerid][iLanguage] = 2; mysql_format(iHandle, query, sizeof(query), "SELECT * FROM accounts WHERE Name = '%s'", GetName(playerid)); mysql_tquery(iHandle, query, "OnPlayerLogin", "i", playerid); } } case Account_D: { if(!response) return Kick(playerid); //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ else { if(!strlen(inputtext)) { switch(Data[playerid][iLanguage]) { case 1: return ShowPlayerDialog(playerid, Account_D, DIALOG_STYLE_PASSWORD, "Parola incorecta!", "Introdu-ti o parola pentru a te inregistra pe server!", "Inregistreaza", "Exit"); //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ case 2: return ShowPlayerDialog(playerid, Account_D, DIALOG_STYLE_PASSWORD, "Incorrect Password!", "Insert a password for register.!", "Register", "Exit"); } } new query[512]; mysql_format(iHandle, query, sizeof(query), "INSERT INTO accounts (Name, Pass, IP, SPass, Faction, Clan, Email) VALUES ('%s', SHA1('%s'), '%s', 'none', 'none', 'no', 'no')", GetName(playerid), inputtext, GetIP(playerid)); mysql_tquery(iHandle, query, "OnPlayerRegister", "i", playerid); } } case Account_D + 1: { if(!response) return Kick(playerid); //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ else { if(!strlen(inputtext)) { switch(Data[playerid][iLanguage]) { case 1: return ShowPlayerDialog(playerid, Account_D + 1, DIALOG_STYLE_PASSWORD, "Parola gresita", "Introdu-ti parola pentru a te loga!", "Ok", "NVM"); case 2: return ShowPlayerDialog(playerid, Account_D + 1, DIALOG_STYLE_PASSWORD, "Wrong password", "Insert your password to login!", "Ok", "NVM"); } } new query[256]; Data[playerid][iLogged] = 1; mysql_format(iHandle, query, sizeof(query), "SELECT * FROM accounts WHERE Name = '%s' AND Password = '%e'", GetName(playerid), Data[playerid][iPass]); mysql_tquery(iHandle, query, "OnLogin", "i", playerid); printf("%s s-a logat pe server", GetName(playerid)); } } case Account_D + 3: { if(response) { if(!strlen(inputtext)) { switch(Data[playerid][iLanguage]) { case 1: return ShowPlayerDialog(playerid, Account_D + 3, DIALOG_STYLE_INPUT, "E-mail incorect", "Introdu-ti e-mailul pentru a continua inregistrarea!", "Ok", ""); //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ case 2: return ShowPlayerDialog(playerid, Account_D + 3, DIALOG_STYLE_INPUT, "Incorrect E-mail", "Enter your e-mail to continue the registration!", "Ok", ""); } } new query[256]; strmid(Data[playerid][iEmail], inputtext, 0, strlen(inputtext), 999); mysql_format(iHandle, query, sizeof(query), "UPDATE accounts SET Email = '%e' WHERE Name = '%s'", Data[playerid][iEmail], GetName(playerid)); mysql_query(iHandle, query); switch(Data[playerid][iLanguage]) { //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ case 1: return ShowPlayerDialog(playerid, Account_D + 4, DIALOG_STYLE_INPUT, "Adauga Varsta", "{FFFFFF}Introdu-ti Varsta!", "Ok", ""); //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ case 2: return ShowPlayerDialog(playerid, Account_D + 4, DIALOG_STYLE_INPUT, "Your age", "{FFFFFF}Insert your age!", "Ok", ""); } //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ } } case Account_D + 4: { if(response) { new varsta = strval(inputtext); //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ if(varsta < 6 || varsta > 40) { switch(Data[playerid][iLanguage]) { case 1: return ShowPlayerDialog(playerid, Account_D + 4, DIALOG_STYLE_INPUT, "Varsta incorecta", "Introdu-ti varsta pentru a continua inregistrarea!", "Ok", ""); //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ case 2: return ShowPlayerDialog(playerid, Account_D + 4, DIALOG_STYLE_INPUT, "Incorrect Age", "Enter your age to continue the registration!", "Ok", ""); } } else { new query[256]; Data[playerid][iAge] = varsta; mysql_format(iHandle, query, sizeof(query), "UPDATE accounts SET Age = '%d' WHERE ID = '%d'", Data[playerid][iAge], Data[playerid][iID]); mysql_query(iHandle, query); switch(Data[playerid][iLanguage]) { //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ case 1: return ShowPlayerDialog(playerid, Account_D + 5, DIALOG_STYLE_MSGBOX, "Sex", "{FFFFFF}Alege-ti sexul!", "Barbat", "Femeie"); //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ case 2: return ShowPlayerDialog(playerid, Account_D + 5, DIALOG_STYLE_MSGBOX, "Sex", "{FFFFFF}Chose your sex!", "Male", "Female"); } //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ } } } case Account_D + 5: { new query[256]; if(!response) { Data[playerid][iSex] = 1, Data[playerid][iSkin] = 170; mysql_format(iHandle, query, sizeof(query), "UPDATE accounts SET Sex = '%d' AND Skin = '%d' WHERE ID = '%d'", Data[playerid][iSex], Data[playerid][iSkin], Data[playerid][iID]); mysql_tquery(iHandle, query); } else { Data[playerid][iSex] = 2, Data[playerid][iSkin] = 56; mysql_format(iHandle, query, sizeof(query), "UPDATE accounts SET Sex = '%d' AND Skin = '%d' WHERE ID = '%d'", Data[playerid][iSex], Data[playerid][iSkin], Data[playerid][iID]); mysql_query(iHandle, query); } } } return 1; } Imagini / Video (optional): https://www.youtube.com/watch?v=Nxl9e1dYgNoAti incercat sa rezolvati singur?: am incercat cu functie, am incercat cu functie pusa in mysql_tquery, am incercat direct in script, si tot nu vrea, wtf.
  17. #define COLOR_GREEN 0x00FF00AA(pui in header), si sterge new COLOR_GREEN, tu folosesti o variabila si nu ii este definita valoarea, tu trebuie sa o definesti ca un cod. CMD:disablecp(playerid, params) return DisablePlayerCheckpoint(playerid), SendClientMesage(playerid, COLOR_GREEN, "Ai dezactivat checkpointul!");
  18. Da. Solved. mysql_format(iHandle, query, sizeof(query), "INSERT INTO accounts (Name, Pass, SPass, IP, Skin, Faction, Rank, Money, Coins, Level,\ Exp, Vip, License1, License2, License3, License4, License5, Respect, Number, Phone, House, Prop, Clan,"); mysql_format(iHandle, query, sizeof(query), "Cars, Wanted, Muted,\ Warned, Banned, Kicked, Jailed, RBanned, Email, Age, Sex, StatTrak, Job, Language, Admin, Helper, SVip, Registered) VALUES ('%s',\ '%s', 0, '%e', 0, 'None', 0, '%d', 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'No', 'No', 'No', 0, 0, 0, 0, 0, 0, 0, 0, 'None', 0, 'Neutru', 0, 'No', '%d',\ 'No', 'No', 'No', 1)", GetName(playerid), inputtext, GetIP(playerid), Data[playerid][iMoney], Data[playerid][iLanguage]); mysql_query(iHandle, query); Dupa ce am citit erorile mai bine, mi-am dat seama ca trebuie impartit in 2 format-uri.
  19. Problema intalnita (descriere): primesc niste erori la compilareEro(area / rile) / warning-(ul / urile): C:\Users\Cristian\Desktop\sv\gamemodes\rpg.pwn(296) : error 075: input line too long (after substitutions) C:\Users\Cristian\Desktop\sv\gamemodes\rpg.pwn(297) : error 037: invalid string (possibly non-terminated string) C:\Users\Cristian\Desktop\sv\gamemodes\rpg.pwn(297) : error 017: undefined symbol "INSERT" C:\Users\Cristian\Desktop\sv\gamemodes\rpg.pwn(297) : error 017: undefined symbol "INTO" C:\Users\Cristian\Desktop\sv\gamemodes\rpg.pwn(297) : fatal error 107: too many error messages on one line Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase 5 Errors. Liniile de cod / sursa / script-ul(obligatoriu): mysql_format(iHandle, query, sizeof(query), "INSERT INTO accounts (Name, Pass, SPass, IP, Skin, Faction, Rank, Money, Coins, Level,\ Exp, Vip, License1, License2, License3, License4, License5, Respect, Number, Phone, House, Prop, Clan, Cars, Wanted, Muted,\ Warned, Banned, Kicked, Jailed, RBanned, Email, Age, Sex, StatTrak, Job, Language, Admin, Helper, SVip, Registered) VALUES ('%s',\ '%s', 0, '%e', 0, 'None', 0, '%d', 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'No', 'No', 'No', 0, 0, 0, 0, 0, 0, 0, 0, 'None', 0, 'Neutru', 0, 'No', '%d',\ 'No', 'No', 'No', 1)", GetName(playerid, inputtext, GetIP(playerid), Data[playerid][Money], Data[playerid][Language]); mysql_query(iHandle, query); Imagini / Video (optional): -Ati incercat sa rezolvati singur?: dap.
  20. Am vazut un SendClientMessage mai ciudat in gm-ul lui Seby(RullZ) https://www.sa-mp.ro/forums/topic/22482-gamemodeextreme-stunt-world/#comment-126770 Si as vrea o explicatie cum functioneaza aceasta chestie. Adica chiar sunt curios. SendClientMessage(playerid, -1, (Player[playerid][Language] == 1) ? RoMessage : EnMessage);
  21. Chiar imi pare rau ca ai postat minunatia asta de gamemode. Tin minte cand ai fost alungat de pe XSS, si te-ai lasat o vreme si dupa ti-ai schimbat numele si ai facut XSW. Cred ca ma stii.([XSS]NeaCristy).
  22. Tutorialul tau este incomplet, de ce? Pentru ca nu toti au P_DATA, de ex eu am AccInfo, si nu toti folosesc mysql. Nu cred ca toti au #define SCM SendClientMessage in gamemode. si scmf. aici: new Nume, Level;//creem 2 functii new Nume si Level new query[128]; // creem functia query care verifica in baza de date new string[100]; poti face ceva mai scurt: new Nume, Level, query[128], string[100]; Sa nu umpli comanda de new-uri. Nu ai adaugat de ce include-uri trebuie sa se foloseasca. Adica sscanf zcmd si mysql. Poate ei se folosesc de strcmp. Nu toti au variabila handle definita, poate ai folosesc gHandle, connHandle, etc. Totusi apreciez ca ai explicat fiecare functie din comanda.
  23. new query[100]; new rows, fields; mysql_format(handle, query, sizeof(query), "SELECT * FROM Players WHERE Name = '%s'", GetName(playerid)); cache_get_data(rows, fields);Inainte sa copiezi codurile incearca sa le verifici. Transforma OnPlayerConnect in asta new query[100]; mysql_format(aHandle, query, sizeof(query), "SELECT * FROM accounts WHERE Name = '%s'", GetName(playerid)); mysql_tquery(aHandle, query, "OnPlayerLogin", "i", playerid);si faci un callback corespunzator forward OnPlayerLogin(playerid); public OnPlayerLogin(playerid) { new rows, fields; cache_get_data(rows, fields); if(rows) { ShowPlayerDialog(playerid, logindialog, DIALOG_STYLE_PASSWORD, "Logheaza-te!", "Te rog sa-ti introduci parola contului mai jos!", "Logare", "Exit"); } else { ShowPlayerDialog(playerid, registerdialog, DIALOG_STYLE_INPUT, "Inregistrare", "Trebuie sa iti creezi un cont ca sa joci pe server.\nTasteaza mai jos o parola, pentru a te inregistra!", "Inregistreaza", "Exit"); } return 1; } Sau public OnPlayerConnect(playerid) { new query[100]; new rows, fields; mysql_format(handle, query, sizeof(query), "SELECT * FROM Players WHERE Name = '%s'", GetName(playerid)); mysql_query(handle, query); cache_get_data(rows, fields); if(rows) { ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Logheaza-te!", "Te rog sa-ti introduci parola contuului mai jos!", "Logare", "Exit"); } else { ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Inregistrare", "Trebuie sa iti creezi un cont ca sa joci pe server. nTasteaza mai jos o parola, pentru a te inregistra!", "Inregistreaza", "Exit"); } return 1; }P.S: Daca iti transformi OnPlayerConnect, schimba variabilele pentru ca ti-am dat din scriptul meu si nu am stat sa schimb.
  24. sistem login register ai? Si ce variabile folosesti sa ti-o pot configura.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.