Ive tried to build a plugin which will convert any key sent to chat from EN to HE.
But Ive encountered with the problem that the string get reversed becouse Hebrew it "Right to Left" .
I used alot of functions to reverse string order but nothing.
if someone can help me solve this problem becouse I dont have any solution and this plugin is very necessary.
PHP Code:
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say", "cmdTest");
}
public cmdTest(id){
new szArg[32];
read_args(szArg, charsmax(szArg));
remove_quotes(szArg);
new szName[32];
get_user_name(id, szName, charsmax(szName));
Print(id, "%s", reverse(szArg));
return PLUGIN_HANDLED_MAIN;
}
Print(id , const szMessage[], any:...)
{
static szBuffer[192];
vformat(szBuffer, charsmax(szBuffer), szMessage, 3);
new szLetterALEF[3] , szLetterBET[3] ,szLetterGIMEL[3] ,szLetterDALET[3] ,szLetterHEY[3] ,szLetterVAV[3] ,szLetterZAYIN[3] ,szLetterHET[3] ,szLetterTET[3] ,szLetterYUD[3] ,szLetterKAVSOFIT[3] ,szLetterKAV[3] ,szLetterLAMED[3] ,szLetterMEMSOFIT[3] ,szLetterMEM[3] ,
szLetterNUNSOFIT[3],szLetterNUN[3] ,szLetterSAMEH[3] ,szLetterAYIN[3] ,szLetterPEYSOFIT[3] ,szLetterPEY[3],szLetterZADIKSOFIT[3] ,szLetterZADIK[3] ,szLetterKUF[3] ,szLetterRESH[3] ,szLetterSHIN[3] ,szLetterTAV[3];
newChar('א', szLetterALEF, sizeof szLetterALEF - 1);
newChar('ב', szLetterBET, sizeof szLetterBET - 1);
newChar('ג', szLetterGIMEL, sizeof szLetterGIMEL - 1);
newChar('ד', szLetterDALET, sizeof szLetterDALET - 1);
newChar('ה', szLetterHEY, sizeof szLetterHEY - 1);
newChar('ו', szLetterVAV, sizeof szLetterVAV - 1);
newChar('ז', szLetterZAYIN, sizeof szLetterZAYIN - 1);
newChar('ח', szLetterHET, sizeof szLetterHET - 1);
newChar('ט', szLetterTET, sizeof szLetterTET - 1);
newChar('י', szLetterYUD, sizeof szLetterYUD - 1);
newChar('ך', szLetterKAVSOFIT, sizeof szLetterKAVSOFIT - 1);
newChar('כ', szLetterKAV, sizeof szLetterKAV - 1);
newChar('ל', szLetterLAMED, sizeof szLetterLAMED - 1);
newChar('ם', szLetterMEMSOFIT, sizeof szLetterMEMSOFIT - 1);
newChar('מ', szLetterMEM, sizeof szLetterMEM - 1);
newChar('ן', szLetterNUNSOFIT, sizeof szLetterNUNSOFIT - 1);
newChar('נ', szLetterNUN, sizeof szLetterNUN - 1);
newChar('ס', szLetterSAMEH, sizeof szLetterSAMEH - 1);
newChar('ע', szLetterAYIN, sizeof szLetterAYIN - 1);
newChar('ף', szLetterPEYSOFIT, sizeof szLetterPEYSOFIT - 1);
newChar('פ', szLetterPEY, sizeof szLetterPEY - 1);
newChar('ץ', szLetterZADIKSOFIT, sizeof szLetterZADIKSOFIT - 1);
newChar('צ', szLetterZADIK, sizeof szLetterZADIK - 1);
newChar('ק', szLetterKUF, sizeof szLetterKUF - 1);
newChar('ר', szLetterRESH, sizeof szLetterRESH - 1);
newChar('ש', szLetterSHIN, sizeof szLetterSHIN - 1);
newChar('ת', szLetterTAV, sizeof szLetterTAV - 1);
replace_all(szBuffer, charsmax(szBuffer), "t", szLetterALEF);
replace_all(szBuffer, charsmax(szBuffer), "c", szLetterBET);
replace_all(szBuffer, charsmax(szBuffer), "d", szLetterGIMEL);
replace_all(szBuffer, charsmax(szBuffer), "s", szLetterDALET);
replace_all(szBuffer, charsmax(szBuffer), "v", szLetterHEY);
replace_all(szBuffer, charsmax(szBuffer), "u", szLetterVAV);
replace_all(szBuffer, charsmax(szBuffer), "z", szLetterZAYIN);
replace_all(szBuffer, charsmax(szBuffer), "j", szLetterHET);
replace_all(szBuffer, charsmax(szBuffer), "y", szLetterTET);
replace_all(szBuffer, charsmax(szBuffer), "h", szLetterYUD);
replace_all(szBuffer, charsmax(szBuffer), "l", szLetterKAVSOFIT);
replace_all(szBuffer, charsmax(szBuffer), "f", szLetterKAV);
replace_all(szBuffer, charsmax(szBuffer), "k", szLetterLAMED);
replace_all(szBuffer, charsmax(szBuffer), "o", szLetterMEMSOFIT);
replace_all(szBuffer, charsmax(szBuffer), "n", szLetterMEM);
replace_all(szBuffer, charsmax(szBuffer), "i", szLetterNUNSOFIT);
replace_all(szBuffer, charsmax(szBuffer), "b", szLetterNUN);
replace_all(szBuffer, charsmax(szBuffer), "x", szLetterSAMEH);
replace_all(szBuffer, charsmax(szBuffer), "g", szLetterAYIN);
replace_all(szBuffer, charsmax(szBuffer), ";", szLetterPEYSOFIT);
replace_all(szBuffer, charsmax(szBuffer), "p", szLetterPEY);
replace_all(szBuffer, charsmax(szBuffer), ".", szLetterZADIKSOFIT);
replace_all(szBuffer, charsmax(szBuffer), "m", szLetterZADIK);
replace_all(szBuffer, charsmax(szBuffer), "e", szLetterKUF);
replace_all(szBuffer, charsmax(szBuffer), "r", szLetterRESH);
replace_all(szBuffer, charsmax(szBuffer), "a", szLetterSHIN);
replace_all(szBuffer, charsmax(szBuffer), ",", szLetterTAV);
new szUserName[31];
get_user_name(id , szUserName , 31);
client_print(0,print_chat , "%s : %s", szUserName, reverse(szBuffer));
}
reverse(const szBuffer[])
{
new length = strlen(szBuffer) -1, szConvertedBuffer[192] , NumBuffer = 0;
while(length - NumBuffer >= 0)
{
szConvertedBuffer[length - NumBuffer] = szBuffer[NumBuffer];
NumBuffer++
}
return szConvertedBuffer;
}