---
title: "OnPlayerRequestDownload | open.mp"
description: "当玩家请求下载自定义模型时触发此回调函数"
canonical: https://omp.itsneufox.com/zh-CN/docs/scripting/callbacks/OnPlayerRequestDownload
language: zh-CN
---

# OnPlayerRequestDownload

注意

这个回调是在SA-MP 0.3.DL R1中添加的，在以前的版本中不起作用！

## 描述

当玩家请求下载自定义模型资源时触发此回调函数

| 参数 | 说明 |
| --- | --- |
| playerid | 发起下载请求的玩家ID |
| DOWNLOAD\_REQUEST:type | [下载请求类型](https://omp.itsneufox.com/zh-CN/docs/scripting/resources/download-requests) |
| crc | 自定义模型文件的[CRC](https://en.wikipedia.org/wiki/Cyclic_redundancy_check)校验值 |

## 返回值

0 - 拒绝下载请求

1 - 接受下载请求

## 示例

```c
#define DOWNLOAD_REQUEST_EMPTY        (DOWNLOAD_REQUEST:0)       // 空请求
#define DOWNLOAD_REQUEST_MODEL_FILE   (DOWNLOAD_REQUEST:1)       // 模型文件请求
#define DOWNLOAD_REQUEST_TEXTURE_FILE (DOWNLOAD_REQUEST:2)       // 纹理文件请求

new baseUrl[] = "https://assets.open.mp";  // 资源服务器基础地址

public OnPlayerRequestDownload(playerid, DOWNLOAD_REQUEST:type, crc)
{
    if (!IsPlayerConnected(playerid))
    {
        return 0; // 玩家未连接时拒绝请求
    }

    new fullUrl[256 + 1];  // 完整下载URL
    new dlFileName[64 + 1]; // 待下载文件名
    new foundFileName = 0; // 文件查找标记

    // 根据请求类型处理
    if (type == DOWNLOAD_REQUEST_TEXTURE_FILE)
    {
        foundFileName = FindTextureFileNameFromCRC(crc, dlFileName, 64);
    }
    else if (type == DOWNLOAD_REQUEST_MODEL_FILE)
    {
        foundFileName = FindModelFileNameFromCRC(crc, dlFileName, 64);
    }

    if (foundFileName)
    {
        // 拼接完整下载地址
        format(fullUrl, sizeof(fullUrl), "%s/%s", baseUrl, dlFileName);
        RedirectDownload(playerid, fullUrl); // 重定向下载
    }

    return 0; // 拒绝默认下载流程
}
```

## 注意事项

技巧

-   需在服务器配置中启用UsePlayerPedAnims选项
-   可通过CRC校验确保文件完整性
-   使用RedirectDownload函数可自定义下载源

## 相关回调

以下回调函数可能与此回调相关：

-   [OnPlayerFinishedDownloading](https://omp.itsneufox.com/zh-CN/docs/scripting/callbacks/OnPlayerFinishedDownloading): 当玩家完成下载时触发

## 相关函数

以下函数可能与此回调函数相关：

-   [FindModelFileNameFromCRC](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/FindModelFileNameFromCRC): 查找现有的自定义皮肤或简单物体模型文件。
-   [FindTextureFileNameFromCRC](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/FindTextureFileNameFromCRC): 查找现有的自定义皮肤或简单物体纹理文件。
-   [RedirectDownload](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/RedirectDownload): 将玩家自定义的AddCharModel或AddSimpleModel模型下载请求重定向到指定的HTTP网页。

## 相关资源

-   [下载请求类型说明](https://omp.itsneufox.com/zh-CN/docs/scripting/resources/download-requests)
