public OnPlayerConnect(playerid)
{
new File:Lfile, string[128];
format(string, sizeof(string),\"név = %s\\r\\n\",pName(playerid));
Lfile = fopen(\"Catlakozott.txt\",io_append);
fwrite(Lfile,string);
fclose(Lfile);
return 1;
}
stock pName(playerid)
{
new Name[MAX_PLAYER_NAME];
GetPlayerName(playerid, Name, sizeof(Name));
return Name;
}
Szerintem ez összezavarná a dolgaidat és úgy kéne csinálni, hogy \"Nev1\", \"Nev2\".[/quote]
Ja gondoltam rá hogy ugy kéne de akkor nem tudom hogy hogy kérjem le mert igy a nevek száma véges nem?
mert azt akarom hogy parancsra létrehozzon a playernek a filet amibe eltárol x nevet és ha az a nevü player ir akkor az a \"név\" látszodjon chatbe mert eredetileg csak azt irja mindenkinél hogy anonymus
vagy esetleg még ugy meglehetne oldani Y_INI vel hogy eltárolom a nevét egy udb_hash segítségével INI_WriteInt el
és akkor lekérdezésnél pedig valahogy felbontva kilehet irni valahogy a nevét?
Szerintem ez összezavarná a dolgaidat és úgy kéne csinálni, hogy \"Nev1\", \"Nev2\".Ja gondoltam rá hogy ugy kéne de akkor nem tudom hogy hogy kérjem le mert igy a nevek száma véges nem?
mert azt akarom hogy parancsra létrehozzon a playernek a filet amibe eltárol x nevet és ha az a nevü player ir akkor az a \"név\" látszodjon chatbe mert eredetileg csak azt irja mindenkinél hogy anonymus
vagy esetleg még ugy meglehetne oldani Y_INI vel hogy eltárolom a nevét egy udb_hash segítségével INI_WriteInt el
és akkor lekérdezésnél pedig valahogy felbontva kilehet irni valahogy a nevét?
[/quote]
sokkal egyszerûbb lenne ha csak szimplán lekérnéd a játékos id-je alapján a nevet....
sokkal egyszerûbb lenne ha csak szimplán lekérnéd a játékos id-je alapján a nevet....[/quote]
igen de akkor az id-t kell valahogy elmenteni de ahoz meg már mysql kell nem?
sokkal egyszerûbb lenne ha csak szimplán lekérnéd a játékos id-je alapján a nevet....igen de akkor az id-t kell valahogy elmenteni de ahoz meg már mysql kell nem?
[/quote]
mi a tökömnek mentenéd el az id-t? -.-
egy egyszerû pm parancs.....
#include <a_samp>
//#include <sscanf>
#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, \"\")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(pm,2,cmdtext);
return 0;
}
dcmd_pm(playerid,params[])
{
new Index;
new tmp[256]; tmp = strtok(params,Index);
new tmp2[256]; tmp2 = strtok(params,Index);
if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, 0xff0000AA, \"Használat: /pm [Játékos ID] [Üzenet]\");
new player1 = strval(tmp);
new str[256];
new pname[MAX_PLAYER_NAME];
if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID)
{
if(player1 != playerid)
{
GetPlayerName(player1, pname, sizeof(pname));
format(str, sizeof(str), \"[KIMENÕ PM] %s (%d): %s\", pname, player1, params[1+strlen(tmp)]);
SendClientMessage(playerid, 0xFFFF22AA, str);
GetPlayerName(playerid, pname, sizeof(pname));
format(str, sizeof(str), \"[bEJÖVÕ PM] %s (%d): %s\", pname, playerid, params[1+strlen(tmp)]);
SendClientMessage(player1, 0xFFCC2299, str);
}
else return SendClientMessage(playerid, 0xff0000AA, \"Hiba: Magadnak nem küldhetsz üzenetet!\");
}
else return SendClientMessage(playerid, 0xff0000AA, \"Hiba: Játékos nincs csatlakozva!\");
return 1;
}
strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= \' \'))
{
index++;
}
new offset = index;
new result[20];
while ((index < length) && (string[index] > \' \') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}
de ugy akarom hogy neve kiirja a nevét ha beirtad hogy /nev (id) és ha nem mentem le valahogy hogy ez az õ idje (vagy õ neve) akkor szerver restartnál ujra elkell játszani é sha lelép a játékos és utánna felép egy másik megkapja az õ idjét :Sde mivel a kód az aktuális játékos nevét kéri le, így nem fogja másét kiírni -.-
és szerver resi után?bocs hogy élek ba**meg ha nem érted mit akarok akkor minek idegesíted magad?
szerver resi után is, mivel semmi köze a kettõnek egymáshoz.....rég bekellett volna másolnod a kódot, letesztelned, és rájöttél volna, hogy azt csinálja, amit te akarsz.- Cím: File-ba új sor nyitás/sortörés
Írta: ROOCK - 2014. augusztus 12. - 13:26:11- de nekem nem ez kell olyan kell hogy alapjáraton azt irja ki hogy valaki mondja: szöveg de ha ismered akkor xy mondja:szöveg ne keljen semilyen id-t beirni vagy valami csak amikor beirod hogy /ismer id ha ez megvan onnantol csak azt irja majd a chatbe hogy xy mondja
de nem konkrétan neked hanem xy mondja ezt csak te látod a többiek meg azt látják hogy valaki mondja- Cím: File-ba új sor nyitás/sortörés
Írta: Cube. - 2014. augusztus 12. - 13:29:54- ahhoz alapjáraton az egész OnPlayerText részt átkell írni, és onnantól kezdve tudsz építkezni, ahol lekéred a játékos nevét, és ha az egyezik a fájlban levõvel, akkor kell cserélni..
de neked ehhez elég csak a neveket lementeni, ahol a fájlod így fog kinézni.
changename=Miki
ROOcK
XYZ
PLAYER
és szimplán belekeresel a fájlba, és ha van egyezés, akkor fogod a text-ben kicserélni a nevét a \"changename\"-re.- Cím: File-ba új sor nyitás/sortörés
Írta: ROOCK - 2014. augusztus 12. - 13:55:12- igy jó a playertext? hogy lehet lekérni a féjlban lévõ neveket?
[pawn]public OnPlayerText(playerid, text[])
{
new str[200], pName[100];
for(new i=0;i<MAX_PLAYERS;i++)
{
GetPlayerName(playerid, pName, sizeof(pName));
if(pName == /*fileban név*/){
format(str, sizeof(str), \"%s mondja: %s \", pName, text);
SendClientMessage(i, 0xFFFFFFAA,str);
return 0;
}}
for(new i=0;i<MAX_PLAYERS;i++)
{
format(str, sizeof(str), \"Valaki mondja: %s \", text);
SendClientMessage(i, 0xFFFFFFAA,str);
}
return 0;
}[/pawn]