Losowe nazwy teamów
MarvV 01.05.2013
Witam.
Posiadam plugin SoccerJam by Miczu i mam problem, a mianowicie chciałbym zrobić tak, aby wybierało losową nazwę dla CT i dla TT co mape. Np. byłyby po 3 do wyboru dla każdej z drużyn i między nimi by wybierało.
Myślę, że coś trzeba zrobić z tą linjką 96-101:
static const TeamNames[TEAMS][] = { "NULL", "Terr", //Terrorist Team "CT", //CT Team "NULL" }
Proszę o pomoc w rozwiązaniu problemu. Załączam plik sma
Załączone pliki
MarvV 01.05.2013
Tutaj chodzi o nazwy teamów wyświetlane w HUD, aby były losowe
Dla przykładu:
GT Team 01.05.2013
no to zmieniasz tutaj:
static const TeamNames[TEAMS][] = { "NULL", "Terr", //Terrorist Team "CT", //CT Team "NULL" }
Ale jescze jedno pytanie. Jak losowe ? Chodzi Ci o drużyny ?
MarvV 01.05.2013
Tak, o ich nazwy.
Jak np. jest napisane "Terr", to chciałbym, aby były 3 do wyboru tj. Terr1, Terr2, Terr3 i losowałoby jedną z nazw, która potem zostałaby wyświetlana.
GwynBleidD
04.05.2013
- zmieniasz z:
static const TeamNames[TEAMS][] = { "NULL", "Terr", //Terrorist Team "CT", //CT Team "NULL" }
na:new TeamNames[TEAMS][MAX_TEAM_LEN] = { "NULL", "Terr", //Terrorist Team "CT", //CT Team "NULL" }
- dodajesz przed powyższym:
#define MAX_TEAM_LEN 64 #define TEAM_NAMES_AMT 3 static const CtTeamNames[TEAM_NAMES_AMT][MAX_TEAM_LEN] = { "Manchester United", "Wisla Krakow", "Chelsea Londyn" } static const TtTeamNames[TEAM_NAMES_AMT][MAX_TEAM_LEN] = { "Legia Warszawa", "Real Madryt", "Borussia Dortmund" }
- Dodajesz w plugin_init lub w plugin_cfg (lepiej w tym 2gim):
copy(CtTeamNames[random(TEAM_NAMES_AMT)], TeamNames[2], MAX_TEAM_LEN-1) copy(TtTeamNames[random(TEAM_NAMES_AMT)], TeamNames[1], MAX_TEAM_LEN-1)
Użytkownik GwynBleidD edytował ten post 04.05.2013 00:02
MarvV 04.05.2013
GwynBleidD, zrobiłem tak jak mi napisałeś jednak podczas kompilacji wyskakuje mi błąd odnośnie argumentu 2 w tej funkcji:
copy(CtTeamNames[random(TEAM_NAMES_AMT)], TeamNames[2], MAX_TEAM_LEN-1) copy(TtTeamNames[random(TEAM_NAMES_AMT)], TeamNames[1], MAX_TEAM_LEN-1)
Błąd:
sj.sma(804) : error 035: argument type mismatch (argument 2) sj.sma(805) : warning 217: loose indentation sj.sma(805) : error 035: argument type mismatch (argument 2) sj.sma(806) : warning 217: loose indentation
GT Team 04.05.2013
copy(CtTeamNames[random(TEAM_NAMES_AMT)], TeamNames[2], MAX_TEAM_LEN-1) copy(TtTeamNames[random(TEAM_NAMES_AMT)], TeamNames[1], MAX_TEAM_LEN-1)na
copy(CtTeamNames[random(TEAM_NAMES_AMT)], MAX_TEAM_LEN-1, TeamNames[2]) copy(TtTeamNames[random(TEAM_NAMES_AMT)], MAX_TEAM_LEN-1, TeamNames[1])
MarvV 04.05.2013
Wpisałem wszystko tak jak należy, jednak nadal w HUD wyświetla mi: Terr oraz CT... W czym problem ?
GT Team 04.05.2013
format(scoreboard,1024," %i %L^n%s - %i | %s - %i ^n%L %i ^n^n%s^n^n^n%s",get_pcvar_num(CVAR_SCORE),id,"GOALS_WINS",TeamNames[T],score_t,TeamNames[CT],score_ct,id,"EXPERIENCE",g_Experience[id],temp1,team==bteam?temp2:"")na
format(scoreboard,1024," %i %L^n%s - %i | %s - %i ^n%L %i ^n^n%s^n^n^n%s",get_pcvar_num(CVAR_SCORE),id,"GOALS_WINS",TtTeamNames[random(TEAM_NAMES_AMT)],score_t,copy(CtTeamNames[random(TEAM_NAMES_AMT)],score_ct,id,"EXPERIENCE",g_Experience[id],temp1,team==bteam?temp2:"")
MarvV 04.05.2013
Gdy tak ustawiłem, to wszystko mi zaczęło mrygać w HUDZIE tj. nazwy drużyn zmieniają się co sekundę
Poczekam na GwynBleidD'a może coś poradzi.
GT Team 04.05.2013
copy(CtTeamNames[random(TEAM_NAMES_AMT)], MAX_TEAM_LEN-1, TeamNames[2]) copy(TtTeamNames[random(TEAM_NAMES_AMT)], MAX_TEAM_LEN-1, TeamNames[1])daj
copy(TeamNames[2], MAX_TEAM_LEN-1, CtTeamNames[random(TEAM_NAMES_AMT)]) copy(TeamNames[1], MAX_TEAM_LEN-1, TtTeamNames[random(TEAM_NAMES_AMT)])
GwynBleidD
05.05.2013
Pomieszała mi się kolejność argumentów w copy. tak to już jest, jak się pisze o 1 w nocy. Kolega wyżej podał Ci poprawną.
MarvV 05.05.2013
Tak widzę, dziękuję
Mam jeszcze jedno pytanie, czy dałoby się zrobić tak, aby każda drużyna miała odpowiedni model ?
GwynBleidD
05.05.2013
Po co na PW?
Najpierw musisz stworzyć modele. Jeśli mają one być przypisane do konkretnej nazwy drużyny (czyli również losowane przy wczytywaniu mapy), trzeba będzie przenieść losowanie do plugin_precache. Tam w zależności od wylosowanych teamów zrobić precache odpowiedniego modelu i następnie przy spawnie gracza za pomocą cs_set_user_model ustawić każdemu odpowiedni model w zależności od drużyny.
K!113r
05.05.2013
Jeżeli dla każdej oddzielnej drużyny ma być oddzielny model (czyt. jeżeli więcej jak 2 modele) to polecam użyć submodeli, a jeżeli się da to skinów, zaoszczędzisz na transferze fastdownload i gracze szybciej pobiorą modele .
MarvV 05.05.2013
Chodzi mi o to, żeby każdy z wylosowanych zespołów miał oddzielny model ( jeden model )
Tylko chciałbym wiedzieć jak taka funkcja miałaby wyglądać
GwynBleidD
05.05.2013
- Dodaj pod kodem z #2 następujący kod:
#define MAX_TMODELS_LEN 32 static const CtTeamModels[TEAM_NAMES_AMT][MAX_TMODELS_LEN] = { "CtPilkarz", "CtPilkarz", "CtPilkarz" }; static const CtTeamSubModels[TEAM_NAMES_AMT] = { 0, 1, 2 }; static const TtTeamModels[TEAM_NAMES_AMT][MAX_TMODELS_LEN] = { "TtPilkarz", "TtPilkarz", "TtPilkarz" }; static const TtTeamSubModels[TEAM_NAMES_AMT] = { 0, 1, 2 }; new CtTeamChoice, TtTeamChoice;
- Zamień:
copy(TeamNames[2], MAX_TEAM_LEN-1, CtTeamNames[random(TEAM_NAMES_AMT)]) copy(TeamNames[1], MAX_TEAM_LEN-1, TtTeamNames[random(TEAM_NAMES_AMT)])
na:CtTeamChoice = random(TEAM_NAMES_AMT); TtTeamChoice = random(TEAM_NAMES_AMT); copy(TeamNames[2], MAX_TEAM_LEN-1, CtTeamNames[CtTeamChoice]) copy(TeamNames[1], MAX_TEAM_LEN-1, TtTeamNames[TtTeamChoice]) new temp[128]; formatex(temp, 127, "models/player/%s/%s.mdl", CtTeamModels[CtTeamChoice], CtTeamModels[CtTeamChoice]) precache_model(temp); formatex(temp, 127, "models/player/%s/%s.mdl", TtTeamModels[TtTeamChoice], TtTeamModels[TtTeamChoice]) precache_model(temp);
I przenieś ten kod do plugin_precache - Przy spawnie gracza dodaj:
new CsTeams:team = cs_get_user_team(id) if(team==CS_TEAM_CT) { cs_set_user_model(id, CtTeamModels[CtTeamChoice] set_pev(id, pev_body, CtTeamSubModels[CtTeamChoice] } else if (team==CS_TEAM_T) { cs_set_user_model(id, TtTeamModels[TtTeamChoice] set_pev(id, pev_body, TtTeamSubModels[TtTeamChoice] }
Użytkownik GwynBleidD edytował ten post 05.05.2013 20:03