a vida do player desejado.4. Multi-Array StringsMulti array strings sao strings que carregam varias mensagens ao mesmo tempo, ou varios numeros, coordenadas, etc... Um exemplo muito conhecido de multi-array string e a multi-array do nome dos carros.CODIGOnew VehicleName[212][0] = {"Landstalker",//--------> Numero 0"Bravura",// --------> Numero 1"Buffalo",// -------> Numero 2"Linerunner",// -------> E assim vai..."Pereniel","Sentinel","Dumper","Firetruck","Trashmaster","Stretch","Manana","Infernus","Voodoo","Pony","Mule","Cheetah","Ambulance","Leviathan","Moonbeam","Esperanto","Taxi","Washington","Bobcat","Mr Whoopee","BF Injection","Hunter","Premier","Enforcer","Securicar","Banshee","Predator","Bus","Rhino","Barracks","Hotknife","Trailer","Previon","Coach","Cabbie","Stallion","Rumpo","RC Bandit","Romero","Packer","Monster Truck","Admiral","Squalo","Seasparrow","Pizzaboy","Tram","Trailer","Turismo","Speeder","Reefer","Tropic","Flatbed","Yankee","Caddy","Solair","Berkley's RC Van","Skimmer","PCJ-600","Faggio","Freeway","RC Baron","RC Raider","Glendale","Oceanic","Sanchez","Sparrow","Patriot","Quad","Coastguard","Dinghy","Hermes","Sabre","Rustler","ZR-350","Walton","Regina","Comet","BMX","Burrito","Camper","Marquis","Baggage","Dozer","Maverick","News Chopper","Rancher","FBI Rancher","Virgo","Greenwood","Jetmax","Hotring","Sandking","Blista Compact","Police Maverick","Boxville","Benson","Mesa","RC Goblin","Hotring Racer","Hotring Racer","Bloodring Banger","Rancher","Super GT","Elegant","Journey","Bike","Mountain Bike","Beagle","Cropdust","Stunt","Tanker","RoadTrain","Nebula","Majestic","Buccaneer","Shamal","Hydra","FCR-900","NRG-500","HPV1000","Cement Truck","Tow Truck","Fortune","Cadrona","FBI Truck","Willard","Forklift","Tractor","Combine","Feltzer","Remington","Slamvan","Blade","Freight","Streak","Vortex","Vincent","Bullet","Clover","Sadler","Firetruck","Hustler","Intruder","Primo","Cargobob","Tampa","Sunrise","Merit","Utility","Nevada","Yosemite","Windsor","Monster Truck","Monster Truck","Uranus","Jester","Sultan","Stratum","Elegy","Raindance","RC Tiger","Flash","Tahoma","Savanna","Bandito","Freight","Trailer","Kart","Mower","Duneride","Sweeper","Broadway","Tornado","AT-400","DFT-30","Huntley","Stafford","BF-400","Newsvan","Tug","Trailer","Emperor","Wayfarer","Euros","Hotdog","Club","Trailer","Trailer","Andromada","Dodo","RC Cam","Launch","Policia (LSPD)","Policia (SFPD)","Policia (LVPD)","Police Ranger","Picador","S.W.A.T. Van","Alpha","Phoenix","Glendale","Sadler","Trailer de Bagagens","Trailer de Bagagens","Stair Trailer","Boxville","Farm Plow","Trailer de Utilidades"};Como voce pode ter visto, esta string tem o nome de todos os carros. Agora vamos usa-la. Vamos fazer um comando /nomeveiculo [id], que vai mostrar o nome do veiculo do id escolhido.CODIGOif (strcmp(cmd, "/nomeveiculo", true)==0){new string [256];new tmp[256];new idveiculo;tmp = strtok(cmdtext, idx);if(!strlen(tmp)){SendClientMessage(playerid, cinza, "[ERRO DE SINTAXE] /nomeveiculo [id]");return 1;}idveiculo = strval(tmp);format(string, sizeof(string), "Nome do veiculo: %s.", VehicleName[idveiculo - 400]);SendClientMessageToAll(branco, string);return 1;}Agora fizemos um comando que vai mostrar o nome do veiculo, e usamos VehicleName[idveiculo - 400] para poder mostrar o nome do veiculo certo. Ou seja, quando ele digita /nomeveiculo 400, vai mostrar o veiculo No 0, ja que mostra a variavel idveiculo - 400.5. Stock FunctionsStocks e sao funcoes criadas pelo player, para simplificar funcoes e adicionar novas funcoes ao sa-mp. Aqui um exemplo bem conhecido de funcao stock:CODIGOstock GetXYInFrontOfPlayer(playerid, &Float:x, &Float:y, Float:distance){ // Created by Y_Lessnew Float:a;GetPlayerPos(playerid, x, y, a);GetPlayerFacingAngle(playerid, a);if (GetPlayerVehicleID(playerid)) {GetVehicleZAngle(GetPlayerVehicleID(playerid), a);}x += (distance * floatsin(-a, degrees));y += (distance * floatcos(-a, degrees));}Esse stock adiciona uma funcao ao sa-mp, de pegar as coordenadas na frente do jogador. Agora vamos criar nossa propria funcao no sa-mp, uma funcao de SETAR o dinheiro das pessoas. (Nao tem funcao de setar, so de dar dinheiro)CODIGOstock SetarGrana(playerid, grana){ResetPlayerMoney(playerid);GivePlayerMoney(playerid, grana);}Ok, nosso stock function esta pronto, ou seja, vai resetar a grana do player e depois vai dar o dinheiro, sendo assim a mesma coisa que setar. Agora nos podemos usar a funcao que nos criamos em qualquer parte do nosso script. Por Exemplo, tente combinar o que aprendemos antes com os strtok com o SetarGrana, vamos criar um comando /setargrana id grana com a funcao que acabamos de fazer.CODIGOif (strcmp(cmd, "/setargrana", true)==0 && IsPlayerAdmin(playerid)){new tmp[256];new string[256];new plid, grana;new nomeentregador[MAX_PLAYER_NAME];new nomerecebedor[MAX_PLAYER_NAME];tmp = strtok(cmdtext, idx);if(!strlen(tmp)){SendClientMessage(playerid, cinza, "[ERRO DE SINTAXE] /setargrana [id] [grana]");return 1;}plid = strval(tmp);tmp = strtok(cmdtext, idx);if(!strlen(tmp)) {SendClientMessage(playerid, cinza, "[ERRO DE SINTAXE] /setargrana [id] [grana]");return 1;}grana = strval(tmp);if(IsPlayerConnected(plid)){GetPlayerName(plid, nomerecebedor, sizeof(nomerecebedor));GetPlayerName(playerid, nomeentregador, sizeof(nomeentregador));format(string, sizeof(string), "O Admnistrador %s setou o dinheiro de %s para R$%d.", nomeentregador,nomerecebedor,grana);SendClientMessageToAll(branco, string);SetarGrana(plid, grana);return 1;}else{SendClientMessage(playerid, cinza, "Jogador nao conectado.");return 1;}}Pronto! Ai esta o nosso code simplificado de setar grana(na verdade nem tanto, mas vc pode simplificar mais do jeito q vc quiser fazer seu stock function). Stocks podem fazer qualquer funcao, e sao geralmente usados para fazer includes.6. User DatabasesUser databases sao includes usados para salvar os dados de algum jogador. Neste tutorial vou explicar como usar o DUDB.O dudb, na minha opiniao e o melhor include de database. Aqui vou explicar como utilizar as funcoes do dudb:udb_Create(Filename[], password[]): Funcao utilizada para criar uma conta no dudb. Veja no exemplo de sistema de