Ir para conteúdo

Npc Q Pinta A Pokeball


srjoao

Posts Recomendados

  • 5 months later...

Ok , eu sei como fazer , e foi testado em dash 8.54

Vamos começar (que começo sem graça...)

 

Vá em data , NPC , scripts e coloque um arquivo.lua com o nome paintball e coloque o seguinte texto:

 

 

 

 

local keywordHandler = KeywordHandler:new()

local npcHandler = NpcHandler:new(keywordHandler)

NpcSystem.parseParameters(npcHandler)

local talkState = {}

local states = {'1', '2', '3', '4', '5', '6'}

local store = {1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151}

local pokeballs = {'2222', '2208'}

local pokeballss = {'2220', '2208'}

function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end

function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end

function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end

function onThink() npcHandler:onThink() end

 

function creatureSayCallback(cid, type, msg)

if(not npcHandler:isFocused(cid)) then

return false

end

 

local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid

 

-- Conversa Jogador/NPC

if(msgcontains(msg, 'hi') or msgcontains(msg, 'job')) then

selfSay('Hello! I paint Pokeball, choice between {Ultra ball} and {Poke ball}.', cid)

elseif(msgcontains(msg, 'Ultra Ball') or msgcontains(msg, 'ultra ball')) then

selfSay('Do you really want to paint ultra ball??', cid)

talkState[talkUser] = 1

elseif(msgcontains(msg, 'Poke Ball') or msgcontains(msg, 'poke ball')) then

selfSay('Do you really want to paint poke ball??', cid)

talkState[talkUser] = 2

 

-- Confirmação da Compra

elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then

if isInArray(pokeballs, getPlayerSlotItem(cid, CONST_SLOT_FEET).itemid) and doPlayerRemoveMoney(cid, 35000) then

selfSay('Thanks!', cid)

local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)

local maxh = tonumber(getItemAttribute(feet.uid, "poke"):match("/(.+)]"))

doItemSetAttribute(feet.uid, "poke", getItemAttribute(feet.uid, "poke"):sub(1, findLetter(getItemAttribute(feet.uid, "poke"), "[")) .. maxh .. getItemAttribute(feet.uid, "poke"):sub(findLetter(getItemAttribute(feet.uid, "poke"), "/")))

doTransformItem(feet.uid, 2220)

talkState[talkUser] = 0

else

selfSay('Sorry, make sure you have enough money and if the the ball is in the correct slot.', cid)

talkState[talkUser] = 0

end

elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then

if isInArray(pokeballss, getPlayerSlotItem(cid, CONST_SLOT_FEET).itemid) and doPlayerRemoveMoney(cid, 2000) then

selfSay('Thanks!', cid)

local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)

local maxh = tonumber(getItemAttribute(feet.uid, "poke"):match("/(.+)]"))

doItemSetAttribute(feet.uid, "poke", getItemAttribute(feet.uid, "poke"):sub(1, findLetter(getItemAttribute(feet.uid, "poke"), "[")) .. maxh .. getItemAttribute(feet.uid, "poke"):sub(findLetter(getItemAttribute(feet.uid, "poke"), "/")))

doTransformItem(feet.uid, 2222)

talkState[talkUser] = 0

else

selfSay('Sorry, make sure you have enough money and if the the ball is in the correct slot.', cid)

talkState[talkUser] = 0

end

end

return TRUE

end

 

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

 

 

 

 

O "local pokeballs" você coloca o id das pokeballs de pokémons com vidas e o "local pokeballss" você coloca o id das pokeballs de pokémons sem vida.

Você pode mudar o preço nessa linha:

if isInArray(pokeballss, getPlayerSlotItem(cid, CONST_SLOT_FEET).itemid) and doPlayerRemoveMoney(cid, 2000) then

(no meu caso , esta 2000 dl).

Ok , agora , em data/NPC , crie um arquivo.lua com o nome do npc e coloque isso dentro:

 

 

 

 

<?xml version="1.0" encoding="UTF-8"?>

<npc name="Deka" script="paintball.lua" floorchange="0" speed="0">

<health now="150" max="150"/>

<look type="160" head="114" body="0" legs="125" feet="0"/>

</npc>

 

 

 

 

nesse caso , você pode mudar o nome do npc é Deka , e você pode alterar o looktype do jeito que você quiser.

 

ok , espero ter ajudado.

Link para o comentário
Compartilhar em outros sites

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...