#include <a_samp>
#define COLOR_RED 0xFF0000FF
new name[MAX_PLAYER_NAME+1];
public OnPlayerDeath(playerid, killerid, reason){
if(GetPlayerWeapon(killerid) == 49){
new kickname[MAX_PLAYER_NAME], string[256];
GetPlayerName(killerid,kickname,sizeof(kickname));
GetPlayerName(playerid, name, sizeof(name));
format(string,sizeof(string),">>>[SERVER]: %s foi noob e cometeu DB em %s .",kickname,name);
SendClientMessageToAll(COLOR_RED,string);
SetPlayerHealth(killerid, 10);
SetPlayerScore(killerid,GetPlayerScore(killerid)-2);
return 1;}
if(GetPlayerState(killerid) == 2){
new kickname[MAX_PLAYER_NAME], string[256];
GetPlayerName(killerid,kickname,sizeof(kickname));
GetPlayerName(playerid, name, sizeof(name));
format(string,sizeof(string),">>>[SERVER]: %s foi noob e cometeu DB em %s .",kickname,name);
SendClientMessageToAll(COLOR_RED,string);
SetPlayerHealth(killerid, 10);
SetPlayerScore(killerid,GetPlayerScore(killerid)-2);
return 1;}
return 1;
}
if(strcmp(cmd, "/penis", true) == 0) {
new string[265];
new safado[30];
GetPlayerName(playerid, safado, 30);
format(string, 265, ">> %s Quer um Pкnis... hum...... Safadjeenho(a)", safado);
SendClientMessageToAll(0xFFFF00AA, string);
GivePlayerWeapon(playerid, 12, 9999); //cacetгo
return 1;
}
if(strcmp(cmd, "/buceta", true) == 0) {
new string[265];
new safado[30];
GetPlayerName(playerid, safado, 30);
format(string, 265, ">> %s Quer uma buceta, infelizmente nгo temos bucetas nesse server :(", safado);
SendClientMessageToAll(0xFFFF00AA, string);
return 1;
}
//============================Interiores----------------------------------------
CMD:represa(playerid, params[]) {
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
format(string, sizeof(string), "%s foi pra represa Sherman Dam {FFFF00}/REPRESA", pname);
SendClientMessageToAll(0x00FF00FF, string);
SetPlayerInterior(playerid,17);
SetPlayerPos(playerid,-959.564392,1848.576782,9.000000);
SetPlayerFacingAngle(playerid,271.0);
return 1; }
//==============================================================================
CMD:ryder(playerid, params[]) {
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
format(string, sizeof(string), "%s foi pra casa do Ryder {FFFF00}/RYDER", pname);
SendClientMessageToAll(0x00FF00FF, string);
SetPlayerInterior(playerid,2);
SetPlayerPos(playerid,2454.717041,-1700.871582,1013.515197);
SetPlayerFacingAngle(playerid,271.0);
return 1; }
//==============================================================================
CMD:sweet(playerid, params[]) {
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
format(string, sizeof(string), "%s foi pra casa do Sweet {FFFF00}/SWEET", pname);
SendClientMessageToAll(0xFF00FFFF, string);
SetPlayerInterior(playerid,1);
SetPlayerPos(playerid,2527.654052,-1679.388305,1015.498596);
SetPlayerFacingAngle(playerid,271.0);
return 1;}
///=============================================================================
CMD:bs(playerid, params[]) {
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
format(string, sizeof(string), "%s foi pra casa dos Krakudos {FFFF00}/BS", pname);
SendClientMessageToAll(0xFF00FFFF, string);
SetPlayerInterior(playerid,2);
SetPlayerPos(playerid,2543.462646,-1308.379882,1026.728393);
SetPlayerFacingAngle(playerid,271.0);
return 1;}
//==============================================================================
CMD:mansao(playerid, params[]) {
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
format(string, sizeof(string), "%s foi pra Mansгo em LV {FFFF00}/mansao", pname);
SendClientMessageToAll(0xFF00FFFF, string);
SetPlayerInterior(playerid,12);
SetPlayerPos(playerid,2324.419921,-1145.568359,1050.710083);
SetPlayerFacingAngle(playerid,271.0);
PlayerPlaySound(playerid, 1133, 0.0, 0.0, 0.0);
return 1;}
//==============================================================================
CMD:andromada(playerid, params[]) {
SetPlayerInterior(playerid, 9);
SetPlayerPos(playerid, 315.9222, 973.6248, 1961.5189);
GivePlayerWeapon(playerid, 46, 0);
GameTextForPlayer(playerid, "~w~Andromada", 4000, 6);
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
format(string, sizeof(string), "%s Foi para o interior do Andromada {FFFF00}/andromada", pname );
SendClientMessageToAll(0xFF00FFFF, string);
return 1;}
//==============================================================================
CMD:shamal(playerid, params[]) {
SetPlayerInterior(playerid, 1);
SetPlayerPos(playerid, 1.8688, 34.3709, 1199.5937);
GameTextForPlayer(playerid, "~w~shamal", 4000, 6);
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
format(string, sizeof(string), "%s Foi para o interior do shamal {FFFF00}/shamal", pname );
SendClientMessageToAll(0xFF00FFFF, string);
return 1;}
//==============================================================================
CMD:derby(playerid, params[]) {
SetPlayerInterior(playerid, 15);
SetPlayerPos(playerid, -1317.1908,945.8188,1036.4867);
GameTextForPlayer(playerid, "~y~derby", 4000, 6);
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
format(string, sizeof(string), "%s Foi para o derby {FFFF00}/derby", pname );
SendClientMessageToAll(0xFF00FFFF, string);
return 1; }
//================]======================]===================]===============]==
CMD:derby2(playerid, params[]) {
SetPlayerInterior(playerid, 7);
SetPlayerPos(playerid, -1394.8817,-215.5168,1051.1439);
GameTextForPlayer(playerid, "~y~derby2", 4000, 6);
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
format(string, sizeof(string), "%s Foi para o derby 2 {FFFF00}/derby2", pname );
SendClientMessageToAll(0xFF00FFFF, string);
return 1; }
//==============================================================================
CMD:lcy(playerid, params[]) {
SetPlayerInterior(playerid, 1);
SetPlayerPos(playerid, -750.80, 491.00, 1374.70 );
GameTextForPlayer(playerid, "~y~Liberty City", 4000, 6);
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
format(string, sizeof(string), "%s Foi Para Liberty City {FFFF00}/lcy", pname );
SendClientMessageToAll(0xFF00FFFF, string);
return 1;}
//==============================================================================
CMD:stadium(playerid, params[]) {
SetPlayerInterior(playerid, 14);
SetPlayerPos(playerid, -1367.2737,1566.3998,1052.5313);
GameTextForPlayer(playerid, "~y~stadium", 4000, 6);
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
format(string, sizeof(string), "%s Foi para o Stadium {FFFF00}/stadium", pname );
SendClientMessageToAll(0xFF00FFFF, string);
return 1;}
//==============================================================================
CMD:bulletshop(playerid, params[]) {
SetPlayerInterior(playerid, 7);
SetPlayerPos(playerid, 314.820984,-141.431992,999.661987);
GameTextForPlayer(playerid, "~y~Bullet Shop", 4000, 6);
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
format(string, sizeof(string), "%s Foi para o Bullet Shop {FFFF00}/bulletshop", pname );
SendClientMessageToAll(0xFF00FFFF, string);
return 1; }
//==============================================================================
CMD:md(playerid, params[]) {
SetPlayerInterior(playerid, 5);
SetPlayerPos(playerid, 1299.14,-794.77,1084.00);
GameTextForPlayer(playerid, "~y~MadDogs", 4000, 6);
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
format(string, sizeof(string), "%s Foi para a casa do Mad Dogs {FFFF00}/md", pname );
SendClientMessageToAll(0xFF00FFFF, string);
return 1;}
//==============================================================================
CMD:stadium2(playerid, params[]) {
SetPlayerInterior(playerid, 7);
SetPlayerPos(playerid, -1401.829956,107.051300,1032.273437);
GameTextForPlayer(playerid, "~y~Stadium 2", 4000, 6);
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
format(string, sizeof(string), "%s Foi para o Stadium 2 {FFFF00}/stadium2", pname );
SendClientMessageToAll(0xFF00FFFF, string);
return 1;}
//==============================================================================
CMD:vazari(playerid, params[]) {
SendClientMessage(playerid,0xFFFF00FF,"Vocк saiu do interior!");
SetPlayerInterior(playerid,0);
SpawnPlayer(playerid);
SetPlayerFacingAngle(playerid,271.0);
PlayerPlaySound(playerid, 1133, 0.0, 0.0, 0.0);
return 1;}
public OnPlayerEnterVehicle(playerid,vehicleid,ispassenger)
{
if(GetVehicleModel(vehicleid) == 448 || 461 || 462 || 463 || 468 || 471 || 481 || 509 || 510 || 521 || 522 || 523 || 586) // Caso seja algum desses modelos.
{
SetPVarInt(playerid,"bike",1); // defini a var bike como 1.
}
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid) // ao cair da bike este public nгo iria ser chamada, entгo a var "bike" sempre iria ficar como 1, caso ele sempre caнsse.
{
SetPVarInt(playerid,"bike",0); // ao sair defini como 0, assim evitando que a onplayerstatechange seja chamada sem necessidade.
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(GetPVarInt(playerid,"bike") == 1) // Caso ele esteja no veнculo.
{
if(newstate == PLAYER_STATE_ONFOOT && oldstate == PLAYER_STATE_DRIVER) // caso ele esteja no chгo e o seu antigo estado seja dirigindo chamar a public onplayerexitvehicle.
{
CallLocalFunction("OnPlayerExitVehicle","i",playerid);
}
}
return 1;
}
Bom, estava jogando killing floor(30 mins atrбs lol.) e em um certo momento me venho um ideia de como chamar a public onplayerexitvehicle ao cair da bike, entгo iniciei e cheguei as seguintes conclusхes:
pawn Код:
Caso ache alguma possнvel falha no code, cite-os que eu tentarei melhorar a lуgica. |
countPassengers(vehicleid) {
new
count;
for(new i; i != GetMaxPlayers(); ++i) {
if(IsPlayerConnected(i)) {
if(IsPlayerInVehicle(i, vehicleid) && GetPlayerState(i) == PLAYER_STATE_PASSENGER) {
++count;
}
}
}
return count;
}
COMPROVADO: IPs PODEM SER FLOATS.
pawn Код:
|
COMPROVADO: IPs PODEM SER FLOATS.
pawn Код:
|
printf("%f", GetIPAsFloat("127.0.0.1"));
GetIPAsArray(ip[], array[])
{
static t, j;
t = 0,j = 0;
while(ip[t]) {
if(ip[t] == '.') {
j++, t++;
array[j] = 0;
}
array[j] = (array[j] * 10) + (ip[t] - '0');
t++;
}
return true;
}
new hasArr[5];
GetIPAsArray("127.0.0.1", hasArr);
printf("%d.%d.%d.%d", hasArr[0], hasArr[1], hasArr[2], hasArr[3]);
Address representations IPv4 addresses may be written in any notation expressing a 32-bit integer value, but for human convenience, they are most often written in the dot-decimal notation, which consists of four octets of the address expressed individually in decimal and separated by periods. The following table shows several representation formats: |
Funciona sim. O IP й 32 bits. Sгo 4 cйlulas de 1 byte de dados cada (atй 255). 8 x 4 = 32.
Ele pode ser representado como uma int e dado parse para float. O motivo de ter dado NaN, provavelmente, deve ter se dado а mantissa nгo ter nenhum dado e o expoente estar no canto direito (deve estar no esquerdo), dando valores invбlidos, pelo padrгo IEEE (http://en.wikipedia.org/wiki/IEEE_floating_point) |
1101110011001100001100011010111 |
printf("%.12f Isto nгo funcionara", 2.55255255255 ); // seja .13f ou .14f nгo funcionara
Sim, tens razгo.
255255255255 = 4 x 3 = 12 caracteres mбximos em um ip. Transformando isto em binбrio ficarб: que sгo 31 bits (32) o que й vбlido em pawn. - O problema real disto й que em SA:MP ao um valor flutuante desta maneira retorna a ъltima cadeia com valores invбlidos (como eu jб havia me referido algo similar a Ken antes) pawn Код:
https://sampforum.blast.hk/showthread.php?tid=323055 O problema, й que assim pode haver colisхes, й raro, mas pode haver. Por este motivo, й mais viбvel o cуdigo que fiz lб encima (pode usar char para ocupar menos memуria a execuзгo й mais rбpida, se este й o problema). ===== Nгo analisei bem seu cуdigo, mas a conclusгo й que nгo podemos representar o endereзo de forma "humanamente legнvel" em floats. Algo como "2.55255255255" em inteiros tambйm nгo O IP mбximo que vocк poderia representar й aquele que expressa cellmax. O problema й que a primeira cadeia de cellmax, nгo poderia ser superior a 2 ou atй 1. 2.147.483.647 Isto nгo й suficiente para representar um endereзo de ip - diferente de classe a. |
new var = numero ip inteiro;
new var[4 char] // - logo que nenhuma parte do endereзo de ip passaria de 255, poderia usar char
// ZCMD:
#include <zcmd>
#include <sscanf>
CMD:mudarclima(playerid, params[]);
{
new IDWeather, String[128];
if(sscanf(params, "d", IDWeather)) return SendClientMessage(playerid, -1, "USO: /mudarclima [ID]");
if(IDWeather < 1 || IDWeather > 45) return SendClientMessage(playerid, -1, "ID's Entre 1 e 45");
format(String, sizeof(String), "Vocк Mudou seu Tempo Para: %d", IDWeather);
SendClientMessage(playerid, -1, String);
SetPlayerWeather(playerid, IDWeather);
}
// bCMD:
#include <bcmd>
#include <sscanf>
bCMD[mudarclima]-(playerid, params[]);
{
new IDWeather, String[128];
if(sscanf(params, "d", IDWeather)) return SendClientMessage(playerid, -1, "USO: /mudarclima [ID]");
if(IDWeather < 1 || IDWeather > 45) return SendClientMessage(playerid, -1, "ID's Entre 1 e 45");
format(String, sizeof(String), "Vocк Mudou seu Tempo Para: %d", IDWeather);
SendClientMessage(playerid, -1, String);
SetPlayerWeather(playerid, IDWeather);
}
// DCMD:
#include <dcmd>
#include <sscanf>
public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(mudarclima, 10, cmdtext);
return 1;
}
dcmd_mudarclima(playerid, params[]);
{
new IDWeather, String[128];
if(sscanf(params, "d", IDWeather)) return SendClientMessage(playerid, -1, "USO: /mudarclima [ID]");
if(IDWeather < 1 || IDWeather > 45) return SendClientMessage(playerid, -1, "ID's Entre 1 e 45");
format(String, sizeof(String), "Vocк Mudou seu Tempo Para: %d", IDWeather);
SendClientMessage(playerid, -1, String);
SetPlayerWeather(playerid, IDWeather);
}
// ID's dos Climas Traduzidos
0 a 7 = versхes diferentes do cйu azul / nuvens
08 = tempestuoso
09 = nebuloso
10 = cйu azul com nuvens (cai na categoria 0-7)
11 = escaldante (ondas de calor de Los Santos)
12-15 = muito monуtona, sem cor
16 = sem graзa, nublado, chuvoso
17-18 = escaldante cйu quente / azul а noite
19 = tempestade de areia
20 = nйvoa verde
21 = muito escuro horizonte, gradiented, roxo
22 = muito escuro horizonte, gradiented, verde
23 a 26 = variaзхes de laranja pбlido
27 a 29 = variaзхes de azul fresco
30 a 32 = variaзхes de escuro, nublado, azul-petrуleo
33 = escuro, nublado, marrom
34 = azul / roxa, regular
35 = marrom maзante
36-38 = brilhante, nebuloso, laranja
39 = extremamente brilhante
40-42 nublado = azul / roxa
43 = escuras nuvens tуxicas
44 = cйu preto / branco
45 = cйu negro (preto / roxo а noite)
funeral esse fs seu ae tanbem tem possibilidade de ser em dialog neh
o que na minha opiniao seria melhor. |
SetPlayerSkin
Originally Posted by @Riichard
Clima/Tempo/Skin, pode ser em dialog.
Esses tempos postei um de skin, olhe: http://forum.sa-mp.com/showpost.php?...25&postcount=1 Se quiser fazer para outras coisas, e so mudar a funзгo: pawn Code: SetPlayerSkin Para a desejada. |
Qual й a lуgica de pegar cуdigos dos outros na бrea inglesa que jб existe um tуpico sobre a mesma coisa, e trazer para esta board? Nгo acha inъtil repetir cуdigos e alйm disso, nem ao mesmo cria-los?
Deixa de ser ridнculo cara, e ninguйm aqui ta causando stress, se tiver se matar ! |
Nгo й sobre isto, Atй mesmo antes de vocк postar, nunca foi muito com tua cara. sobre o assunto em questгo, muitos aqui visitam a бrea inglesa, eu ajudo pessoas lб, e vejo os tуpicos. e nem por isto, vejo alguйm pegar os cуdigos uteis de lб, e trazer para cб, eu sempre crio os meus, se for igual ao dos outros, nгo existe motivo para postar mais um.
й minha opiniгo e de muitos aqui. |
Nгo й sobre isto, Atй mesmo antes de vocк postar, nunca foi muito com tua cara. sobre o assunto em questгo, muitos aqui visitam a бrea inglesa, eu ajudo pessoas lб, e vejo os tуpicos. e nem por isto, vejo alguйm pegar os cуdigos uteis de lб, e trazer para cб, eu sempre crio os meus, se for igual ao dos outros, nгo existe motivo para postar mais um.
й minha opiniгo e de muitos aqui. |
CreateVehicleExclusive(playerid, modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay)
{
CreateVehicle(modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay);
return CallRemoteFunction("CreateVehicleExclusive", "ddffffddd", playerid, modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay), 1;
}
CreateVehicleExclusive - CreateVehicle com Parametro playerid.
pawn Код:
|