Las funciones son un bloque de código que ejecuta alguna operación. Una función puede definir opcionalmente parámetros de entrada que permiten a los llamadores pasar argumentos a la función.

FUNCIONES “SET”

p->SetHealth(cantidad) //Cambia la vida de “p” por “cantidad”player->setlevel(80) //Hace al jugador nivel 80 (por testear)p->setFaction(14); //Convierte la faccion de “p” en 14
p->SetPower(tipo de poder, cantidad) //Cambia la cantidad de “tipo de poder” por “cantidad”
m_creature->SetFlag(flag, flag) //Igual que remove flag pero no remueve la “flag”
p->SetDisplayId(modelonuevo); //Cambia el modelo de P
p->SetSpeed(MOVE_WALK,X,true); //Cambia la velocidad de moverse, en este caso de andar, por X de p
p->SetHealth(X); //Cambia la vida de p por X
p->setDeathState(estado) //Cambia el estado de muerte (ej: JUST_DIED (acaba de morir))
p->SetVisibility(VISIBILITY_ON) //Hace que p pueda ver (creo; puede ser que p sea visible)
p->SetSpeed(tipomovimiento, velocidad) //Cambia la velocidad de “tipomovimiento” (ej: MOVE_RUN) por “velocidad” (siempre debe terminar con “f”)de “p”
pGo->SetGoState(GO_STATE_ACTIVE); //Activa el go, utilizado con el anterior comando
m_creature->SetStandState(tipo); //Cambia el estado de m_creature, Ej: “m_creature->SetStandState(UNIT_STAND_STATE_SLEEP)”, este haria que la criatura se pusiera a dormir
SetEquipmentSlots(false, mano_izquierda, mano_derecha, EQUIP_NO_CHANGE)//Equipa mano_izquierda a la mano izquierda del npc y mano_derecha a la mano derecha del npc. Si se usa EQUIP_UNEQUIP se quitan las armas
p->SetLootState(estado) //CAmbia el estado de loteo (ej: “GO_JUST_DEACTIVATED” acabado de lootear”) solo funciona con GOs

FUNCIONES “GET”

p->getVictim() //Coge el objetivo actual de p
p->GetHealth() //Coge la vida actual de “m_creature”
p->GetMaxHealth() //Coge la vida maxima actual (no de la db, sino la del npc actual)
p->GetPower(tipo de poder) //Coge la cantidad actual de “tipo de poder” de “p”
p->GetMaxPower(tipo de poder) //Coge la cantidad maxima de “tipo de poder” de “p”
Player->GetTeam() //Devuelve la fraccion del jugador (HORDE o ALLIANCE)
Player->GetQuestRewardStatus(id) //Devuelve si ha hecho o no la mision “id”
P->GetPositionX() //Devuelve la coordenada X de P
P->GetPositionY() //Devuelve la coordenada Y de P
P->GetPosition>() //Devuelve la coordenada Z de P
P->GetAngle(U) //Devuelve la orientacion de P respecto U, donde u puede ser m_creature, pGO, player o una variable cualquiera
Player->GetQuestStatus(id) == QUEST_STATUS_INCOMPLETE) //devuelve el estado de la quest “id” por el jugador
p->getFactionTemplateEntry(); //En teoria, devuelve la faccion de P
p->GetEntry() //Devuelve la id de P
p->getFaction() //Devuelve la faccion de P
GO->GetGoType() //Devuelve el tipo de GO que es “GO”
Player->GetGUID() //Devuelve el GUID del personaje, util para menus de Taxis
player->GetBaseSkillValue(id) //Devuelve el “nivel” de la habilidad “id” que tiene el jugador
pGo = instance->GetGameObject(X) //En la instance, coge el GUID de el go “X” y lo almacena en pGO
m_creature->getStandState() //Devuelve el estado de m_creature
p->GetData64(data) //Devuelve la “data64” (ni idea)
p->GetVisibility() //Devuelve la visibilidad (o si es visible, no se) de “p”
float PosX, PosY, PosZ;
p->GetPosition(PosX, PosY, PosZ) //Devuelve las coordenadas en PosX, PosY y PosZ, de “p”
pCreature->GetUInt32Value(id) //Devuelve el Uint32value de “id” de la criatura.
p->GetAreaId() //Devuelve el area id de p

FUNCIONES “IS”

ESTAS FUNCIONES SE USAN EN LAS FUNCIONES if/else/elseif (mas abajo hablo de ellas)

p->isAlive() //Devuelve true si el jugador está a salvo
p->isDead() //Devuelve true si p está muerto
p->isInCombat() //Devuelve true si el jugador está en combate
!m_creature->IsNonMeleeSpellCasted(false) //Devuelve true que m_creature no está casteando
p->IsWithinDist(m_creature->getVictim(),25.0f) //Devuelve true si p está a menos de 25f del objetivo
P->IsHostileTo(U) //Devuelve true si P es hostil a U, donde P puede ser m_creature, pGO, player o una variable cualquiera y donde u puede ser m_creature, pGO, player o una variable cualquiera
Player->isInFlight() //Devuelve true si el “player” está
p->GetMap()->IsHeroic(); //Devuelve true si el mapa donde esta “p” es heroico o no
pCreature->isQuestGiver() //Devuelve true si pCreature es un repartidor de misiones
p->IsInEvadeMode() //Devuelve true si “p” esta evitando los ataques
p->isAttackReady() //Devuelve true si “p” puede atacar
p->isTargetableForAttack() //Devuelve true si “p” puede ser atacado
p->IsBanished //Devuelve true si “p” es invisible
p->IsHostileTo(objetivo) //Devuelve true si “p” es hostil a “objetivo”

FUNCIONES “HAS”

ESTAS FUNCIONES SE USAN EN LAS FUNCIONES if/else/elseif (mas abajo hablo de ellas)

Player->HasSkill(id) //Devuelve true si el jugador tiene la habilidad “id”
Player->HasSpell(id) //Devuelve true si el jugador tiene el hechizo “Id”
Player->HasItemCount(item,num,true) //Devuelve true si el jugador tiene “num” cantidad del item “item”
p->HasMonsterMoveFlag(movimiento) //Devuelve 3 si el “movimiento” es el movimiento que usa “P”

FUNCIONES DE ACCIONES

p->SelectHostilTarget() //Selecciona un objetivo hostil
DoSpawnCreature(ID, X, Y, 0, 0,despawn, 300000); //Invoca una criatura
m_creature->AttackStart(objetivo) //Empieza el combate con el objetivo
p->RemoveFlag(flag, flag); //Quita una flag (ej: no poder ser seleccionado
p->SelectUnit(SELECT_TARGET_RANDOM,0); //Selecciona una unidad (en este caso una cualquiera)
p->DoCast(objetivo, hechizo); //Caste el “hechizo” en el “objetivo”
m_creature->m_canMove = false; //Hace que la m_creature no se pueda mover (no se si funciona)
p->CastSpell(objetivo,idhechizo,false); //Player castea sobre “objetivo” el hechizo “idhechizo”
m_creature->InterruptNonMeleeSpells(false); //Cancela el actual hechizo que estamos casteando
DoScriptText(“text”, m_creature, target); //m_creature susurra “text” a “target”
DoMeleeAttackIfReady(); //Ataca cuerpo a cuerpo si está preparado
p->HandleEmoteCommand(emote); //No se si funciona, hace un emote en p
pCreature->Attack(pPlayer, true); //pCreature ataca al jugador
pPlayer->TeleportTo(mapid,x,y,z,o); //Lleva al jugador a mapid,x,y,z,o (x,y,z,o ponerles “f” despues de la coordenada)
pPlayer->AreaExploredOrEventHappens(id); //Descubre en el mapa la zona donde se hace la mision “id”
p->SummonCreature(id, X, Y, Z, O, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000); //p invoca la criatura con id “id” en x,y,z,o. (TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000, no se que es )
Player->FailQuest(id) //Falla una quest con id “id”
p->RemoveSpellsCausingAura(idaura); //Elimina los hechizos que probocan el aura con id “idaura” de p, donde P puede ser m_creature, pGO, player o una variable cualquiera
m_creature->SendMonsterMove(X, Y, Z, 0, MONSTER_MOVE_WALK, 1); //Ordena a m_creature moverse a las coordenadas x,y,z,o
DoUseDoorOrButton(GUID); //Utiliza el GO con guid “guid”, normalmente combinado con
GUID = go->GetGUID();
m_creature->ForcedDespawn(); //Hace que m_creature se despawnee, desaparezca = que .npc delete
p->RemoveAllAuras(); //Elimina todas las auras de P
Creature->DeleteThreatList(); //Elimina el aggro de “creature”
p->CombatStop(true); //Para el combate de p
p->AddThreat(unidad, 0.0f); //Añade “unidad” a la lista de aggro de “p”. 0.0f no se que es, creo que es el aggro
p->canFly() //Usado en ifs: Devuelve true si “p” puede volar
p->DealDamage(objetivo, daño, NULL, como_se_hace_daño, tipo_de_daño, NULL, false);//Hacer daño
p->RemoveCorpse() //Elimina el cuerpo de “p”
p->Respawn() //Respawnea “p”
p->EnterEvadeMode() //Hace que “p” entre en modo de evasion de ataques
PlayerTalkClass- >SendPointOfInterest(x,y,icono,flags,data,nombre de localizacion)//Señala en el minimapa y en el mapa algo

OTRAS

#define ALGO ola //define la variable algo con el valor ola (“universalmente”), util para definir ids de hechizos (ej: #define HECHIZO_1 123 // HECHIZO_1 tendria el numero 123 que seria un hechizo, y en lugar de poner en donde tengas que poner la id del hechizo, la id del hech, podrás poner HECHIZO_1)
rand() //numero aleatorio
Definir una tabla:

float Variable[2][4]= //2 filas, 4 columnas
{
{-1, -2, -3, -4}, //-1 es el valor variable[1][1],segun tengo entendido y -3 es el valor variable[1][3]
{1, 2, 3, 4} //1 es el valor variable[2][1],segun tengo entendido y 3 es el valor variable[2][3]
}; //atencion, la ultima fila no lleva “,” despues del ultimo “}”

Hacer una funcion:

void nombre_de_la_funcion(variables)
{
acciones
}

Llamar una funcion:

nombre_de_la_funcion(variables)

Hacer un comentario de una linia-> //
Hacer un comentario de la extension que quieras-> Al principio -> /* y al final */

Hacer un temporizador:

void UpdateAI(const uint32 diff)
{
if (Temporizador < diff) //diff creo que viene definido por scriptdev2 y es igual a 1
{
acciones
Temporizador = 500; //En segundos, creo (recomendado hacer esto para restablecer el temporizador
}else Temporizador -= diff; //Restar a temporizador, diff y almacenar el valor en temporizador, si temporizador no es menor que diff
}

Hacer un si es “tal” hacer “eso”, sino, hacer “eso otro” modo corto:

si es tal ? hacer esto : sino hacer esto otro, //: seria “sino”
Ej:
m_bIsHeroicMode ? H_SPELL_ARCANE_EXPLOSION : SPELL_ARCANE_EXPLOSION //si el modo es heroico, haer el hechizo H_SPELL_ARCANE_EXPLOSION, sino, hacer el hechizo SPELL_ARCANE_EXPLOSION

Dar un objeto a un jugador:

Item* item = pPlayer->StoreNewItem(dest,23614,true);
if (item)
pPlayer->SendNewItem(item,1,false,true);

Hacer que una criatura acabada de invocar ataque a alguien:

Summoned = DoSpawnCreature(id, X, RandY, 0, 0, nosequees, nosequees);
if (Summoned)
((CreatureAI*)Summoned->AI())->AttackStart(victim);

DEFINIR TIPOS DE VARIABLES

uint64 variable //Unit64
uint32 variable //Uint32
int variable //Integer
bool variable //Booleano

OPERADORES

numb1 -= numb2 //Resta numb2 a numb1 y el nuevo valor es almacenado en numb1
numb1 += numb2 //Suma numb2 y numb1 y el nuevo valor es almacenado en numb1
numb0 = numb1*numb2 //Multiplica numb1 por numb2 y almacena el valor en numb0 (probar numb1 *= numb2)
numb0 = numb1/numb2 //Divide numb1 entre numb2 y almacena el valor en numb0 (probar numb1 /= numb2)
numb0 = numb1+numb2 //Suma numb1 y numb2 uy almacena el valor en numb0

Sw itch/Case:

Coge una variable y va “mirando” su valor, y si su valor es uno de los señalados en un “case” se ejecutan las acciones de ese “case”

switch(variable o funcion)
{
case valor_de_la_variable_o_de_la_funcion:
acciones
break;
case otro_valor_de_la_variable_o_de_la_funcion:
acciones
breaK;
}

If/ else/elseif:

If es igual a “si” else es igual a “sino”
Entonces:
Si(condicion_es_cierta)
{
hacer acciones
}
sinoesciertapero(otra_condicion_es_cierta)
{
hacer acciones
}
sino
{
hacer otras acciones
}

If (condicion){
acciones
}
elseif (condicion){
acciones
}
else {
acciones
}

NOTA: Else y elseif son opcionales

DEJA UNA RESPUESTA

Please enter your comment!
Please enter your name here