-
Postów
21 -
Dołączył
-
Ostatnia wizyta
Odpowiedzi opublikowane przez ZiemniaK
-
-
No na przeglądarce chyba nie skompilujesz, ale mam jescze na dysku to, więc łap skompilowany ;)
-
To się nie bierz za serwery csgo, skoro nie potrafisz tego zrobić ;-;
Tam są do pobrania dwa pliki.
Config i .sp (skrypt, kod), który musisz skompilować do .smx (plugin). Do skompilowania brakuje include'a updater.inc, który musisz sobie ściągnąć i wrzucić do includ'ów kompilatora. Oczywiście w configu ustawiasz tagi i kolory (jest tam przykład już ustawiony jak to zrobić)
Napisalem Ci BARDZO prosto co masz zrobić, jeśli dalej nie będziesz ogarniał, to odpuść sobie narazie robienie serwera, naucz się ogólnie podstaw SourceMod ;)
Aaa
oczywiscie musisz jeszcze scp (simple chat processor) wgrać przed tym
-
Dzięki wielkie, wszystko działa jak trzeba.
-
Dobra, to czekam, aż jakiś dobrodziej, np. ty mi to wyśle ;-;
-
Mogłbyś pobrać to i wstawić na hosting jakiś?
Próbowałem już 3 maili i nic nie działa ;-;
-
Pamiętasz, czy długo tam na maila aktywacyjnego czeka się? ;-;
Już prawie 10 minut czekam ;v
-
ruskie, czyli to?
-
Mam problem z kolorem tagu na czacie.
Tak to wygląda na czacie:
dc143c[H-ADMIN] ZiemniaK Farmskins.com : TEST
To config:
"H-ADMIN" { "flag" "z" "tag" "[H-ADMIN] " "tagcolor" "#dc143c" "namecolor" "T" "textcolor" "G" }
Chcę, aby tag był czerwony.
Pluginy, których używam:
CCC - https://forums.alliedmods.net/showthread.php?t=186695
scp - https://forums.alliedmods.net/showthread.php?t=198501&page=36
-
A dobrze to wgrałeś?
Pliki scripting do scripting, config do co configu itp.? Pliki configu są ważne, bo są tam zapisane spawny. Umiesz wgrywać pluginu ręcznie w ogóle?
- 1
-
Cześć, zajmuję się ostatnim czasem creepypastami. Nagrywam creepypasty audio, z moim głosem. Może kogoś to zainteresuje ;) Jak się spodoba sprawdź inne pasty na kanale ;)
-
19 godzin temu, camerdisco napisał:
Wprowadzenie pobierania userid zamiast numeru klienta służy do lepszej walidacji klienta, w takim przypadku nie jest to konieczne, jednak przy jakichś powtarzających się timerach warto tego używać.
btw. Mieszasz stary syntax z nowym
Dzięki za rady, zapamiętam to sobie.
Stary syntax, czyli
'public Action:player_spawned(Handle:event, const String:name[], bool:dontBroadcast)' zamiast 'public Action player_spawned(Handle event, const String name[], bool dontBroadcast'??
-
Dzięki wielkie za pomoc!
Nie zmieniałem wszystkiego jak u ciebie. Problem leżał w HookEvencie. Zmieniłem HookEvent z player_spawned na player_spawn i działa. Zrobiłem też client, jako zmienną lokalną, dzięki czemu zniknęły warningi. W CallBacku Timer'a nie jest potrzebna zmienna client ;)
Do zamknięcia, problem rozwiązany
-
22 godziny temu, HansToNieJa napisał:
Osobiście wydaję mi się że zrobiłeś to całkiem dobrze, ale jeśli mam rozumieć chcesz te hp i armor na start rundy więc zmieniłem ten kawałek i ogólnie napisałbym to tak:
#include <sourcemod> #include <cstrike> #pragma semicolon 1 #pragma newdecls required public Plugin myinfo = { name = "Wiecej hp za grupe", author = "Hans" }; public void OnPluginStart() { HookEvent("round_start", Event_RoundStart); } public Action Event_RoundStart(Handle event, const char[] name, bool dontBroadcast) { int client = GetClientOfUserId(GetEventInt(event, "userid")); if(IsGroup(client)) { SetEntityHealth(client, 160); SetEntProp(client, Prop_Send, "m_ArmorValue", 99, 1); } else { SetEntityHealth(client, 145); SetEntProp(client, Prop_Send, "m_ArmorValue", 99, 1); } } stock bool IsGroup(int client) { char tag[64]; CS_GetClientClanTag(client, tag, sizeof(tag)); if(StrEqual(tag, "[Plac Zabaw]")) { return true; } else { return false; } }
To się kompiluje, ale w ogóle nie działa.
21 godzin temu, camerdisco napisał:W takim przypadku łapiesz wszystkich graczy przy pomocy pętli.
W twojej sytuacji zrobiłbym po prostu timer na powiedzmy 0.5, który wtedy nadawałby owe bonusy.
Coś tam nakodziłem, ale nie do końca to działa i nie wiem, dlaczego ;v
Tak wygląda kod:
#include <sourcemod> #include <cstrike> public Plugin myinfo = { name = "", author = "ZiemniaK", description = "", version = "", url = "" }; public void OnPluginStart() { HookEvent("player_spawned", player_spawned); } new client; public Action:player_spawned(Handle:event, const String:name[], bool:dontBroadcast) { client = GetClientOfUserId(GetEventInt(event, "userid")); CreateTimer(0.5, TimerCallBack, client); } public Action:TimerCallBack(Handle:timer, any:client) { new String:tag[64]; CS_GetClientClanTag(client, tag, sizeof(tag)); if(StrEqual(tag, "[Plac Zabaw]")) { SetEntityHealth(client, 160); SetEntProp(client, Prop_Send, "m_ArmorValue", 99, 1); } else { SetEntityHealth(client, 145); SetEntProp(client, Prop_Send, "m_ArmorValue", 99, 1); } }
Przy kompilacji mam trochę warning'ów:
A tak to działa(sorry za muzykę, ale akurat podczas nagrywania w tle to miałem i dopiero po uploadzie to zauważyłem):
Dodam też, że próbowałem HookEvent zmieniać na round_start, ale ciągle to samo
-
Myślałem nad użyciem Eventu Round_Start zamiast Player_Respawned, ale na https://wiki.alliedmods.net/Counter-Strike:_Global_Offensive_Events#round_start w structure nie było userid, to myślałem, ze można zrobić czegoś takiego:
int client = GetClientOfUserId(GetEventInt(event, "userid"));
Jutro przetestuję i napiszę co i jak, z góry dzięki za pomoc.
-
Jest jeszcze else, który mówi, że jak jest inna grupa, to 145 ma dać. Testowałem na obu i prawie działa.
Zobacz moment między 19, a 20 sekundom. Respi mnie z dobrą ilością hp, oraz armoru, lecz ułamek sekundy później następuje ponowny resp, już z podstawowymi wartościami. Dzieje się tak niezależnie od tego, czy mam tag, czy też nie.
Myślałem coś na cvarami, ale tam nieszczególnie coś znalazłem. Oczywiście mogłem coś przeoczyć, bo dopiero zaczynam swoją zabawę z SM i mogłem się nie dopatrzyć czegoś ważnego
-
Plugin się kompiluje, pomogło.
Ale mam jeszcze jeden problem.
Nie działa to tak, jak chcę, co mogę zrobić, aby hp gracz miał ustawiane tak, by na początku rundy już była zmieniona wartość. Na filmiku wszystko przedstawionie
-
51 minut temu, camerdisco napisał:
Brakuje biblioteki cstrike.
Jak ja nienawidzę przez to programowania ;-;
Zawsze szukasz problemu długi czas, sprawdzasz dokładnie wszystko, a tu taka drobnostka ;v Siedziałem jakoś godzinę nad tym i już miałem ochotę wyrzucić ten komputer przez okno ;D
Dzieki, sprawdzę jak wrócę do domu, jeśli wszystko będzie działać, to napiszę ;)
-
Co tu jest nie tak?
Wywala błąd w 23 linii ;v
#include <sourcemod> public Plugin myinfo = { name = "", author = "ZiemniaK", description = "", version = "", url = "" }; public void OnPluginStart() { HookEvent("player_spawned", player_spawned); } public Action:player_spawned(Handle:event, const String:name[], bool:dontBroadcast) { new client = GetClientOfUserId(GetEventInt(event, "userid")); new String:tag[64]; CS_GetClientClanTag(client, tag, sizeof(tag)); if(StrEqual(tag, "[Plac Zabaw]")) { SetEntityHealth(client, 160); SetEntProp(client, Prop_Send, "m_ArmorValue", 99, 1); } else { SetEntityHealth(client, 145); SetEntProp(client, Prop_Send, "m_ArmorValue", 99, 1); } }
-
Dodatkowo zauważyłem, że to prawdopodobnie zły dziął
-
Próbuję napisać plugin, który po śmierci gracza wyświetla wszystkim obecnym na serwerze informację o jego śmierci na czacie.
Działa mi wszystko oprócz tego, czy zabójstwo było strzałem w głowę, czy też nie.
new Bool:hs; GetEventBool(event, "headshot", hs); if(hs = true) { PrintToChatAll("\x01 \x03%s \x01zabił \x03%s \x01używając \x02%s \x01strzałem w głowę.", aname, cname, wep); return Plugin_Continue; } else { PrintToChatAll("\x01 \x03%s \x01zabił \x03%s \x01używając \x02%s \x01strzałem w korpus.", aname, cname, wep); return Plugin_Continue; }
Do zamknięcia, problem rozwiązany.
Wystarczyło to:
new Bool:hs; GetEventBool(event, "headshot", hs);
przenieść zaraz nad tego if'a. Wczesniej było to trochę wyżej, nad innym if'em
Pytanko o flagi
w Pytania ogólne
Opublikowano
Najczęściej ważna jest kolejność rang w configu. Pewnie o to chodzi.