Xtrem_Maddox Posted January 18, 2023 Posted January 18, 2023 Salut, banuiesc ca multi dintre voi sunteti familiarizati cu ProxDetector. As vrea sa stiu si eu cum pot sa fac urmatorul lucru intr-un chat: John says: Hello! Mai pe scurt, vreau ca NUMAI NUMELE jucatorului sa isi pastreze culoarea pe care o are, dar restul sa fie influentat de ProxDetector. De exemplu, sa zicem ca exemplul de mai sus s-a intamplat cand erai foarte aproape de player si el a spus "Hello!". Urmatorul exemplu se intampla atunci cand esti la cativa metri distanta de el: John says: Hello! Adica ProxDetectorul sa faca restul mai inchis la culoare, dar numele jucatorului sa ramana cu exact aceeasi culoare pe care o are jucatorul respectiv.
shane Posted January 18, 2023 Posted January 18, 2023 Salut @Xtrem_Maddox, Pune functia ProxDetector pe pastebin, ca nu stiu cum functioneaza, si poate te pot ajuta. Deci daca jucatorul e la 5m spre ex fata de alt jucator, sa apara in chat: John says: Hello!, iar daca e la 15m, sa-i apara in chat: John says: Hello! (Ca un exemplu) Daca te-am ajutat =>
Xtrem_Maddox Posted January 18, 2023 Author Posted January 18, 2023 49 minutes ago, shane said: Salut @Xtrem_Maddox, Pune functia ProxDetector pe pastebin, ca nu stiu cum functioneaza, si poate te pot ajuta. Deci daca jucatorul e la 5m spre ex fata de alt jucator, sa apara in chat: John says: Hello!, iar daca e la 15m, sa-i apara in chat: John says: Hello! (Ca un exemplu) Salut! Da, exact cum ai spus tu. Culoarea playerului sa ramana aceeasi, in timp ce culoarea de la restul stringului (incepand de la "says: ....") sa fie influentata de ProxDetector. Uite: https://pastebin.com/wUCPitfY
shane Posted January 18, 2023 Posted January 18, 2023 (edited) Foloseste aceasta functie, care ar trebui sa-ti functioneaze (teoretic): stock SendCloseMessage(playerid, color, const message[], Float:range = 5.0) { new virtualid = GetPlayerVirtualWorld(playerid), String[124], Float: X, Float: Y, Float: Z; GetPlayerPos(playerid, X, Y, Z); foreach(new i : Player) { if(IsPlayerConnected(i)) { if(IsPlayerInRangeOfPoint(i, range, X, Y, Z) && GetPlayerVirtualWorld(i) == virtualid) { format(String, sizeof String, "%s {ffff00}says: %s", GetName(playerid), message); SendClientMessage(i, color, String); } else if(IsPlayerInRangeOfPoint(i, range - 5.0, X, Y, Z) && GetPlayerVirtualWorld(i) == virtualid) { format(String, sizeof String, "%s {ff0000}says: %s", GetName(playerid), message); SendClientMessage(i, color, String); } } } return true; } Practic, daca tu pui range 10.0 (10m), jucatorii vor primi o culoarea anume, pe care o setezi din format (ex, eu am pus: {ffff00}), iar daca e la -5.0 fata de rangeul setat, va fi alta culoare. Lucrurile astea le modifici tu, dupa bunul plac. Exemplu folosire: SendCloseMessage(playerid, COLOR_ORANGE, "Salut!", 10.0); RESULT: "shane (culoare portocaliu)" "says: Salut! (culoare rosie) Cam atat, daca sunt probleme, ma anunti, daca nu, succes! Edited January 18, 2023 by shane 1 Daca te-am ajutat =>
Xtrem_Maddox Posted January 18, 2023 Author Posted January 18, 2023 1 hour ago, shane said: Foloseste aceasta functie, care ar trebui sa-ti functioneaze (teoretic): stock SendCloseMessage(playerid, color, const message[], Float:range = 5.0) { new virtualid = GetPlayerVirtualWorld(playerid), String[124], Float: X, Float: Y, Float: Z; GetPlayerPos(playerid, X, Y, Z); foreach(new i : Player) { if(IsPlayerConnected(i)) { if(IsPlayerInRangeOfPoint(i, range, X, Y, Z) && GetPlayerVirtualWorld(i) == virtualid) { format(String, sizeof String, "%s {ffff00}says: %s", GetName(playerid), message); SendClientMessage(i, color, String); } else if(IsPlayerInRangeOfPoint(i, range - 5.0, X, Y, Z) && GetPlayerVirtualWorld(i) == virtualid) { format(String, sizeof String, "%s {ff0000}says: %s", GetName(playerid), message); SendClientMessage(i, color, String); } } } return true; } Practic, daca tu pui range 10.0 (10m), jucatorii vor primi o culoarea anume, pe care o setezi din format (ex, eu am pus: {ffff00}), iar daca e la -5.0 fata de rangeul setat, va fi alta culoare. Lucrurile astea le modifici tu, dupa bunul plac. Exemplu folosire: SendCloseMessage(playerid, COLOR_ORANGE, "Salut!", 10.0); RESULT: "shane (culoare portocaliu)" "says: Salut! (culoare rosie) Cam atat, daca sunt probleme, ma anunti, daca nu, succes! Am modificat prin functia ta si am obtinut rezultatul pe care-l voiam in final. Multumesc frumos!
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now