19.02.2011, 20:56
(
Последний раз редактировалось Lunnatiicz; 09.03.2011 в 04:07.
Причина: Hбganme saber los errores de ortografнa ._.
)
Bueno, aquн les traigo mi primer aporte util para el foro, quizбs algunos ya sepan todo esto, pero no olvidemos que hay gente que apenas empieza, y les quiero dar un pequeсo apoyo n___n'!
Empecemos, antes que nada si eres nuevo en el foro te recomiendo que te leas las reglas para no tener ningъn conflicto en el foro.
Empecemos, antes que nada si eres nuevo en el foro te recomiendo que te leas las reglas para no tener ningъn conflicto en el foro.
NOTA: Explicarй sуlo los callbacks que comunmente son usados en GM'S Oh FilterScripts
Como primer punto.
- їQuй es un "Callback"?
Quote:
Un callback es en simple palabras, en donde tu cуdigo script se ejecuta, un ejemplo enseguida. |
pawn Код:
public OnPlayerConnect(playerid)
{
SendClientMessage(playerid, COLOR, "Bienvenido al servidor!")
return 1;
}
pawn Код:
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" Blank Filterscript by your name here");
print("--------------------------------------\n");
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
#else
main()
{
print("\n----------------------------------");
print(" Blank Gamemode by your name here");
print("----------------------------------\n");
}
#endif
El siguiente callback es.
pawn Код:
public OnGameModeInit()
{
SetGameModeText("Blank Script");//Nombre del modo de juego, este aparecerб en el cliente SA-MP
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);//Skins
return 1;
}
El siguiente callback.
pawn Код:
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);//Posiciуn del skin/jugador
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);//posiciуn de camara
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);//posiciуn de camara
return 1;
}
Los siguientes 2 Callbacks xD:
pawn Код:
public OnPlayerConnect(playerid)
{
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
format(string, sizeof(string), "%s ha salido del servidor! (Salio)", sendername);
SendClientMessageToAll(0xBBBBBBAA, string);
return 1;
}
Un ejemplo.
pawn Код:
public OnPlayerDisconnect(playerid)
{
Conectado = 0;
}
pawn Код:
public OnPlayerSpawn(playerid)
{
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
return 1;
}
pawn Код:
public OnPlayerSpawn(playerid)
{
SetPlayerPos(playerid,272.6040,1989.7307,17.6406);//la posiciуn de spawn de jugador
GivePlayerMoney(playerid, 1000);//cantidad de dinero con la que el jugador iniciara
GivePlayerWeapon(playerid,WEAPON_MP5,500);//El arma que se le otorgara por default en tu servidor
GivePlayerWeapon(playerid, WEAPON_M4,500);//la misma que el de arriba
return 1;
}
//----------------------------------------------------------
public OnPlayerDeath(playerid, killerid, reason)
{
SendDeathMessage(killerid,playerid,reason); // para q se muestre como tu quieres
SetPlayerScore(killerid, GetPlayerScore(killerid) + 1); // esto le suma score cada jugador q mate
GivePlayerMoney(killerid,1000); // y esto le da 1000 $ cada vez q mata a un jugador
GameTextForPlayer(playerid,"~r~P~b~W~g~N~y~T!!!",4000,3);
return 1;
}
pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/micomando", cmdtext, true, 10) == 0)
{
// La funciуn/acciуn del comando
return 1;
}
return 0;//OJO AQUН, SI USAS RETURN 0; ES PARA FINALIZAR EL CALLBACK, EN CASO DE PONER COMANDOS SUCESIVOS USA RETURN 1;
}
pawn Код:
if(!strcmp(cmdtext, "/me", true, 3))
{
if(!cmdtext[3])return SendClientMessage(playerid, 0xFF0000FF, "Usa /me [accion]");
new str[128];
GetPlayerName(playerid, str, sizeof(str));
format(str, sizeof(str), "* %s %s", str, cmdtext[4]);//Todo apartir de /me hacia abajo es la funciуn que harб el comando
SendClientMessageToAll(0x9955DEEE, str);
return 1;//termina la funciуn
}
Quote:
Originally Posted by the_chaoz
їCуmo cambio el "Unknown Command" que aparece cuando el comando no existe?
Muy sensillo, buscamos el callback: "OnPlayerCommandText", luego dentro del mismo y en el final fuera de los comandos encontraremos un: pawn Код:
pawn Код:
|
pawn Код:
public OnPlayerUpdate(playerid)
{
// No Armas en interiores
if(GetPlayerInterior(playerid) != 0 && GetPlayerWeapon(playerid) != 0) {
SetPlayerArmedWeapon(playerid,0); // fists
return 0; // no syncing until they change their weapon
}
// No El uso de Minigun
if(GetPlayerWeapon(playerid) == WEAPON_MINIGUN) {
Kick(playerid);
return 0;
}
//No JetPacks
if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_USEJETPACK) {
Kick(playerid);
return 0;
}
Quote:
OnPlayerUpdate, йste es llamado cada vez que el jugador se actualiza, lo que hace que sea llamado aproximadamente 20 veces por segundo, pero si el jugador no estб haciendo nada йste se actualiza casi 2 veces por segundo. |
NOTA IMPORTANTE PARA LOS NUEVOS: Para empezar si no saben, hay que definir colores, eh includes (En caso de que usen)
pawn Код:
#include <a_samp> //predeterminado de pawn
Quote:
este include, nos permite usar funciones relacionadas con SA-MP pero podemos crear scripts en Pawn para usarlos para otras cosas, por ejemplo, crear un sistema de un semбforo con un hardware apropiado. FUente: Libro de tecnologia 4є ESO XD Citado por: SuperMario (': |
Hasta aquн la pequeсa explicaciуn de callbacks comъnmente usados. (':!
Saludos a todos! Si tuve algъn error hбganme saberlo, soy humano y cometo errores o_O Comъnmente fatales pero no para tanto :P
Saludos a todos! Si tuve algъn error hбganme saberlo, soy humano y cometo errores o_O Comъnmente fatales pero no para tanto :P