Spawn mob

Înainte de a posta o problemă, caută în acest forum și poate găsești rezolvare.
Avatar utilizator
DragonA7X
Nivel 3

Nivel 3
Mesaje: 434
Membru din: 06 Apr 2017, 10:41
Aprecieri: 100  
Mulţumiri: 3  
Medalii

*Problemă/Întrebare: Salut. Sunt curios de comanda /mm (codul monstrului) cum functioneaza mai exact si care sunt functiile folosite. As vrea sa le adaug intr-un quest simplu pentru un test. Multumesc.
Tipologie server: PvP PvM
*Resursă folosită:
*ServerFiles utilizat: Argo
*Syserr:
Poză:
*Detalii suplimentare:
Avatar utilizator
DragonA7X
Nivel 3

Nivel 3
Mesaje: 434
Membru din: 06 Apr 2017, 10:41
Aprecieri: 100  
Mulţumiri: 3  
Medalii

Up
Avatar utilizator
[HF]White
Metin Master

Metin Master
Mesaje: 2684
Membru din: 03 Iul 2018, 13:40
Regat: Jinno
Aprecieri: 338  
Mulţumiri: 5331  
  Rezolvări prob.: 13
Discord: Copiază ID
 Contact:
Medalii

Cauta in sursa (cmd / cmd_gm.cpp) comanda si vezi cum functioneaza
Avatar utilizator
DragonA7X
Nivel 3

Nivel 3
Mesaje: 434
Membru din: 06 Apr 2017, 10:41
Aprecieri: 100  
Mulţumiri: 3  
Medalii

Sunt sigur ca toate funtiile sunt scrise la fel. Nu detin sursa la server, de aceea intreb aici.
Avatar utilizator
DragonA7X
Nivel 3

Nivel 3
Mesaje: 434
Membru din: 06 Apr 2017, 10:41
Aprecieri: 100  
Mulţumiri: 3  
Medalii

Up
Avatar utilizator
Dex
Nivel 3

Nivel 3
Mesaje: 397
Membru din: 07 Mai 2020, 14:32
Regat: Shinsoo
Aprecieri: 137  
Mulţumiri: 486  
Discord: Copiază ID
Medalii

ACMD(do_mob_map)
{
	char arg1[256];
	one_argument(argument, arg1, sizeof(arg1));

	if (!*arg1)
	{
		ch->ChatPacket(CHAT_TYPE_INFO, "Syntax: mm <vnum>");
		return;
	}

	DWORD vnum = 0;
	str_to_number(vnum, arg1);
	LPCHARACTER tch = CHARACTER_MANAGER::instance().SpawnMobRandomPosition(vnum, ch->GetMapIndex());

	if (tch)
		ch->ChatPacket(CHAT_TYPE_INFO, "%s spawned in %dx%d", tch->GetName(), tch->GetX(), tch->GetY());
	else
		ch->ChatPacket(CHAT_TYPE_INFO, "Spawn failed.");
}
Spawnezi un mob random in mapa in care te afli.
Imagine
Afișează semnătura
Avatar utilizator
DragonA7X
Nivel 3

Nivel 3
Mesaje: 434
Membru din: 06 Apr 2017, 10:41
Aprecieri: 100  
Mulţumiri: 3  
Medalii

Si cum as putea forma un quest asemanator comenzi?
Avatar utilizator
zenyon
Nivel 1

Nivel 1
Mesaje: 64
Membru din: 20 Noi 2017, 22:49
Regat: Chunjo
Aprecieri: 18  
Mulţumiri: 13  
  Rezolvări prob.: 1
Discord: Copiază ID
Medalii

command("m 101 10")

Faci tu un quest, 101(cod mob) 10(numarul lor)
Avatar utilizator
zenyon
Nivel 1

Nivel 1
Mesaje: 64
Membru din: 20 Noi 2017, 22:49
Regat: Chunjo
Aprecieri: 18  
Mulţumiri: 13  
  Rezolvări prob.: 1
Discord: Copiază ID
Medalii

quest 10_caini begin 
     state start begin 
          when letter with pc.is_gm() begin 
               send_letter("10 caini") 
           end  --end when
          when info or button with pc.is_gm() begin
                       command("m 101 10")
                       send_letter("10 caini") 
                end --end when
        end  -- end state
end  --end quest
Le aranjezi tu ca sunt pe telefon si nu stiu cat de bine l am aranjat
Avatar utilizator
Dex
Nivel 3

Nivel 3
Mesaje: 397
Membru din: 07 Mai 2020, 14:32
Regat: Shinsoo
Aprecieri: 137  
Mulţumiri: 486  
Discord: Copiază ID
Medalii

Exista mai multe posibilitati, ori faci un quest de genul ori cum a fost scris mai sus.
quest mob_spawn begin
    state start begin when 20012.chat "GM: Spawn Mob" with pc.is_gm() und pc.get_map_index() == INDEX_MAPA begin
            local mob = {{8000,8010,8020,8030,8040,8050, 8060,8070,8080,8090,8100},}  -----> Aici pui codul mob-ului
            lokalen Mobs Cordes = {{300,155,255.152,142.165,189,153.162,166}, ---- X-Coordinate {199.295,154,265,184,198,147,123,177,199} --- Y-Coordinate ---- Se pot pune si mai multe coordinate }
            say_title (mob_name (20090))
            say ("" .. pc.get_name () .. ":")
            say ("Hi, vrei sa spawnezi mobi pe mapa?")
            local s = select ("Yes", "No")
                if s == 2 then return end
                cord = table.getn (cordes)
                mob.spawn (mob [math.random (1,11)], cordes [math.random (table.getn (cordes))] [1], cordes [math.random (table.getn (cordes))] [2]
                notice_in_map (INDEXMAPA, "Spawned" ..mob_name (mob [math.random (table.getn (mob ))]) .. "pe mapa!")
            end
        end
    end
end
Daca vrei ca mobi sa fie constat spawnati pe mapa respectiva, dar spawnul sa fie random, poti deasemenea sa-i positionezi din mapa respectiva din regen.txt cu multiplicator pentru spawn.
m 204 361 10 10 0 0 180s 100 1 101
Aici va fi un caine sapwnat la coordinatele 204 361, cu distanta -/+ 10/10 de fiecare data, poti modifica din 10 / 10 in 100 / 210 si asa mai departe.
Pentru acest mesaj, Dex for the post:
DragonA7X
Imagine
Afișează semnătura
Închis
Răspunsuri
4
Vizualizări
710
Răspunsuri
2
Vizualizări
203
Răspunsuri
4
Vizualizări
1002
Răspunsuri
3
Vizualizări
317

Înapoi la “Probleme rezolvate”

  • Informaţie
  • Cine este conectat

    Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 32 vizitatori