Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

autorespawnautorespawn

autorespawn

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
6 odpowiedzi w tym temacie

#1 marekk123123k

    Życzliwy

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:20
  • Imię:MArek
  • Lokalizacja:Polska
Offline

Napisano 16.10.2011 19:23

Witam szukam pluginy na dm autorespawn który po 1 sek zacznie autorespawn po całej mapie nie tylko na respie ct lub tt
  • +
  • -
  • 0

#2 MarWit

    The Chosen One

  • Przyjaciel

Reputacja: 843
Czempion

  • Postów:1 485
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Bystrzyca
Offline

Napisano 16.10.2011 19:49

Łap. SpawnPointy musisz sobie sam ustawić ( komenda "spawnmenu" ). Najpierw stwórz w katalogu configs katalog "AutoRespawn". W nim będą zapisywały sie pliki z nazwami map i miejscami spawnów. Respawn następuje po 1 sec.

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <fakemeta>

#define MAXSPAWN 10

new Float:g_fOrigins[MAXSPAWN][3];
new g_iAmountSpawn;

public plugin_init() {
register_plugin("AutoRespawn", "0.1", "MarWit")
register_clcmd("spawnmenu", "MenuSpawn", ADMIN_IMMUNITY)

register_event("DeathMsg", "eventDeath", "a");
register_event("TeamInfo", "eventJoinTeam", "a", "2=TERRORIST", "2=CT");

LoadMapConfig()
}

public LoadMapConfig()
{
g_iAmountSpawn = 0;

new szFile[128], szBuffer[128], szArg1[10], szArg2[10], szArg3[10];
get_configsdir(szFile, charsmax(szFile))
get_mapname(szBuffer, charsmax(szBuffer))
format(szFile, charsmax(szFile), "%s/AutoRespawn/%s.ini", szFile, szBuffer)

new iFile = fopen(szFile, "rt")

while(!feof(iFile) && g_iAmountSpawn < MAXSPAWN)
{
fgets(iFile, szBuffer, charsmax(szBuffer))
if(equali(szBuffer, ""))
continue;

replace_all(szBuffer, charsmax(szBuffer), ",", " ")
parse(szBuffer, szArg1, 9, szArg2, 9, szArg3, 9)

g_fOrigins[g_iAmountSpawn][0] = str_to_float(szArg1)
g_fOrigins[g_iAmountSpawn][1] = str_to_float(szArg2)
g_fOrigins[g_iAmountSpawn][2] = str_to_float(szArg3)


g_iAmountSpawn++;
}
fclose(iFile)
}

public SaveMapConfig()
{
new szFile[128], szBuffer[1024]

get_configsdir(szFile, charsmax(szFile))
get_mapname(szBuffer, charsmax(szBuffer))
format(szFile, charsmax(szFile), "%s/AutoRespawn/%s.ini", szFile, szBuffer)

new iFile = fopen(szFile, "wt")

for(new i=0; i<g_iAmountSpawn; i++)
{
if(g_fOrigins[i][0] == 0.0 && g_fOrigins[i][1] == 0.0)
continue;

format(szBuffer, charsmax(szBuffer), "%f,%f,%f^n", g_fOrigins[i][0], g_fOrigins[i][1], g_fOrigins[i][2])
fputs(iFile, szBuffer)
}
fclose(iFile)

}

public eventDeath()
{
if(task_exists(read_data(2))) remove_task(read_data(2))
set_task(1.0, "taskRespawn", read_data(2))
}

public eventJoinTeam(){
new id = read_data(1);

if(task_exists(id)) remove_task(id);
if(!is_user_alive(id)){
taskRespawn(id)
}
return 0;
}

public taskRespawn(id)
{
ExecuteHamB(Ham_CS_RoundRespawn, id)
set_pev(id, pev_origin, g_fOrigins[random_num(0, g_iAmountSpawn)])
}

public MenuSpawn(id)
{
new iMenu = menu_create("MENU NPC", "MenuSpawn_Handle")
menu_additem(iMenu, "Stworz SpawnPoint")
menu_additem(iMenu, "Zapisz")
menu_additem(iMenu, "Przeladuj")
menu_display(id, iMenu)

return PLUGIN_HANDLED
}

public MenuSpawn_Handle(id, menu, item)
{
switch(item)
{
case 0: {
if(g_iAmountSpawn == MAXSPAWN) {
client_print(id, print_chat, "[AutoRespawn] Nie mozna ustawic wiecej spawnow!")
return PLUGIN_CONTINUE
}

new Float:fOrigin[3], iOrigin[3];
get_user_origin(id, iOrigin, 3)
IVecFVec(iOrigin, fOrigin)

fOrigin[2] += 30.0

g_fOrigins[g_iAmountSpawn] = fOrigin
g_iAmountSpawn++
}

case 1: {
SaveMapConfig()
}

case 2: {
LoadMapConfig()
}
}
return PLUGIN_CONTINUE
}

Użytkownik MarWit edytował ten post 16.10.2011 19:50

  • +
  • -
  • 1

marwit-0.png


#3 Drzanas

    Godlike

  • Power User

Reputacja: 329
Wszechpomocny

  • Postów:1 283
  • Steam:steam
  • Imię:Piotrek
  • Lokalizacja:Warszawa
Offline

Napisano 03.11.2011 20:04

Plugin działa prawie dobrze.
Owszem tworzy te spawnpointy, ale na jakiej zasadzie je tworzy?
W miejscu gdzie się w momencie wciśnięcia znajdujemy czy może tam gdzie patrzymy celownikiem, bo testowałem go i niektóee spawny zbyt nisko tzn gracz jak się w tym poincie pojawiał czasem był zakopany do połowy nóg i nie mógł się ruszać.
  • +
  • -
  • 0

graphic.png


#4 Nestea****Lemon

    Herbata ?!

  • Użytkownik

Reputacja: 81
Zaawansowany

  • Postów:313
  • GG:
  • Imię:Dawid
  • Lokalizacja:Radzyń Podlaski
Offline

Napisano 30.04.2012 06:12

Mi te spawny nie działają
  • +
  • -
  • 0

cY2lZ.gif

http://nestea-tdm.cba.pl <---- Nestea****Lemon Blog


Aktualnie tworzę moda do Minecrafta ^D^


#5 Droso

    Dawniej HubertTM

  • Support Team

Reputacja: 1 291
Godlike

  • Postów:2 371
  • Steam:steam
  • Imię:Hubert
  • Lokalizacja:Wrocław
Offline

Napisano 30.04.2012 16:54

fOrigin[2] += 30.0
Dodajcie więcej np. 50 aby nie był wkopany


@edit

O ku*w.* @up jaki odśwież dopiero zobaczyłem.
  • +
  • -
  • 0

Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!

Na zlecenie i bez zlecenia zresztą też!


#6 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 30.04.2012 17:57

Odśwież, czy nie, plugin poprawić trzeba ^ ^
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <fakemeta>

#define MAXSPAWN 10

new Float:g_fOrigins[MAXSPAWN][3];
new g_iAmountSpawn;

public plugin_init() {
register_plugin("AutoRespawn", "0.1", "MarWit")
register_clcmd("spawnmenu", "MenuSpawn", ADMIN_IMMUNITY)

register_event("DeathMsg", "eventDeath", "a");
register_event("TeamInfo", "eventJoinTeam", "a", "2=TERRORIST", "2=CT");

LoadMapConfig()
}

public LoadMapConfig()
{
g_iAmountSpawn = 0;

new szFile[128], szBuffer[128], szArg1[10], szArg2[10], szArg3[10];
get_configsdir(szFile, charsmax(szFile))
get_mapname(szBuffer, charsmax(szBuffer))
format(szFile, charsmax(szFile), "%s/AutoRespawn/%s.ini", szFile, szBuffer)

new iFile = fopen(szFile, "rt")

while(!feof(iFile) && g_iAmountSpawn < MAXSPAWN)
{
fgets(iFile, szBuffer, charsmax(szBuffer))
trim(szBuffer);

if(!szBuffer[0] || szBuffer[0] == ';')
continue;

parse(szBuffer, szArg1, 9, szArg2, 9, szArg3, 9)

g_fOrigins[g_iAmountSpawn][0] = str_to_float(szArg1)
g_fOrigins[g_iAmountSpawn][1] = str_to_float(szArg2)
g_fOrigins[g_iAmountSpawn][2] = str_to_float(szArg3)


g_iAmountSpawn++;
}
fclose(iFile)
}

public SaveMapConfig()
{
new szFile[128], szBuffer[1024]

get_configsdir(szFile, charsmax(szFile))
get_mapname(szBuffer, charsmax(szBuffer))
format(szFile, charsmax(szFile), "%s/AutoRespawn/%s.ini", szFile, szBuffer)

new iFile = fopen(szFile, "wt")

for(new i=0; i<g_iAmountSpawn; i++)
{
format(szBuffer, charsmax(szBuffer), "%f %f %f^n", g_fOrigins[i][0], g_fOrigins[i][1], g_fOrigins[i][2])
fputs(iFile, szBuffer)
}
fclose(iFile)

}

public eventDeath()
{
new id = read_data(2);
remove_task(id)
set_task(1.0, "taskRespawn", id)
}

public eventJoinTeam(){
new id = read_data(1);

remove_task(id);
if(!is_user_alive(id)){
taskRespawn(id)
}
return 0;
}

public taskRespawn(id)
{
ExecuteHamB(Ham_CS_RoundRespawn, id)
set_pev(id, pev_origin, g_fOrigins[random(g_iAmountSpawn)])
}

public MenuSpawn(id)
{
new iMenu = menu_create("MENU NPC", "MenuSpawn_Handle")
menu_additem(iMenu, "Stworz SpawnPoint")
menu_additem(iMenu, "Zapisz")
menu_additem(iMenu, "Przeladuj")
menu_display(id, iMenu)

return PLUGIN_HANDLED
}

public MenuSpawn_Handle(id, menu, item)
{
switch(item)
{
case 0: {
if(g_iAmountSpawn >= MAXSPAWN) {
client_print(id, print_chat, "[AutoRespawn] Nie mozna ustawic wiecej spawnow!")
return PLUGIN_CONTINUE
}

new Float:fOrigin[3];
pev(id, pev_origin, fOrigin)

fOrigin[2] += 10.0

g_fOrigins[g_iAmountSpawn++] = fOrigin
}

case 1: {
SaveMapConfig()
}

case 2: {
LoadMapConfig()
}
}
return PLUGIN_CONTINUE
}

Nie wiem tylko czy można coś takiego pisać "g_fOrigins[g_iAmountSpawn++] = fOrigin", że jednemu originowi przypisujemy drugi, bez żadnej pętli.
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#7 danielpl

    Początkujący

  • Użytkownik

Reputacja: 1
Nowy

  • Postów:16
Offline

Napisano 01.03.2013 06:14

odświeżam poprawiłby ktoś ten błąd?
bo po padnięciu serwer się crashuje :)

albo chociaż niech ktoś co ma o tym pojecie naprawi błąd w tym

public LoadMapConfig()
{
	    g_iAmountSpawn = 0;
	    new szFile[128], szBuffer[128], szArg1[10], szArg2[10], szArg3[10];
	    get_configsdir(szFile, charsmax(szFile))
	    get_mapname(szBuffer, charsmax(szBuffer))
	    format(szFile, charsmax(szFile), "%s/AutoRespawn/%s.ini", szFile, szBuffer)
	    new iFile = fopen(szFile, "rt")
	    while(!feof(iFile) && g_iAmountSpawn < MAXSPAWN)
	    {
			    fgets(iFile, szBuffer, charsmax(szBuffer))
			    trim(szBuffer);
			   
			    if(!szBuffer[0] || szBuffer[0] == ';')
					    continue;
			    parse(szBuffer, szArg1, 9, szArg2, 9, szArg3, 9)
			    g_fOrigins[g_iAmountSpawn][0] = str_to_float(szArg1)
			    g_fOrigins[g_iAmountSpawn][1] = str_to_float(szArg2)
			    g_fOrigins[g_iAmountSpawn][2] = str_to_float(szArg3)

			    g_iAmountSpawn++;
	    }
	    fclose(iFile)
}

Użytkownik danielpl edytował ten post 01.03.2013 06:28

  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: autorespawn

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych