-
Posts
1.337 -
Joined
-
Last visited
-
Days Won
95
Content Type
Profiles
Forums
News
Documentation
Everything posted by WiDuAlK
-
http://wiki.sa-mp.com/wiki/MySQL/R33 de aici inveti ce fac functiile si ai si tutorialele mele in care vezi cum se aplica.
-
Asta mi se pare "cireasa de pe tort" Nu am nimic cu tine , dar asta am gandit, asta am spus
-
+ 1 asta vroiam sa zic eu inainte de a te vedea pe tine Tu ai facut tutorialul , tu ar trebui sa sti. Acolo doar ai creat o masina care, dupa restartarea serverului, ea va fi stearsa LIKE!
-
Sincer, titlul nu are nici o legatura cu filmuletele dar bravo pentru inspiratie si echipa.
-
adauga asa: new TimeFrezeForPlayer[MAX_PLAYERS] = 0; forward TimeInFreeze(); public OnGameModeInit() { SetTimer("TimeInFreeze",1000,true); // liniile tale return 1; } public TimeInFreeze() { foreach(Player, i) { if(TimeFrezeForPlayer[i] > 0) { TimeFrezeForPlayer[i] --; } if(TimeFrezeForPlayer[i] <= 0) { PlayerInfo[i][Frozen] = 0; TogglePlayerControllable(i, true); } } return 1; }si asta: CMD:freeze(playerid, params[]) { if(PlayerInfo[playerid][Level] < 2) return SendError(playerid, "You need to be Admin Level 2 to use this command!"); new targetid, TimeFreeze, Reason[50]; eString[0] = EOS; new Str[80], Str2[80]; if(sscanf(params, "uds[49]", targetid, TimeFreeze, Reason)) return SendUsage(playerid, "/freeze [PlayerID] [Freeze Time(minute)] [Reason]"); if(!IsPlayerConnected(targetid)) return SendError(playerid, "Player not connected."); if(PlayerInfo[targetid][Frozen] == 1) return SendError(playerid, "Player is already frozen!"); if(TimeFreeze > 9999) return SendError(playerid, "Invalid Time!"); TogglePlayerControllable(targetid, false), SetPlayerVirtualWorld(targetid, 10); PlayerInfo[targetid][Frozen] = 1, PlayerPlaySound(targetid, 1057, 0.0, 0.0, 0.0); TimeFrezeForPlayer[targetid] = TimeFreeze * 60; format(Str, sizeof(Str), "%d",TimeFrezeForPlayer); TextDrawSetString(Textdraw7, Str); format(Str2, sizeof(Str2), "%s", PlayerName(playerid)); TextDrawSetString(Textdraw11, Str2); TextDrawShowForPlayer(targetid, Textdraw0); TextDrawShowForPlayer(targetid, Textdraw1); TextDrawShowForPlayer(targetid, Textdraw2); TextDrawShowForPlayer(targetid, Textdraw3); TextDrawShowForPlayer(targetid, Textdraw4); TextDrawShowForPlayer(targetid, Textdraw5); TextDrawShowForPlayer(targetid, Textdraw6); TextDrawShowForPlayer(targetid, Textdraw7); TextDrawShowForPlayer(targetid, Textdraw8); TextDrawShowForPlayer(targetid, Textdraw9); TextDrawShowForPlayer(targetid, Textdraw10); TextDrawShowForPlayer(targetid, Textdraw11); SetTimerEx("ShowFreezeLeftTime", 1000, 0, "i", targetid); format(eString, sizeof(eString), "Co-Owner {FF0000}%s{D1D1D1} la inghetat pe {00A6FF}%s {D1D1D1}pentru {00A6FF}%d {D1D1D1}secunde.(Motiv: %s)", PlayerName(playerid), PlayerName(targetid), TimeFrezeForPlayer, Reason); SendClientMessageToAll(COLOR_GREY2, eString); return 1; }
-
iTD nu are fisier .so pentru sistemul de operare linux(host). Are doar fisierul .dll deoarece Ipleomax a considerat ca textdraw-urile le faci tu in pc tau, nu folosesti scriptul pentru a te juca cu prieteni.
- 1 reply
-
- 1
-
-
Nu cred ca vei primi acest tutorial pentru ca acum nu prea mai se foloseste dini. Eu personal am preferat sa invat mysql si sa nu ma ocup de dini deoarece mysql este muuult mai bun.
-
Astăzi am învățat - Împărtășiți-vă cunoștințele noi!
WiDuAlK replied to WopsS's topic in Discuţii scripting
Azi am invatat ca string-urile mari mananca din biti. Nu are rost ca intr-un string folosit la un mesaj sa fie marit la 256, 512, 1000, 2000 exemplu: new string[256]; new string[512]; new string[1000]; new string[2000];Nu este nevoie deoarece chat-ul de pe SA-MP se incadreaza in 144 de caractere, si nu are rost sa irosim biti aiurea.Exemplu: new string[144];De retinut! String-ul este defapt un array single dimensional, dar in acelasi timp este si un vector . Este vector deoarece incepe de la 0 si se sfarseste la lungimea lui -1. Exemplu: new string[7] = "Claudiu"); porneste de la 0, adica litera " C " este caracterul 0, litera " l " este caracterul 1 iar litera " u " este caracterul 6.Acest string atinge in total 7 caractere pornind de la 0 pana la 6. Daca string-ul atinge caracterul 7 din string sau 8, 9 s.a.m.d atunci el nu este citit deoarece este EOS = End of String(sfarsit de string). Mai pe scurt un mesaj nu depaseste lungimea string-ului lui, adica atunci cand faceti un mesaj mai lung si un string mai scurt decat mesajul, mesajul va fi scris incomplet in chat. !!! caracterul SPACE(spatiu dintre cuvinte) este luat ca caracter. Exemplu de mesaj incomplet cauzat de un string prea mic: new string[8]; format(string, sizeof(string),"Salutare lume!"); SendClientMessage(playerid, -1, string);in acest caz mesajul in chat va fi: "Salutare"Deci mesaj incomplet. ATENTIE! Nu confundati string-urile folosite in mesaje cu query-urile(interogarile) folosite in functiile mysql: new query[128]; mysql_format(MySQL, query, sizeof(query), "SELECT * FROM `%s` WHERE `bar` = '%e' AND `foobar` = '%f' LIMIT %d", "foobar", "escape'me\"please", 1.2345, 1337); mysql_tquery(MySQL, query, "OnStuffSelected", ""); SURSA WIKI.SA-MP.COMQuery-urile sunt mesaje trimise catre baza de date. Ele nu au nici o legatura cu chat-ul deci e in regula sa avem un query mai mare de 144 in cazul in care lungimea lui este mai mare. Dar nici aceasta nu trebuie sa fie imensa, ci potrivita in functie de lungime. De obicei nu trebuie mai mare de 128, dar sunt cazuri in care query are o lungime mai mare, de aceea il putem mari. -
nu, tu trebuie sa pui comenzile de pe zcmd inafara oricarui public
-
inseamna ca tu ai pus comenzile de pe ZCMD la publicul OnPlayerCommandText. Pune comenzile inafara oricarui public.
-
e pe mysql nu ? da-ne dialogurile de register login si tot ce tine de ele.
-
Daca stii ini poti transforma din mysql in ini... dar nu e recomandat, deoarece mysql este categoric muult mai bun
-
daca iti mai da erori dupa ce ai facut cum ti-a zis wopss, ai putea sa le postezi stii? :-??
-
iti da crash , pentru ca tu ai pus intr-un callback, functie pe undeva
-
Adauga asta pe undeva prin GM: GangZoneShowForPlayerEx(playerid, zoneid, playerteam) { new zonecolor; if (playerteam == TEAM_WCK) { zonecolor = 0xF102255B; } else if (playerteam == TEAM_GROVE) { zonecolor = 0x00FF002E; } else if (playerteam == TEAM_BALLAS) { zonecolor = 0x8000FF3C; } else if (playerteam == TEAM_SKATER) { zonecolor = 0x0000FF3F; } else if (playerteam == TEAM_POLICE) { zonecolor = 0xFFFF003D; } else if (playerteam == TEAM_FASTFOOD) { zonecolor = 0xFF80403F; } else if (playerteam == TEAM_GIRLS) { zonecolor = 0xFF00FF48; } GangZoneShowForPlayer(playerid, zoneid, zonecolor); return 1; }
-
incearca o alte versiune de plugin mysql
-
Uite-te in server log, posteaza-ne sa vedem si noi daca nu te descurci.
-
Pentru ca tu nu ai pus parametri pentru comanda, foloseste sscanf, ai un tutorial in semnatura mea despre sscanf si zcmd.
-
Ti-am zis. Comanda e scrisa gresit, ai insirat functii aiurea fara sa faca ceva.
-
ia incearca sa faci cu mysql_format cred ca iti va reusi si mai verifica odata parametri pe wiki, la prima vedere nu sunt corecti.
-
La multi ani mosule, sa mergi la facultate !!!
-
in primul rand comanda e scrisa gresit. Asa ar trebui sa fie: CMD:offuninvite(playerid,params[]) { new idx, string[128]; if(PlayerInfo[playerid][pLeader] >= 1) { SendClientMessage(playerid, COLOR_WHITE, "{00FF00}Folosire:{FFFFFF} /offuninvite [NUMELE-EXACT]"); return 1; } format(string, sizeof(string), "SELECT `username` FROM `players` WHERE username = '%s' AND Member > 0 LIMIT 1", (result)); mysql_query(string); mysql_store_result(); if(!mysql_num_rows()) { format(string, sizeof(string), "Nu este nimeni cu numele %s inregistrat/cu factiune!", (result)); mysql_free_result(); return SendClientMessage(playerid, 0xEF5C5CFF, string); } else if(mysql_num_rows() != 0) { format(string, sizeof(string), "UPDATE `players` SET `Member` = 0 WHERE username = '%s'", (result)); mysql_query(string); mysql_store_result(); format(string, sizeof(string), "{0066FF}[Info:] {FFFFFF}%s nu mai este lider!", (result)); ABroadCast(0xa9c4e4FF, string, 1); mysql_free_result(); } else return SendClientMessage(playerid, COLOR_WHITE, "{0066FF}Info: {FFFFFF}Nu exista niciun jucator cu acel nume! Scrie numele exact!"); return 1; }In al 2-lea rand tu ai gresit prin comanda cate ceva deci tot iti da eroare.
-
Nu. Tu ai pus comanda CMD inafara oricarui public, iar cmdtext si idx sunt definite in publicul OnPlayerComandText, de aia , in loc de cmdtext adauga "params" si pune la inceputul comenzii: new idx;
