kox1906 Napisano 19 Kwietnia 2020 (edytowane) Cześć, 3 miesiące temu rozpoczynałem tutaj podobny temat, ale jakoś odbiegłem od programowania w sourcemodzie, natomiast chciałbym postawić serwer, więc wziąłem się do roboty. Mam problem z pluginem i totalnie nie wiem o co może chodzić, wydaje mi się, ze wszystko jest w jak największym porządku. Zamysłem pluginu jest, żeby informować na czacie gracza wtedy i tylko wtedy, gdy ktoś go zabije z noża. Prosiłbym, żebyście nie robili osobnego kodu, gdzie wszystko jest inaczej, tylko po prostu przerobili lekko mój, lub wskazali błąd. Chciałbym wszystkie pluginy do mam nadzieję przyszłego serwera napisać sam, więc chcę mieć tę satysfakcję z pisanych pluginów. Nie dodałem w czym jest problem, a mianowicie Na czacie ma się wyświetlać napis: "Zostałeś zabity z kosy przez *NICK*", a wyświetla się: "Zostałeś zabity z kosy przez n". Muszę dodać, że testuje plugin na botach i nie wiem czy to ma znaczenie. Oto kod: #include <sourcemod> #include <multicolors> public void OnPluginStart() { HookEvent("player_death", OnPlayerDeath, EventHookMode_Post); } public Action OnPlayerDeath(Event event, const char[] name, bool dontBroadcast) { int client = GetClientOfUserId(event.GetInt("userid")); int attacker = GetClientOfUserId(event.GetInt("attacker")); char attackerWeapon[64], attackerName[64]; GetClientName(attacker, attackerName, sizeof(attackerName)); GetClientWeapon(attacker, attackerWeapon, sizeof(attackerWeapon)); if(StrContains(attackerWeapon,"bayonet", false) || StrContains(attackerWeapon, "knife", false)) CPrintToChat(client, "Zostałeś zabity z {olive}kosy{default} przez {lime}%n", attackerName); return Plugin_Stop; } Edytowane 19 Kwietnia 2020 przez kox1906 Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach
Brum Brum 1 Napisano 20 Kwietnia 2020 Przed wysłaniem wiadomości pobrałeś nick gracza do stringu "attackerName" na co wskazywałoby, że użyjesz reguły formatującej %s natomiast ty użyłeś %n (raczej nie ma takiej reguły). zamiast %n jak dasz %s będzie działać, ale możesz usunąć pobieraniu nicku gracza i dać %N i jako argument podać gracza, czyli attacker. CPrintToChat(client, "Zostałeś zabity z {olive}kosy{default} przez {lime}%N", attacker); Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach
kox1906 Napisano 20 Kwietnia 2020 Właśnie gdy robilem %n attacker to nie działało, dlatego zastosowałem pobieranie nicku gracza, ale dzięki, faktycznie nie zwróciłem uwagi ze do char'ów[] powinno być %s. Dzięki Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach
Paweł Napisano 20 Kwietnia 2020 Wiadomość wygenerowana automatycznie ✔ Problem został rozwiązany Jeżeli się z tym nie zgadzasz, raportuj ten post Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach