Jump to content

DNL291

Retired Staff
  • Posts

    3,875
  • Joined

  • Days Won

    67

Everything posted by DNL291

  1. Sim, eu percebi isso, mas ambos devem funcionar da mesma forma. Fiz um teste aqui e retornou o valor, indexando a tabela da forma que eu disse: run executeSQLQuery("CREATE TABLE IF NOT EXISTS teste (valor1 TEXT, string TEXT, numero INT)") run executeSQLQuery("INSERT INTO teste(valor1,string,numero) VALUES(?,?,?)", "Danilo", "dono", 100 ) run r=executeSQLQuery("SELECT valor1 FROM teste WHERE numero=?", 100 ) print( r[1]['valor1'] ) Usei esse código. Remove as virgulas e tenta fazer da mesma forma, seguindo a maneira que tá no código, deve funcionar.
  2. Então acho que a função executeSQLQuery e funções DB tem suas diferenças, porque indexei o valor da tabela usando dbQuery. Achei que funcionasse no seu caso também, depois que li que retorna uma tabela.... Mas acredito que você possa obter o dono indexando essa tabela. Edit: é questão de fazer teste pra saber
  3. Não sei te explicar o porque, talvez retorne o valor numa tabela e pra acessar ele você indexa o primeiro valor da tabela. Só suposição minha... não sou muito familiar com SQL só usei 2 vezes pra fazer scripts e obtive o valor dessa forma que mencionei. Te aconselho a pesquisar cada dúvida que surgir, vai te ajudar a se aprofundar mais nessa linguagem.
  4. Acho que se você usasse isto também funcionava: local accOwner = executeSQLQuery("SELECT 'owner' FROM 'housevip_data' WHERE 'ID'=?", 2)[1]['owner']
  5. DNL291

    Fixed

    Maybe removing the for-loop at line 5 will fix these multiple rows?
  6. Elements-data are synchronized by default.
  7. Verifique se o timer já está ativo, na linha 9. Fora isso, também tem um loop em todos veículo - a velocidade verificada será dos veículos do server e não do veículo do jogador local (se é isso que você quer fazer).
  8. Quantas vezes sai no chat a msg da linha 12? Deve ser porque o código executa setTimer várias vezes durante o onClientRender.
  9. DNL291

    question

    Sometimes people asking for help with scripts don't have much knowledge about Lua, so it's natural for them to use wrong methods. If you're helping them, and you know the right way to do, then why are you going to do what they want? That will make it harder for yourself to help people. Ontopic: Why he will want it without loop if it will be the same thing as with loop - will only change in code, but will do the same thing when Lua executes it. So obviously the question is about performance as well.
  10. DNL291

    question

    Will not that method in pratice trigger for each player? Since client unlike server side executes for a specific player. If using a table of player elements it works, can you explain me how the MTA internally will execute this function using a table on 'sendTo' argument? @Avagard: If your code already works, you don't have to worry about it, you will waste your time. Otherwise, make sure your code doesn't use too much bandwidth, in this case you can explain what you want to achieve and we can give you alternatives.
  11. DNL291

    question

    It will always trigger depending on the number of team members, you can't simply trigger 1 time for many players because the client-side runs individually.
  12. DNL291

    question

    Then just use the event onPlayerWasted and check the team of player who died, or depending on how it should be use this function https://wiki.multitheftauto.com/wiki/GetAlivePlayersInTeam.
  13. INSERT INTO statement is for dbExec as well. By the way, replace your function 'mysqlQuery' with this function: function mysqlQuery( ... ) if sourceResource == getResourceFromName( "runcode" ) then return false end checkConnection() local qh = dbPoll( dbQuery( db, ... ), - 1 ) writeToLog(getResourceName(sourceResource), table.concat( { ... }, ", " )) return qh end
  14. Tente isto (não testei): function closeDoor(player,colshape) local data = DoorsTable[colshape] if data == nil then return end if getElementData(data["door"],"object.moved") == "moved" then if moveObject(data["door"],2000,data.pos.x,data.pos.y,data.pos.z,0,0,-90) then outputChatBox("Porta fechada com sucesso") end setElementRotation(data["door"],data.rot.x,data.rot.y,data.rot.z - -90) -- checar isso -- ^ A rotação já é definida em moveObject, e menos com menos vai ser uma adição na rotZ setElementData(data["door"],"object.moved","notmoved") end end function toggleDoorOpen(player, key, keyState, colshape) if not isElementWithinColShape( player, colshape ) then return end; --[[ A bind só vai funcionar se tiver dentro do colshape, se quiser desativar só remover essa linha ]] local data = DoorsTable[colshape] if data == nil then return end local rx,ry,rz=getElementRotation(data["door"]) -- se não for usar isso pode remover local doorState = getElementData(data["door"], "object.moved") if doorState and doorState == "moved" and (getElementData(player,"gang") == data["camp"] or data.camp == "false" or not data["camp"]) then closeDoor( player, colshape ) outputChatBox("fechando") return end if doorState and doorState == "notmoved" and (getElementData(player,"gang") == data["camp"] or data.camp == "false" or not data["camp"]) then moveObject(data["door"],2000,data.pos.x,data.pos.y,data.pos.z,0,0,90) setElementData(data["door"],"object.moved","moved") outputChatBox("abrindo porta") end end function bind(hitPlayer, matchingDimension) if getElementType(hitPlayer) == "player" then if type(getElementData( DoorsTable[source]["door"], "object.moved" )) ~= "string" then setElementData( DoorsTable[source]["door"], "object.moved", "notmoved" ) end if isKeyBound( hitPlayer, ",", "down", toggleDoorOpen ) ~= true then bindKey(hitPlayer, ",", "down", toggleDoorOpen, source) end outputChatBox("onColShapeHit add bind") end end addEventHandler("onColShapeHit", resourceRoot, bind) Preste atenção nos comentários que deixei no código.
  15. Try this: exports.sql:mysqlQuery ( "INSERT INTO `justTABLE` ( `questions` ) VALUES ( ? );", questions ) EDIT: Remember, you should use dbExec and not dbQuery.
  16. Representa todos os elementos da árvore, digamos que é o pai de todos os elementos presente no servidor. Por exemplo, usando a função getElementChildren(root) retorna uma tabela com todos os elementos-filhos (esses são todos elementos, por exemplo). E a estrutura é nessa ordem: root > resources > elementos_do_resource, nunca testei getElementChildren mas deve ser assim. Facilita na hora de chamar uma função na qual deve ser executada pra todos os elementos que convém para a função. Também, caso não saiba, root é a variável predefinida pra getRootElement, usando root no código é o mesmo que chamar essa função. getResourceRootElement funciona da mesma forma, mas engloba apenas os elementos presente em tal resource, e sua variável predefinida é resourceRoot.
  17. Só usar esta função: setAccountData
  18. Tente: function openDoor(player, key, keyState, colshape) local data = DoorsTable[colshape] if data == nil then return end local rx,ry,rz=getElementRotation(data["door"]) if getElementData(player,"gang") == data["camp"] or data.camp == "false" or not data["camp"] then moveObject(data["door"],2000,data.pos.x,data.pos.y,data.pos.z,0,0,90) setTimer(closeDoor,5000,1,colshape) end end function bind(hitPlayer, matchingDimension) if getElementType(hitPlayer) == "player" then if isKeyBound( hitPlayer, ",", "down", openDoor ) ~= true then bindKey(hitPlayer, ",", "down", openDoor, source) outputChatBox("onColShapeHit add bind") end end end addEventHandler("onColShapeHit", resourceRoot, bind)
  19. Tinha esquecido, obrigado pelo aviso
  20. Troque source por hitElement (linha 3 e 8).
  21. Não sei se estou indo contra as regras do formulário por mostrar essa imagem, mas está dando como incorreta a minha resposta, certo? Não sei se foi essa a questão que você corrigiu manualmente. Tem duas alternativas corretas (ou eu to meio cego ), então isso é algum erro? Se eu soubesse disso sobre as perguntas de caixas de seleção, teria colocado mais outras, na hora pensei que devia marca pelo menos uma correta. Mas realmente são questões que até quem sabe pode errar (tipo na das dimensões que eu errei), algumas envolvem teste pra saber, se fizer com pressa pode errar quase todas.
  22. Parece que já conseguiu isso neste tópico: Sendo assim, estou bloqueando este tópico. Só me enviar MP caso queira reabri-lo.
  23. source está errado, não vai retornar nada, esses são os parâmetros para a função: function functionName ( player keyPresser, string key, string keyState, [ var arguments, ... ] ) É só definir o elemento-jogador no parâmetro.
  24. Cheguei a pensar na função https://wiki.multitheftauto.com/wiki/DxDrawLine3D pra simular a corda de uma forma fácil, mas parece que fica longe de parecer uma corda, e a parte da corda imagino que vai tem que ser separada do código que faz o veículo seguir, ou seja, no lado client. Talvez seja possível só por um meio mais complexo, substituindo uma textura do GTA e atualizando para ele ficar sempre na posição do guinchamento.
×
×
  • Create New...