Alberto.
-
Posts
153 -
Joined
-
Last visited
-
Days Won
5
Content Type
Profiles
Forums
News
Documentation
Posts posted by Alberto.
-
-
Ai facut conexiunea cu baza de date?
-
Mda, multumesc pentru ajutor. Se poate da t/c. M-am incurcat la o chestie asa simpla..
-
Problema intalnita (descriere): Am un sistem de pariuri facut de mine, iar la fiecare meci jucat ora:50, foreach-ul care verifica daca cineva a castigat sau nu imi verifica doar pe cel cu id-ul 0. Pe restul jucatorilor nu ii ia in considerare.
Ero(area / rile) / warning-(ul / urile): Nu sunt erori sau avertismente.
Liniile de cod / sursa / script-ul(obligatoriu):Spoilerforeach(Player, x)
{
if(PlayerInfo[x][pBilet] == 1)
{
if(echipa1 > echipa2)
{
new Float:cash = PlayerInfo[x][pBaniDepusi] * cota1;
if(PlayerInfo[x][pPariu] == 1)
{
format(string, sizeof(string), "Meciul a fost jucat. Ai castigat %.0f$.", cash);
new money = floatround(cash, floatround_round);
GivePlayerCash(x, money);
SCM(x, COLOR_NEWBIE, "---------------------------------------------------------");
SCM(x, COLOR_NEWBIE, string);
SCM(x, COLOR_NEWBIE, "---------------------------------------------------------");
castig[x] = 1;
return 1;
}
else
{
format(string, sizeof(string), "Meciul a fost jucat. Biletul tau este necastigator.");
SCM(x, COLOR_NEWBIE, "---------------------------------------------------------");
SCM(x, COLOR_NEWBIE, string);
SCM(x, COLOR_NEWBIE, "---------------------------------------------------------");
return 1;
}
}
Imagini / Video (optional): Nu cred ca e necesar.
Ati incercat sa rezolvati singur?: Am incercat sa imi dau seama care e problema, dar nu reusesc. Poate aveti voi vreo solutie, multumesc anticipat tuturor. -
pune 'count++' sub linia ' GivePlayerWeaponEx(i, gun, ammo); '
unde ai tu count-ul actual,ai linia ' if(GetPlayerState(i) == PLAYER_STATE_PASSENGER) ' careface verificarea daca player-ul este intr-un vehicul ca pasager. Asta ar fii problema pentru care nu ar creste, altfel nu imi pot da seama de ce nu merge, bafta.
Edit: la mine iti daduse -1, deoarece ti-am pus ' count-1 ' ca sa te excluda pe tine, dar nu a crescut.
-
incearca asa, stringul trebuie formatat sub linia cand variabila 'count' creste, altfel va lua mereu valoarea cu care e initiata.
CMD:areagun(playerid, params[]) // adaugat 'count'
{
if(gPlayerLogged[playerid] == 0) return SendClientMessage(playerid, COLOR_RED2, "Nu poti folosi nicio comanda pentru ca nu esti logat.");
if(PlayerInfo[playerid][pAdmin] >= 2)
{
new range,gun,ammo,string[256],sendername[25],count=0;
if(sscanf(params, "iii", range, gun, ammo)) return SCM(playerid,COLOR_WHITE,"Usage: /areagun [range] [weapon id] [ammo]");
{
GetPlayerName(playerid, sendername, sizeof(sendername));
if(gun < 1||gun > 46||gun==19||gun==20||gun==21||gun==45) return SCM(playerid,COLOR_WHITE,"Invalid weapond ID.");
if(ammo <1||ammo > 1000) return SCM(playerid,COLOR_WHITE,"Invalid ammo (1-1000).");
foreach(Player,i)
{
if(IsPlayerConnected(i))
{
if(ProxDetectorS(range, playerid, i))
{
GivePlayerWeaponEx(i, gun, ammo);
if(GetPlayerState(i) == PLAYER_STATE_PASSENGER)
{
new gun2,tmp;
GetPlayerWeaponData(i,5,gun2,tmp);
#pragma unused tmp
if(gun2)SetPlayerArmedWeapon(i,gun2);
else SetPlayerArmedWeapon(i,0);
count++;
}
}
}
}
format(string, sizeof(string), "AdmCmd: {FFFFFF}%s has given gun %d with %d bullets to all players on range %d. (%d players)", sendername,gun,ammo,range, count-1);
ABroadCast(COLOR_ADMCOMMANDS,string,1);
}
}
else return SendClientMessage(playerid, COLOR_ERROR, "You are not authorized to use this command.");
return 1;
} -
format(cNameclans, sizeof(string), 20, "%s", inputtext);//error 035: argument type mismatch (argument 1) new verificaClan = MySQLCheckClan( cNameclans[playerid] );//error 028: invalid subscript (not an array or too many subscripts): "cNameclans"
aici, in loc de 'sizeof(string)' pui 'sizeof(cNameClans)';
-
are legatura cu 'vLocked'. Cauta in gm legat de el, ar trebui sa gasesti un return cu, 'RemovePlayerFromVehicle' sau dupa caz 'ClearAnimations'. Acolo faci verificarea daca masina e a lui.
-
nu am inteles mai exact ce vrei sa faci, dar exista functia 'OnPlayerClickTextDraw' in caz ca nu stiai, poate imi spui mai detaliat ca sa te pot ajuta.
-
Nu e suficient ce ai facut tu, trebuie sa preiei din baza de date datele.
ex:
new query[500];
format(query,100,"SELECT * FROM users WHERE `name`='%s' AND `Pin`='%s'",PlayerInfo[playerid][pNormalName],PlayerInfo[playerid][pPin]);
new Cache: pin = mysql_query(SQL,query);
if(cache_get_row_count() > 0)
{
cache_get_field_content(0, "name", PlayerInfo[playerid][pNormalName], SQL, 130);PlayerInfo[playerid][pPin] = cache_get_field_content_int(0, "Pin");
}
SpoilerAlte informatii:
1. Daca esti in ceata, ce am scris mai sus il poti pune la OnPlayerLogin
2. E foarte probabil sa ai in gamemode aceste salvari si sa fii nevoit sa adaugi doar 'PlayerInfo[playerid][pPin] = cache_get_field_content_int(0, "Pin");'
-
Ai pus niste taburi in plus la dialog. Aceste taburi se noteaza cu '\t', scoate ce e in plus.
-
La 23.04.2016 la 2:49, Alex136Rx a spus:
ba ce aveti ma ,v-am rugat sa ma invatati si sariti pe mine ,faceti in pana mea o comanda sa invat ,daia e forumul
Poti cere ajutor si fara sa te dai rotund. Tu vii aici si spui ca 'recent te-ai apucat de ridicat blocuri dar nu stii din ce se face cimentul', daca intelegi ce spun, Puteai sa vii si sa zici ca esti incepator (bata in script) si nu stii sa faci un dialog, noi intelegeam( ca doar toti am trecut prin asta) si iti explicam cum ii explica mamaie cainelui de ce nu e bine sa se cace in casa:
1. Primul pas, definesti dialog-ul.
#define DIALOG_RULES 1572 ( unde DIALOG_RULES = numele dialogului, 1572 = id-ul dialogului)
2. Creezi comanda:
CMD:rules(playerid, params[])
{
ShowPlayerDialog(playerid, DIALOG_RULES, DIALOG_STYLE_MSGBOX, "REGULI", "1. Nu ai voie sa..\n 2.Ai voie sa..\n 3.Alte reguli...", "Am inteles", "Nu am inteles ca sunt prost");
}
Spoilerunde DIALOG_STYLE_MSGBOX = stilul dialogului, la texte e de preferat stilul msgbox.
Poate te vei intreba ce-s cu '\n'-urile alea acolo. Dupa acel \n ce urmeaza va fii afisat pe randul urmator.
'REGULI' - este titlul dialogului care apare
"1. Nu ai voie sa..\n 2.Ai voie sa..\n 3.Alte reguli..." - continutul dialogului, maretele reguli
'Am inteles' - este primul buton, pe care daca apasa deocamdata nu se va intampla nimic, doar se inchide dialogul.
'Nu am inteles ca sunt prost" - cel de-al doilea buton. Daca vrei doar un buton, lasi doar ghilimelele libere, ex: ""
Alte informatii:
Daca ce regulile tale sunt foarte multe vei primi erori si ma vei injura ca nu ti-am explicat bine.
Poti folosi un string de 15000 de caractere ca sa poti pune 5001 de reguli. Deasemenea in locului la "1, nu ai voie sa.. etc.." vei pune cuvantul 'string' fara ghilimele.
Ar arata ceva in genul:
new string[500] = "Reguli reguli reguli";
strcat(string, "alte reguli reguli reguli");
ShowPlayerDialog(playerid, DIALOG_RULES, DIALOG_STYLE_MSGBOX, "REGULI", string, "Am inteles", "Nu am inteles ca sunt prost");
-
Salut. Te sfatuiesc sa incepi cu ceva mai usor, daca spui ca esti incepator te va depasi si innebuni sa incerci deja sa faci unele sisteme.
1. Ai functia OnPlayerKeyStateChange care verifica pe ce tasta apasa player-ul, de aici te voi lasa sa te informezi.
2. In pawn sunt niste functii numite GetVehicleParamsEx si SetVehicleParamsEx care controleaza motorul, farurile, alarma, usile, etc.
3. Acele 'detalii' se numesc TextDraw-uri si sunt mult mai simplu de facut decat pare, informeaza-te pe wikipedia.
-
deasupra la asta:
LinkVehicleToInterior(GetPlayerVehicleID(playerid), GetPlayerInterior(userID));
pui: SetVehiclePos(GetPlayerVehicleID(playerid), fPos[0], fPos[1]+2, fPos[2]);
-
if(PlayerInfo[playerid][pPin] = cache_get_field_content(0, "Pin", string))
verificarea egalitatii se face cu semnul '=='
semnul '=' inseamna ca acea variabila ia valoarea, de aceea nu are nici un sens.
-
Acum 10 ore, Extremys a spus:
Nu prea am inteles ce ai vrut sa zici dar, eu amf acut asta pe un server non mysql si rula cam asa :
Playerul dadea /factions alegea una din ele iar acolo ii aparea Aplica ca membru. DAca aleagea si lider-ul nu era online ii trimitea un mesaj ca nu este online sa incerce mai tarziu iar daca era online liderul primea un mesaj si acesta folosea /startaplciatie id iar el completa intrebarile din acest test Cati ani ai ? etc lider-ul primea mesaj cu intrebarile si jos raspunsul dat de el dar in acelasi timp se salvau si in comadna /aplications dupa mai era /acceptaaplciatie id ii transmitea ca a fost acceptat pentru test practic si /respgineaplciatie id pentru a o respegine el putea aplica odata la 24 ore jcuate de la ultima aplcaitieE cam greu sa intelegi daca nu ai ideea pe care o am eu in cap, spre exemplu nici eu nu prea inteleg ce are de aface sistemul tau cu ideea baiatului (doar ca amandoi ati vrut sistem de aplicatii direct din joc). Pe viitor nu te mai grabi cand scrii ca se vede urat, eu ma gandeam la un sistem putin mai complex deoarece sa:mp-ul este prea avansat acum ca sa vii cu sisteme care doar trimit niste mesaje si dau o valoare unei variabile.
-
Partial mi se pare o idee buna, vorba lui Alin, ar fii mult de munca. Propun ca playerii care aplica sa fie listati in dialogul ala si cand apesi pe ei sa apara urmatoarele informatii: Nume: / Nivel: / Warns: / History: / Convinge-ma in 50 de cuvinte:. In momentul in care aplica la o factiune, sa ii apara doar un dialog stil input in care sa scrie ce vrea, asta va aparea la rubrica "Convinge-ma in 50 de cuvinte" sau cum vrei tu sa o numesti.
Si daca tot am inceput, in momentul in care un tester foloseste /starttest [id], sa ii apara un test (grila sau cum vrei tu) si daca ii place testerului cum raspunde, eventual il accepta si pentru proba practica. Ar fii un sistem unic si de folos, vezi si tu ce idei mai iti vin si combina-le, bafta.
Apropo, aici este rubrica "caut scripter" : https://www.sa-mp.ro/forums/forum/382-caut-scripter/
-
vreau sa imi arati "SpawnPlayer"
-
Cred ca inteleg ce anume vrei, uite un mod la care m-am gandit.
new
Float: distance1 = GetPlayerDistanceFromPoint(playerid, coordonate),
Float: distance2 = GetPlayerDistanceFromPoint(playerid, coordonate),
... Float: distance7 = GetPlayerDistanceFromPoint(playerid, coordonate);
if(distance1 < distance2 && distance1 < distance3 && distance1 < distance4 && distance1 < distance5 && distance1 < distance6 && distance1< distance7)
{
/// distance1 e cea mai mica.
}
if(distance2 < distance1 && distance2 < distance3 && distance2 < distance4 && distance2 < distance5 && distance2 < distance6 && distance2< distance7)
{
/// distance2 e cea mai mica.
}
...
if(distance7 < distance1 && distance7 < distance3 && distance7 < distance4 && distance7 < distance5 && distance7 < distance6 && distance7 < distance1)
{
/// distance7 e cea mai mica.
}
Alt mod mai simplu nu imi vine in minte momentan.
-
Acum 12 ore, s4uriK a spus:
Dupa cum se vede am dat quote ca am aceleasi pareri ca tine. :-? Lol.
E cea mai simpla metoda. Gata ca facem off aiurea. PS: buna treaba cu pawn-team.
-
La 06.05.2016 la 4:10, s4uriK a spus:
Ai ceva de obiectat s4uriK?
-
1. Intri in joc
2. Iti dai respawn si nu te misti
3. Scrii /save spawn
4. Intri in my documents - gta san andreas - samp - saved pos.
5. Iei coordonatele si le cauti in gm
6. Modifici coordinatele si ala e spawn-ul
-
Din cate stiu eu gm-ul bizgone nu are astfel de probleme. Verifica daca l-ai pus bine pe mysql si daca ai facut bine conexiunea gamemode - baza.
-
Acum 2 minute, xStrike123 a spus:
Caut in GM? ca nu gasesc #pragma dynamic
Adaugi tu in gamemode. O pui chiar sub #include-uri.
-
// M-am calmat, scuze de limbaj.
Coliziuni la job.
in Discuţii scripting
Posted
Salut. In primul rand, verifici daca respectivul se afla la lucru. Te orientezi, depinde de fiecare job in parte. Apoi te folosesti de functia:
https://wiki.sa-mp.com/wiki/DisableRemoteVehicleCollisions
Nu vreau sa iti dau mura in gura, dar nici sa te las cu nelamuriri. Daca mai ai vreo intrebare poti lasa un reply, bafta.