Skocz do zawartości

Rekomendowane odpowiedzi

Napisano (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 przez kox1906

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

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

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

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
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

×
×
  • Dodaj nową pozycję...