[Ajuda] npc - Versão de Impressão +- Portal SAMP (https://portalsamp.com) +-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5) +--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6) +--- Tópico: [Ajuda] npc (/showthread.php?tid=3047) |
npc - Tiago Medeiros - 03/12/2022 boa tarde galera, eu estou precisando da ajuda de vocês. coloquei alguns NPC's na minha gamemode, e eu estou querendo colocar as informações sobre a cabeça dele. Exemplo: Viciado 1 Digite: /venderdroga quero colocar isso sobre a cabeça dele, por favor, me ajudem. RE: npc - zBreno - 03/12/2022 na parte da criação da conta no on player connect pro npc poder logar e dar spawn pegue o nome do arquivo dele e use new Text3D:NPCLabel[MAX_PLAYERS]; new string[13]; GetPlayerName(playerid, string, MAX_PLAYER_NAME); format(string, sizeof(string), "Desempregado", string, playerid); NPCLabel[playerid] = CreateDynamic3DTextLabel(string, -1, 0.0, 0.0, 0.0, 10.0, playerid, -1, 1, -1, -1, -1, 10.0); RE: npc - Tiago Medeiros - 03/12/2022 bom amigo, não foi isso que eu quis dizer. eu quero que o textlabel, fique sobre a cabeça do NPC RE: npc - zBreno - 03/12/2022 isso ai ta pegando o nome da profissão do npc desempregado e passando a string pro texto na cabeça dele new Text3D:NPCLabel[MAX_PLAYERS]; public OnPlayerConnect(playerid); { if(IsPlayerNPC(playerid)) { new string[256]; if(!dini_Exists(file)) // Criando conta para NPC's { WP_Hash(bufpass, sizeof(bufpass), SENHA_CONTA_NPC); CreateFileAccount(file, bufpass); } if(!strcmp(szPlayerName, "Samanta_Oliveira", true)) { format(string, sizeof(string), "%s (%d)", szPlayerName, playerid); NPCLabel[playerid] = CreateDynamic3DTextLabel(string, -1, 0.0, 0.0, 0.0, 30.0, playerid, INVALID_VEHICLE_ID, 1, -1, -1, -1, 200.0); dini_IntSet(file, "Profissao", 37); SetPlayerSkin(playerid, dini_Int(file, "Skin")); } public Logarprof(playerid) { new string[256]; new nomepl[MAX_PLAYER_NAME]; GetPlayerName(playerid, nomepl, sizeof(nomepl)); format(file2, sizeof(file2), PASTA_CONTAS, nomepl); if(dini_Int(file2, "Profissao") == Desempregado) { ResetPlayerWeapons(playerid); GivePlayerWeapon(playerid, 14, 1); SetPlayerColor(playerid, Branco); if(IsPlayerNPC(playerid)) { if(IsValidDynamic3DTextLabel(NPCLabel[playerid])) { format(string, sizeof(string), "%s (%d)", nomepl, playerid); UpdateDynamic3DTextLabelText(NPCLabel[playerid], Branco, string); } } else { if(IsValidDynamic3DTextLabel(ProfLabel[playerid])) { UpdateDynamic3DTextLabelText(ProfLabel[playerid], Branco, "[Desempregado(a)]"); } } } RE: npc - Vel - 03/12/2022 É NPC mesmo ou ator? E poste parte do código... RE: npc - Tiago Medeiros - 04/12/2022 isso, é ator. citei errado, perdão!! RE: npc - Carlos Victor - 04/12/2022 Pra por isso em um Actor, só pegar a posição dele e tacar a Text3D nele 1m+ de altura. RE: npc - zBreno - 04/12/2022 abra o editor de mapa do samp coloque dois skins no mapa pegue um deixe com o pé na cabeça do outro dai é só pegar as coordenadas do que ta no chão e mudar a Z pela do que ta com o pé na cabeça dele RE: npc - Carlos Victor - 04/12/2022 Você pode simplesmente criar um monte de informações de diversos Actor's que deseja adicionar em seu mapa, eu fiz um exemplo(segue abaixo) de como você pode fazer isso, é uma forma bem simples e básica de manipular alguns dados, como ID, Nome, Texto, Skin, Posição... Você pode fazer infinitas coisas com a manipulação de dados, pode criar um sistema de criar Actor's IC, sem ter que ir adicionando na gamemode, enfim... Vai até onde seu conhecimento vá, abuse de suas ideias. Código: #include <a_samp> > Criei uma array onde eu armazenei alguns dados do Actor, como ID dele(você pode fazer comandos com isso), nome, texto(caso você queira adicionar um texto especifico para o actor, como na print), skin e posição(x, y, z, angle). E você pode simplesmente manipular esses actor's pelo ID deles, criar comandos para modificar algo deles, enfim... Espero que eu tenha dado uma luz no fim do tunel para você. E sobre adicionar um texto sobre o actor, é simples, só pegar a posição dele e criar um 3dtextlabel nele, ai você vê a altura que fica boa. Qualquer coisa, meu Discord está abaixo. |