Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Então Nick!
- //É o seguinte, fiz este comando: /derby
- //Ao digitar, um dialog com 4 opções de carros aparece, e você escolhe um deles
- //Então voce teleporta pro cenario com veiculo, tudo certo!
- //Objeto: bater até explodir sem possibilidade de reparar o carro.. em fim
- //Funciona tudo certo! O problema é o seguinte:
- //Quando o player aperta F ele é elimado e o carro some.. ok!
- //Só que, se o carro pegar fogo, e o cara não sair do carro, ou seja, esperar explodir
- //Todos os outros que estão no /derby perdem o veículo..
- //Eu to olhando os cods e sei que o erro é ali, pois quando aperta F ninguem perde o carro
- //(Pelo menos até agora ninguem perdeu o carro ao apertar F, só o cara que apertou)
- //Já tentei de tudo, por mais que seja simples, não sei arrumar..
- //Se puderes me dar uma força eu agradeço muito!
- //Abraço, obrigado por atender.
- //Botei só o principal..
- new VeiculoDERBY[MAX_PLAYERS];
- new IsInDerby[MAX_PLAYERS];
- //Este aqui funciona perfeitamente ---------------------------------------------
- public OnPlayerExitVehicle(playerid, vehicleid)
- {
- if(IsInDerby[playerid] == 1)
- {
- Spawnado[playerid] = 0;
- SetPlayerHealth(playerid, 0);
- VeiculoDERBY[playerid] = 0;
- DestroyVehicle(vehicleid);
- scm(playerid, -1, "{FF0000}Você saiu do carro no Derby e foi retirado da Arena.");
- }
- return 1;
- }
- //Este aqui não ----------------------------------------------------------------
- //Pelo menos eu acho que o problema é aqui..
- public OnVehicleDeath(vehicleid, killerid)
- {
- for(new playerid; playerid <MAX_PLAYERS; playerid++)
- {
- if(IsInDerby[playerid] == 1)
- {
- VeiculoDERBY[playerid] = 0;
- DestroyVehicle(vehicleid);
- }
- }
- return 1;
- }
- //Comando ----------------------------------------------------------------------
- CMD:derby(playerid, params[])
- {
- if(NoPuteiroSF[playerid] == 1) return scm(playerid, -1, "{FF0000}Proibido este comando dentro do puteiro.");
- if(Spawnado[playerid] == 0) return scm(playerid, -1, "{FF0000}Você ainda não spawnou.");
- if(BloqueioDerby[playerid] == 1) return scm(playerid, -1, "{FF0000}Proibido o uso deste comando neste teleporte.");
- if(BloqueioArena[playerid] == 1) return scm(playerid, -1, "{FF0000}Você não pode usar este comando neste teleporte.");
- if(IsPlayerInAnyVehicle(playerid)) return scm(playerid, -1, "{FF0000}Saia do veículo para usar este comando.");
- ShowPlayerDialog(playerid, DerbyD, DIALOG_STYLE_LIST, "{FFF000}Escolha seu veículo", "{FF0000}Monster \n{FF0000}Glendale Shit \n{FF0000}Sadler Shit \n{FF0000}Bloodring Banger", "Selecionar", "Cancelar");
- return 1;
- }
- //Dialog -----------------------------------------------------------------------
- if(dialogid == DerbyD)
- {
- if(response)
- {
- switch(listitem)
- {
- case 0:
- {
- new RandomDr = random(sizeof(Derby));
- VeiculoDERBY[playerid] = CreateVehicle(444, Derby[RandomDr][0], Derby[RandomDr][1], Derby[RandomDr][2], Angle, -1, -1, -1);
- PutPlayerInVehicle(playerid, VeiculoDERBY[playerid], 0);
- LinkVehicleToInterior(VeiculoDERBY[playerid], 15);
- SetVehicleZAngle(VeiculoDERBY[playerid], 179.0);
- SetPlayerInterior(playerid, 15);
- SetVehicleParamsEx(VeiculoDERBY[playerid], 1, 1, alarm, doors, bonnet, boot, objective);
- scm(playerid, -1, "{FFF000}Você não pode sair do carro neste teleporte, se sair, será eliminado.");
- format(string, sizeof(string), "{FFF000}Jogador {FFFFFF}%s {FFF000}foi para o {FFFFFF}Derby {FFF000}de Monster. {FFFFFF}( /derby )", Pname);
- scmall(-1, string);
- PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
- ResetPlayerWeapons(playerid);
- IsInDerby[playerid] = 1;
- BloqueioDerby[playerid] = 1;
- BloqueioArena[playerid] = 1;
- BloqueioArena2[playerid] = 1;
- BloquearDesbugar[playerid] = 1;
- }
- case 1:
- {
- new RandomDr = random(sizeof(Derby));
- VeiculoDERBY[playerid] = CreateVehicle(604, Derby[RandomDr][0], Derby[RandomDr][1], Derby[RandomDr][2], Angle, -1, -1, -1);
- PutPlayerInVehicle(playerid, VeiculoDERBY[playerid], 0);
- LinkVehicleToInterior(VeiculoDERBY[playerid], 15);
- SetVehicleZAngle(VeiculoDERBY[playerid], 179.0);
- SetPlayerInterior(playerid, 15);
- SetVehicleParamsEx(VeiculoDERBY[playerid], 1, lights, alarm, doors, bonnet, boot, objective);
- scm(playerid, -1, "{FFF000}Você não pode sair do carro neste teleporte, se sair, será eliminado.");
- format(string, sizeof(string), "{FFF000}Jogador {FFFFFF}%s {FFF000}foi para o {FFFFFF}Derby {FFF000}de Glendale. {FFFFFF}( /derby )", Pname);
- scmall(-1, string);
- PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
- ResetPlayerWeapons(playerid);
- IsInDerby[playerid] = 1;
- BloqueioDerby[playerid] = 1;
- BloqueioArena[playerid] = 1;
- BloqueioArena2[playerid] = 1;
- BloquearDesbugar[playerid] = 1;
- }
- case 2:
- {
- new RandomDr = random(sizeof(Derby));
- VeiculoDERBY[playerid] = CreateVehicle(605, Derby[RandomDr][0], Derby[RandomDr][1], Derby[RandomDr][2], Angle, -1, -1, -1);
- PutPlayerInVehicle(playerid, VeiculoDERBY[playerid], 0);
- LinkVehicleToInterior(VeiculoDERBY[playerid], 15);
- SetVehicleZAngle(VeiculoDERBY[playerid], 179.0);
- SetPlayerInterior(playerid, 15);
- SetVehicleParamsEx(VeiculoDERBY[playerid], 1, lights, alarm, doors, bonnet, boot, objective);
- scm(playerid, -1, "{FFF000}Você não pode sair do carro neste teleporte, se sair, será eliminado.");
- format(string, sizeof(string), "{FFF000}Jogador {FFFFFF}%s {FFF000}foi para o {FFFFFF}Derby {FFF000}de Sadler . {FFFFFF}( /derby )", Pname);
- scmall(-1, string);
- PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
- ResetPlayerWeapons(playerid);
- IsInDerby[playerid] = 1;
- BloqueioDerby[playerid] = 1;
- BloqueioArena[playerid] = 1;
- BloqueioArena2[playerid] = 1;
- BloquearDesbugar[playerid] = 1;
- }
- case 3:
- {
- new RandomDr = random(sizeof(Derby));
- VeiculoDERBY[playerid] = CreateVehicle(504, Derby[RandomDr][0], Derby[RandomDr][1], Derby[RandomDr][2], Angle, -1, -1, -1);
- PutPlayerInVehicle(playerid, VeiculoDERBY[playerid], 0);
- LinkVehicleToInterior(VeiculoDERBY[playerid], 15);
- SetVehicleZAngle(VeiculoDERBY[playerid], 179.0);
- SetPlayerInterior(playerid, 15);
- SetVehicleParamsEx(VeiculoDERBY[playerid], 1, lights, alarm, doors, bonnet, boot, objective);
- scm(playerid, -1, "{FFF000}Você não pode sair do carro neste teleporte, se sair, será eliminado.");
- format(string, sizeof(string), "{FFF000}Jogador {FFFFFF}%s {FFF000}foi para o {FFFFFF}Derby {FFF000}de Bloodring. {FFFFFF}( /derby )", Pname);
- scmall(-1, string);
- PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
- ResetPlayerWeapons(playerid);
- IsInDerby[playerid] = 1;
- BloqueioDerby[playerid] = 1;
- BloqueioArena[playerid] = 1;
- BloqueioArena2[playerid] = 1;
- BloquearDesbugar[playerid] = 1;
- }
- }
- }
- }
- return 1;
- }
- // Adicionei esta callback. Isto irá detectar melhor se o jogador alterou o status (no caso, saiu do veiculo)
- public OnPlayerStateChange(playerid, newstate, oldstate) {
- if((newstate = PLAYER_STATE_NONE) && ((oldstate == PLAYER_STATE_DRIVER) || (oldstate == PLAYER_STATE_PASSENGER)) && ((IsInDerby[playerid] == 1) && (VeiculoDERBY[playerid] != 0))) { // Caso estivesse de motorista ou passageiro
- Spawnado[playerid] = 0;
- SetPlayerHealth(playerid, 0);
- DestroyVehicle(VeiculoDERBY[playerid]);
- VeiculoDERBY[playerid] = 0;
- scm(playerid, -1, "{FF0000}Você saiu do carro no Derby e foi retirado da Arena.");
- }
- return 1;
- }
- /*
- Seu script está muito bom, parabéns. Mas, você pode optmizar isto. Bom é claro que isso requer mais prática, então
- Continue praticando, que seu script funcionará melhor e mais rápido.
- Ah, troquei algumas partes incorretas de seu script. AddStaticVehicleEx é apenas pro inicio do Scripting.
- Qualquer coisa, dê um alô. Abraços.
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement