PHP- Kodu:
// Diablo II LoD Include File //#if defined _diablo2LOD_included #endinput#endif#define _diablo2LOD_included
#define MAX_P_SKILLS 20
// Gets the max skills are loadednative MAX_SKILLS_ACTIVE();// Gets the max items are loadednative MAX_ITEMS_ACTIVE();
// Hero class valuesenum{ AMAZON = 0, ASSASSIN, NECROMANCER, BARBARIAN, PALADIN, DRUID, SORCERESS}
// Log type valuesenum{ UNLOGGED = 0, LOGGED}
// Display value, while selecting skill 'E' button.enum{ NOT_DISPLAY = 0, DISPLAY}
// Item typesenum{ TYPE_GLOVES = 0, TYPE_BOOTS, TYPE_BELT, TYPE_ARMOR, TYPE_HELM, TYPE_SHIELD, TYPE_WEAPON, TYPE_RING, TYPE_AMULET, TYPE_BOLTS}
// Called when you pressed E button and selected the skill.forward d2_skill_selected(id, skill_id);
// Called when you fired a skill, bind t +skills.forward d2_skill_fired(id);
// Called when player gets damaged, 1-st parameter is victim, 2-nd is attacker, 3-rd is Array parameter means damage done.forward d2_takedamage(victim, attacker, Float:iDamage[1]);
// Called when player gets damaged by skill, 1-st parameter is victim, 2-nd is attacker, 3-rd is Array parameter means damage done.forward d2_skill_takedamage(victim, attacker, Float:iDamage[1]);
// Called when player gets damaged by weapon with poison, 1-st parameter is victim, 2-nd is attacker, 3-rd is Array parameter means damage done.forward d2_dagger_poisondamage(victim, attacker, Float:iDamage[1]);
// Called when player gets damaged by RANGED attack, 1-st parameter is victim, 2-nd is attacker, 3-rd is Array parameter means damage done.forward d2_ranged_takedamage(victim, attacker, Float:iDamage[1]);
// Called when player successfully fires arrow, 1-st parameter is playerid, 2-nd is entityid.forward d2_ranged_actshoot(id, entity);
// Called when the player is logged/unlogged.forward d2_logged(id, log_type);
// Gets the player's current speed.native Float:get_current_speed(id);
// if is player logged/unlogged.native get_player_logged(id);
// Gets player's max health.native get_p_maxhealth(id);
// Sets player's max health.native set_p_maxhealth(id, value);
// Sets player xp with X value.native set_p_xp(id, value);
// Gets player xp.native get_p_xp(id);
// Gets player current hero.native get_p_hero(id);
// Gets player level.native get_p_level(id);
// Sets player current mana.native set_p_mana(id, value);
// Gets player current mana.native get_p_mana(id);
// Gets player vitality.native get_p_vitality(id);
// Sets player vitality.native set_p_vitality(id, value);
// Sets player gold.native set_p_gold(id, value);
// Sets player inventory gold.native set_p_gold_inventory(id, value);
// Gets player gold.native get_p_gold(id);
// Gets player inventory gold.native get_p_gold_inventory(id);
// Gets player skill's value.native get_p_skill(id, skill_id);
// Resets player model to custom.native reset_p_model(id);
// Gets player's current item count.native get_p_item_count(id, item_id);
// If is player wear item returns true.native get_p_item_is_worn(id, item_id);
// Gets if player wears any item with specified typenative bool:get_p_item_wear_type(id, type);
// Gets if player wears any item with specified data typenative bool:get_p_item_data(id, data);
// Gets if player is in safe zone ( Near Akara, Charsi, Inventory ).native bool:get_p_in_safezone(id);
// Gets if is player protected, if spawn protection time passed.native bool:is_p_protected(id);
// Checks if is a freezetime.native is_freezetime();
// Checks if is player near monsternative bool:IsPlayerNearByMonster(id);
// Damages a player, 1-st parameter is victim, 2-nd is attacker, 3-rd is damage , 4-th is weapon type string.native dmg_kill_player(id, attacker, Float:damage, weaponDescription[])
// Drops coins from give id/victim with specified classname and gold value stored in entity.native drop_coins(victim, classname[], goldvalue);
// Sets user model.native set_user_model(id, const model[]);
stock find_itemplugin(){ for(new i = 0; i < get_pluginsnum(); ++i) { new temp[2], name[64] get_plugin(i, name, 63, temp, 1, temp, 1, temp, 1, temp, 1) if(equali(name, "diablo2LOD.amxx")) { return i; } }
return -1;}
stock find_itemindex(){ new temp[2], name[64], pluginname[64] get_plugin(-1, pluginname, 63, temp, 1, temp, 1, temp, 1, temp, 1) for (new i = 0; i < get_pluginsnum(); ++i) { get_plugin(i, name, 63, temp, 1, temp, 1, temp, 1, temp, 1) if(equal(name, pluginname)) { return i } }
return -1}stock register_d2_skill(skill_name[], skill_desc[], skill_hero, skill_level, skill_display){ new SkillId = find_itemindex() new SkillPlugin = find_itemplugin() new SkillRegFunc = get_func_id("register_skill", SkillPlugin)
new temp = callfunc_begin_i(SkillRegFunc, SkillPlugin) if(temp == -1 || temp == -2) { log_amx("Plugin not found or function is not executable!") return PLUGIN_HANDLED; }
callfunc_push_int(SkillId) callfunc_push_str(skill_name) callfunc_push_str(skill_desc) callfunc_push_int(skill_hero) callfunc_push_int(skill_level) callfunc_push_int(skill_display) temp = callfunc_end() if(temp == -1 || temp == -2) { return PLUGIN_HANDLED; }
return temp;}stock client_printcolor(const id, const input[], any:...){ new count = 1, players[32];
static msg[191]; vformat(msg,190,input,3);
replace_all(msg,190,"/g","^4");// green txt replace_all(msg,190,"/y","^1");// orange txt replace_all(msg,190,"/ctr","^3");// team txt
if (id) players[0] = id; else get_players(players,count,"ch");
for (new i=0;i<count;i++) { if (is_user_connected(players[i])) { message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]); write_byte(players[i]); write_string(msg); message_end(); } }}